Browse Source

change panel view when locating to a folder or notebook

Le Tan 7 years ago
parent
commit
9b114832f1
4 changed files with 45 additions and 12 deletions
  1. 40 9
      src/vmainwindow.cpp
  2. 3 0
      src/vmainwindow.h
  3. 1 2
      src/vsearchresulttree.cpp
  4. 1 1
      src/vsearchue.cpp

+ 40 - 9
src/vmainwindow.cpp

@@ -2376,10 +2376,12 @@ bool VMainWindow::locateFile(VFile *p_file)
     }
 
     // Open the directory and file panels after location.
-    if (m_panelViewState == PanelViewState::CompactMode) {
-        compactModeView();
-    } else {
-        twoPanelView();
+    if (ret) {
+        if (m_panelViewState == PanelViewState::CompactMode) {
+            compactModeView();
+        } else {
+            twoPanelView();
+        }
     }
 
     return ret;
@@ -2398,14 +2400,43 @@ bool VMainWindow::locateDirectory(VDirectory *p_directory)
             QCoreApplication::sendPostedEvents();
         }
 
-        ret = directoryTree->locateDirectory(p_directory);
+        if (directoryTree->locateDirectory(p_directory)) {
+            ret = true;
+            directoryTree->setFocus();
+        }
     }
 
     // Open the directory and file panels after location.
-    if (m_panelViewState == PanelViewState::CompactMode) {
-        compactModeView();
-    } else {
-        twoPanelView();
+    if (ret) {
+        if (m_panelViewState == PanelViewState::CompactMode) {
+            compactModeView();
+        } else {
+            twoPanelView();
+        }
+    }
+
+    return ret;
+}
+
+bool VMainWindow::locateNotebook(VNotebook *p_notebook)
+{
+    bool ret = false;
+    if (!p_notebook) {
+        return ret;
+    }
+
+    if (m_notebookSelector->locateNotebook(p_notebook)) {
+        ret = true;
+        directoryTree->setFocus();
+    }
+
+    // Open the directory and file panels after location.
+    if (ret) {
+        if (m_panelViewState == PanelViewState::CompactMode) {
+            compactModeView();
+        } else {
+            twoPanelView();
+        }
     }
 
     return ret;

+ 3 - 0
src/vmainwindow.h

@@ -65,6 +65,9 @@ public:
     // Returns true if the location succeeds.
     bool locateDirectory(VDirectory *p_directory);
 
+    // Returns true if the location succeeds.
+    bool locateNotebook(VNotebook *p_notebook);
+
     VFileList *getFileList() const;
 
     VEditArea *getEditArea() const;

+ 1 - 2
src/vsearchresulttree.cpp

@@ -7,7 +7,6 @@
 #include "utils/viconutils.h"
 #include "vnote.h"
 #include "vmainwindow.h"
-#include "vnotebookselector.h"
 #include "vnotefile.h"
 #include "vcart.h"
 
@@ -252,7 +251,7 @@ void VSearchResultTree::activateItem(const QTreeWidgetItem *p_item) const
     {
         VNotebook *nb = g_vnote->getNotebook(resItem->m_path);
         if (nb) {
-            g_mainWin->getNotebookSelector()->locateNotebook(nb);
+            g_mainWin->locateNotebook(nb);
         }
 
         break;

+ 1 - 1
src/vsearchue.cpp

@@ -794,7 +794,7 @@ void VSearchUE::activateItem(const QSharedPointer<VSearchResultItem> &p_item)
     {
         VNotebook *nb = g_vnote->getNotebook(p_item->m_path);
         if (nb) {
-            g_mainWin->getNotebookSelector()->locateNotebook(nb);
+            g_mainWin->locateNotebook(nb);
         }
 
         break;