diff --git a/src/vmainwindow.cpp b/src/vmainwindow.cpp index e8d70a9d..d851c08e 100644 --- a/src/vmainwindow.cpp +++ b/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; diff --git a/src/vmainwindow.h b/src/vmainwindow.h index ed39eed2..8d63cfc4 100644 --- a/src/vmainwindow.h +++ b/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; diff --git a/src/vsearchresulttree.cpp b/src/vsearchresulttree.cpp index 6c29a2e6..3f2ab43c 100644 --- a/src/vsearchresulttree.cpp +++ b/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; diff --git a/src/vsearchue.cpp b/src/vsearchue.cpp index 2ea3980c..2d5cee5c 100644 --- a/src/vsearchue.cpp +++ b/src/vsearchue.cpp @@ -794,7 +794,7 @@ void VSearchUE::activateItem(const QSharedPointer &p_item) { VNotebook *nb = g_vnote->getNotebook(p_item->m_path); if (nb) { - g_mainWin->getNotebookSelector()->locateNotebook(nb); + g_mainWin->locateNotebook(nb); } break;