NABI_SE issues resolved
[apps/osp/MyFiles.git] / src / MfSearchForm.cpp
index 36b11cb..eff08a4 100644 (file)
@@ -52,6 +52,7 @@ SearchForm::SearchForm(void)
 
        __searchText = L"";
        __currentSearchDirectoryPath = L"";
+       __directoryForFileEvent = L"";
        __bIsResultList = false;
 
        __searchedAllFolders = false;
@@ -426,7 +427,7 @@ SearchForm::TransitionScene(void)
        }
 
        if(__pFileEventManager != null)
-               __pFileEventManager->RemovePath(__currentSearchDirectoryPath);
+               __pFileEventManager->RemovePath(__directoryForFileEvent);
 
 //     pSceneManager->GoBackward(BackwardSceneTransition(__previousSceneId, SCENE_TRANSITION_ANIMATION_TYPE_RIGHT), null);
 
@@ -542,7 +543,17 @@ SearchForm::OnListViewItemStateChanged(ListView& listView, int index, int elemen
                                if (pCustomAppControl != null)
                                {
                                        pCustomAppControl->SetAppControlListener(this);
-                                       __pFileEventManager->AddPath(parentDirectoryOfSelectedFile, FILE_EVENT_TYPE_CREATE | FILE_EVENT_TYPE_MOVED_FROM | FILE_EVENT_TYPE_MOVED_TO | FILE_EVENT_TYPE_DELETE );
+                                       if(__pFileEventManager != null)
+                                       {
+                                                       __pFileEventManager->RemovePath(__directoryForFileEvent);
+                                                       delete __pFileEventManager;
+                                                       __pFileEventManager = null;
+                                       }
+                                       __pFileEventManager = new (std::nothrow) FileEventManager();
+                                       __pFileEventManager->Construct(*this);
+
+                                       __directoryForFileEvent = parentDirectoryOfSelectedFile;
+                                       __pFileEventManager->AddPath(__directoryForFileEvent, FILE_EVENT_TYPE_CREATE | FILE_EVENT_TYPE_MOVED_FROM | FILE_EVENT_TYPE_MOVED_TO | FILE_EVENT_TYPE_DELETE );
                                        AppControl* pAppControlInUse = pCustomAppControl->LaunchAppControl(__pathOfSelectedFile);
                                        if (pAppControlInUse != null)
                                                CustomAppControl::SetAppControlInUse(pAppControlInUse);
@@ -1658,6 +1669,10 @@ SearchForm::OnSceneTransitionCompleted(const Tizen::Ui::Scenes::SceneId &previou
        __pFileEventManager = new (std::nothrow) FileEventManager();
        __pFileEventManager->Construct(*this);
 
+       __directoryForFileEvent = __currentSearchDirectoryPath;
+       __pFileEventManager->AddPath(__directoryForFileEvent, FILE_EVENT_TYPE_CREATE | FILE_EVENT_TYPE_MOVED_FROM | FILE_EVENT_TYPE_MOVED_TO | FILE_EVENT_TYPE_DELETE );
+       AppLogDebug("SearchForm::OnSceneTransitionCompleted:%S:%s", __directoryForFileEvent.GetPointer(), GetErrorMessage(GetLastResult()));
+
        if (__bCheckArgsNull)
        {
                if (__pListView != null)
@@ -1737,6 +1752,7 @@ SearchForm::StartSearch(void)
 void
 SearchForm::OnFileEventOccured(const unsigned long events,const Tizen::Base::String &  path, const unsigned int        eventId)
 {
+       AppLogDebug("SearchForm::OnFileEventOccured");
        bool cacheKeyStatus = false;
        HashMap* pCacheList = null;
        DirectoryEntry* pCurrentEntry = null;
@@ -1780,7 +1796,17 @@ SearchForm::OnFileEventOccured(const unsigned long events,const Tizen::Base::Str
                                }
                        }
                }
+               if (((MyFilesApp*) Application::GetInstance())->IsAppControlLaunched() == false)
+               {
+                       AppLogDebug("SearchForm::OnFileEventOccured");
+                       if (__searchText.IsEmpty() == false)
+                               StartSearch();
+
+                       if (__pListView != null)
+                               __pListView->UpdateList();
+               }
        }
+
        __selectedItemIndex  =-1;
 }
 
@@ -1875,6 +1901,20 @@ SearchForm::OnAppControlCompleted(void)
        AppLogDebug("OnAppControlCompleted++");
        if ( __backFromAppControl==true )
        {
+               if (__pFileEventManager != null)
+               {
+                       __pFileEventManager->RemovePath(__directoryForFileEvent);
+                       delete __pFileEventManager;
+                       __pFileEventManager = null;
+               }
+
+               __pFileEventManager = new (std::nothrow) FileEventManager();
+               __pFileEventManager->Construct(*this);
+
+               __directoryForFileEvent = __currentSearchDirectoryPath;
+               __pFileEventManager->AddPath(__directoryForFileEvent, FILE_EVENT_TYPE_CREATE | FILE_EVENT_TYPE_MOVED_FROM | FILE_EVENT_TYPE_MOVED_TO | FILE_EVENT_TYPE_DELETE );
+
+
                __pSearchBar->SetMode(__searchBarMode);
 
                if (__searchText.IsEmpty() == false)