diff --git a/src/plugins/projectexplorer/foldernavigationwidget.cpp b/src/plugins/projectexplorer/foldernavigationwidget.cpp index 7a9e3aa9f00..fea4543db30 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.cpp +++ b/src/plugins/projectexplorer/foldernavigationwidget.cpp @@ -343,11 +343,7 @@ void FolderNavigationWidget::contextMenuEvent(QContextMenuEvent *ev) return; } if (action == actionFind) { - QFileInfo info = m_fileSystemModel->fileInfo(current); - if (m_fileSystemModel->isDir(current)) - findOnFileSystem(info.absoluteFilePath()); - else - findOnFileSystem(info.absolutePath()); + TextEditor::FindInFiles::findOnFileSystem(m_fileSystemModel->filePath(current)); return; } Core::DocumentManager::executeOpenWithMenuAction(action); @@ -358,21 +354,6 @@ QString FolderNavigationWidget::msgFindOnFileSystem() return tr("Find in this directory..."); } -void FolderNavigationWidget::findOnFileSystem(const QString &pathIn) -{ - const QFileInfo fileInfo(pathIn); - const QString folder = fileInfo.isDir() ? fileInfo.absoluteFilePath() : fileInfo.absolutePath(); - - TextEditor::FindInFiles *fif = ExtensionSystem::PluginManager::getObject(); - if (!fif) - return; - Find::FindPlugin *plugin = Find::FindPlugin::instance(); - if (!plugin) - return; - fif->setDirectory(folder); - Find::FindPlugin::instance()->openFindDialog(fif); -} - void FolderNavigationWidget::setHiddenFilesFilter(bool filter) { QDir::Filters filters = m_fileSystemModel->filter(); diff --git a/src/plugins/projectexplorer/foldernavigationwidget.h b/src/plugins/projectexplorer/foldernavigationwidget.h index fbc109a9dfd..e154a4a1096 100644 --- a/src/plugins/projectexplorer/foldernavigationwidget.h +++ b/src/plugins/projectexplorer/foldernavigationwidget.h @@ -61,7 +61,6 @@ public: bool autoSynchronization() const; - static void findOnFileSystem(const QString &pathIn); static QString msgFindOnFileSystem(); bool hiddenFilesFilter() const; diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 12cf2fd57c5..54fdcd6b0ee 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -114,6 +114,7 @@ #include #include #include +#include #include #include @@ -2852,7 +2853,7 @@ void ProjectExplorerPlugin::openFile() void ProjectExplorerPlugin::searchOnFileSystem() { QTC_ASSERT(d->m_currentNode, return); - FolderNavigationWidget::findOnFileSystem(pathFor(d->m_currentNode)); + TextEditor::FindInFiles::findOnFileSystem(pathFor(d->m_currentNode)); } void ProjectExplorerPlugin::showInGraphicalShell() diff --git a/src/plugins/texteditor/findinfiles.cpp b/src/plugins/texteditor/findinfiles.cpp index 2b67ea3c3b4..7885d5508a3 100644 --- a/src/plugins/texteditor/findinfiles.cpp +++ b/src/plugins/texteditor/findinfiles.cpp @@ -29,8 +29,10 @@ #include "findinfiles.h" -#include #include +#include +#include +#include #include #include @@ -44,10 +46,13 @@ using namespace Find; using namespace TextEditor; +static FindInFiles *m_instance = 0; + FindInFiles::FindInFiles() : m_configWidget(0), m_directory(0) { + m_instance = this; } FindInFiles::~FindInFiles() @@ -176,3 +181,11 @@ void FindInFiles::setDirectory(const QString &directory) syncComboWithSettings(m_directory, directory); } +void FindInFiles::findOnFileSystem(const QString &path) +{ + QTC_ASSERT(m_instance, return); + const QFileInfo fi(path); + const QString folder = fi.isDir() ? fi.absoluteFilePath() : fi.absolutePath(); + m_instance->setDirectory(folder); + Find::FindPlugin::instance()->openFindDialog(m_instance); +} diff --git a/src/plugins/texteditor/findinfiles.h b/src/plugins/texteditor/findinfiles.h index 5353a69d41b..736521bd612 100644 --- a/src/plugins/texteditor/findinfiles.h +++ b/src/plugins/texteditor/findinfiles.h @@ -64,6 +64,9 @@ protected: QString label() const; QString toolTip() const; +public: + static void findOnFileSystem(const QString &path); + private slots: void openFileBrowser();