diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-09-22 16:36:26 +0200 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2017-09-25 14:26:12 +0000 |
commit | ad62b1e02251a3303430fbe8f697106430acbdef (patch) | |
tree | 4ab39710a13c8be5e04610d9324f4685dd806b33 /src | |
parent | 34a4c60da37766806e004458c6d3f9c0e2cec917 (diff) | |
download | qt-creator-ad62b1e02251a3303430fbe8f697106430acbdef.tar.gz |
EditorManager: move all openEditor functions to one place
Remove code duplication for openEditor function that
gets search result as a parameter.
Change-Id: I3eb1c41b8a0fda3b2e8a4929cef1d5924295f1f5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/clangrefactoring/qtcreatorsearch.cpp | 11 | ||||
-rw-r--r-- | src/plugins/clangrefactoring/qtcreatorsearch.h | 5 | ||||
-rw-r--r-- | src/plugins/coreplugin/editormanager/editormanager.cpp | 12 | ||||
-rw-r--r-- | src/plugins/coreplugin/editormanager/editormanager.h | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.cpp | 20 | ||||
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.h | 1 | ||||
-rw-r--r-- | src/plugins/qmljseditor/qmljsfindreferences.cpp | 15 | ||||
-rw-r--r-- | src/plugins/qmljseditor/qmljsfindreferences.h | 1 | ||||
-rw-r--r-- | src/plugins/texteditor/basefilefind.cpp | 12 |
9 files changed, 29 insertions, 50 deletions
diff --git a/src/plugins/clangrefactoring/qtcreatorsearch.cpp b/src/plugins/clangrefactoring/qtcreatorsearch.cpp index 61f317c22a..d5802c9c97 100644 --- a/src/plugins/clangrefactoring/qtcreatorsearch.cpp +++ b/src/plugins/clangrefactoring/qtcreatorsearch.cpp @@ -50,7 +50,9 @@ std::unique_ptr<SearchHandle> QtCreatorSearch::startNewSearch(const QString &sea QObject::connect(searchResult, &Core::SearchResult::activated, - &QtCreatorSearch::openEditor); + [](const Core::SearchResultItem& item) { + Core::EditorManager::openEditorAtSearchResult(item); + }); auto searchHandle = std::unique_ptr<SearchHandle>(new QtCreatorSearchHandle(searchResult)); @@ -61,11 +63,4 @@ std::unique_ptr<SearchHandle> QtCreatorSearch::startNewSearch(const QString &sea return searchHandle; } -void QtCreatorSearch::openEditor(const Core::SearchResultItem &item) -{ - Core::EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()), - item.mainRange.begin.line, - item.mainRange.begin.column); -} - } // namespace ClangRefactoring diff --git a/src/plugins/clangrefactoring/qtcreatorsearch.h b/src/plugins/clangrefactoring/qtcreatorsearch.h index 68d884a180..ebef545d90 100644 --- a/src/plugins/clangrefactoring/qtcreatorsearch.h +++ b/src/plugins/clangrefactoring/qtcreatorsearch.h @@ -41,10 +41,7 @@ public: QtCreatorSearch(Core::SearchResultWindow &searchResultWindow); std::unique_ptr<SearchHandle> startNewSearch(const QString &searchLabel, - const QString &searchTerm); - -private: - static void openEditor(const Core::SearchResultItem &item); + const QString &searchTerm); private: Core::SearchResultWindow &searchResultWindow; diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index e6a56ab9b6..261e3560d6 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -48,6 +48,7 @@ #include <coreplugin/editortoolbar.h> #include <coreplugin/fileutils.h> #include <coreplugin/findplaceholder.h> +#include <coreplugin/find/searchresultitem.h> #include <coreplugin/icore.h> #include <coreplugin/imode.h> #include <coreplugin/infobar.h> @@ -2646,6 +2647,17 @@ IEditor *EditorManager::openEditorAt(const QString &fileName, int line, int colu fileName, line, column, editorId, flags, newEditor); } +void EditorManager::openEditorAtSearchResult(const SearchResultItem &item, OpenEditorFlags flags) +{ + if (item.path.empty()) { + openEditor(QDir::fromNativeSeparators(item.text), Id(), flags); + return; + } + + openEditorAt(QDir::fromNativeSeparators(item.path.first()), item.mainRange.begin.line, + item.mainRange.begin.column, Id(), flags); +} + EditorManager::FilePathInfo EditorManager::splitLineAndColumnNumber(const QString &fullFilePath) { // :10:2 GCC/Clang-style diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h index 5c8c37113d..7c28c27eb7 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.h +++ b/src/plugins/coreplugin/editormanager/editormanager.h @@ -50,6 +50,7 @@ class IMode; class IVersionControl; class EditorToolBar; +class SearchResultItem; enum MakeWritableResult { OpenedWithVersionControl, @@ -114,6 +115,7 @@ public: static IEditor *openEditorAt(const QString &fileName, int line, int column = 0, Id editorId = Id(), OpenEditorFlags flags = NoFlags, bool *newEditor = 0); + static void openEditorAtSearchResult(const SearchResultItem &item, OpenEditorFlags flags = NoFlags); static IEditor *openEditorWithContents(Id editorId, QString *titlePattern = 0, const QByteArray &contents = QByteArray(), const QString &uniqueId = QString(), diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 9e521ac46f..fa3f48a04a 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -370,7 +370,9 @@ void CppFindReferences::findAll_helper(SearchResult *search, Symbol *symbol, return; } connect(search, &SearchResult::activated, - this, &CppFindReferences::openEditor); + [](const SearchResultItem& item) { + Core::EditorManager::openEditorAtSearchResult(item); + }); SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus); const WorkingCopy workingCopy = m_modelManager->workingCopy(); @@ -589,18 +591,6 @@ static void searchFinished(SearchResult *search, QFutureWatcher<Usage> *watcher) watcher->deleteLater(); } -void CppFindReferences::openEditor(const SearchResultItem &item) -{ - if (item.path.size() > 0) { - EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()), - item.mainRange.begin.line, - item.mainRange.begin.column); - } else { - EditorManager::openEditor(QDir::fromNativeSeparators(item.text)); - } -} - - namespace { class FindMacroUsesInFile: public std::unary_function<QString, QList<Usage> > @@ -728,7 +718,9 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro ¯o, const QStri SearchResultWindow::instance()->popup(IOutputPane::ModeSwitch | IOutputPane::WithFocus); connect(search, &SearchResult::activated, - this, &CppFindReferences::openEditor); + [](const Core::SearchResultItem& item) { + Core::EditorManager::openEditorAtSearchResult(item); + }); const Snapshot snapshot = m_modelManager->snapshot(); const WorkingCopy workingCopy = m_modelManager->workingCopy(); diff --git a/src/plugins/cpptools/cppfindreferences.h b/src/plugins/cpptools/cppfindreferences.h index 422eedb0c9..2dece06883 100644 --- a/src/plugins/cpptools/cppfindreferences.h +++ b/src/plugins/cpptools/cppfindreferences.h @@ -77,7 +77,6 @@ public: void renameMacroUses(const CPlusPlus::Macro ¯o, const QString &replacement = QString()); private: - void openEditor(const Core::SearchResultItem &item); void onReplaceButtonClicked(const QString &text, const QList<Core::SearchResultItem> &items, bool preserveCase); void searchAgain(); diff --git a/src/plugins/qmljseditor/qmljsfindreferences.cpp b/src/plugins/qmljseditor/qmljsfindreferences.cpp index 2e8bb9e407..7806d9c385 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.cpp +++ b/src/plugins/qmljseditor/qmljsfindreferences.cpp @@ -959,7 +959,9 @@ void FindReferences::displayResults(int first, int last) this, &FindReferences::onReplaceButtonClicked); } connect(m_currentSearch.data(), &SearchResult::activated, - this, &FindReferences::openEditor); + [](const Core::SearchResultItem& item) { + Core::EditorManager::openEditorAtSearchResult(item); + }); connect(m_currentSearch.data(), &SearchResult::cancelled, this, &FindReferences::cancel); connect(m_currentSearch.data(), &SearchResult::paused, this, &FindReferences::setPaused); SearchResultWindow::instance()->popup(IOutputPane::Flags(IOutputPane::ModeSwitch | IOutputPane::WithFocus)); @@ -1005,17 +1007,6 @@ void FindReferences::setPaused(bool paused) m_watcher.setPaused(paused); } -void FindReferences::openEditor(const SearchResultItem &item) -{ - if (item.path.size() > 0) { - EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()), - item.mainRange.begin.line, - item.mainRange.begin.column); - } else { - EditorManager::openEditor(QDir::fromNativeSeparators(item.text)); - } -} - void FindReferences::onReplaceButtonClicked(const QString &text, const QList<SearchResultItem> &items, bool preserveCase) { const QStringList fileNames = TextEditor::BaseFileFind::replaceAll(text, items, preserveCase); diff --git a/src/plugins/qmljseditor/qmljsfindreferences.h b/src/plugins/qmljseditor/qmljsfindreferences.h index e7075b4799..0de23bd722 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.h +++ b/src/plugins/qmljseditor/qmljsfindreferences.h @@ -82,7 +82,6 @@ private: void searchFinished(); void cancel(); void setPaused(bool paused); - void openEditor(const Core::SearchResultItem &item); void onReplaceButtonClicked(const QString &text, const QList<Core::SearchResultItem> &items, bool preserveCase); QPointer<Core::SearchResult> m_currentSearch; diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 7486cfd0d4..dcb33b50ae 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -448,16 +448,8 @@ void BaseFileFind::openEditor(const SearchResultItem &item) FileFindParameters parameters = result->userData().value<FileFindParameters>(); IEditor *openedEditor = d->m_searchEngines[parameters.searchEngineIndex]->openEditor(item, parameters); - if (!openedEditor) { - if (item.path.size() > 0) { - openedEditor = EditorManager::openEditorAt(QDir::fromNativeSeparators(item.path.first()), - item.mainRange.begin.line, - item.mainRange.begin.column, Id(), - EditorManager::DoNotSwitchToDesignMode); - } else { - openedEditor = EditorManager::openEditor(QDir::fromNativeSeparators(item.text)); - } - } + if (!openedEditor) + EditorManager::openEditorAtSearchResult(item, EditorManager::DoNotSwitchToDesignMode); if (d->m_currentFindSupport) d->m_currentFindSupport->clearHighlights(); d->m_currentFindSupport = 0; |