diff options
author | Eike Ziller <eike.ziller@nokia.com> | 2011-09-09 16:10:57 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@nokia.com> | 2011-09-14 10:55:20 +0200 |
commit | fdeb7620f1e7f33e5bb5749a28f84870c9af70ac (patch) | |
tree | a6a3c0bfa84bc3e4b97f836928479e6f19433bb6 /src/plugins/cpptools/cppfindreferences.cpp | |
parent | c5c94206ba5a903215771bd6bf68c0919380e5c7 (diff) | |
download | qt-creator-fdeb7620f1e7f33e5bb5749a28f84870c9af70ac.tar.gz |
Keep multiple search results in history.
Change-Id: I7350c78479343e85b1ca4957e08bccefb5756d20
Reviewed-on: http://codereview.qt-project.org/4556
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
Diffstat (limited to 'src/plugins/cpptools/cppfindreferences.cpp')
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.cpp | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 9bcd6fbea1..16e62d0f13 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -161,8 +161,7 @@ public: CppFindReferences::CppFindReferences(CppModelManagerInterface *modelManager) : QObject(modelManager), - _modelManager(modelManager), - m_currentSearch(0) + _modelManager(modelManager) { m_watcher.setPendingResultsLimit(1); connect(&m_watcher, SIGNAL(resultsReadyAt(int,int)), this, SLOT(displayResults(int,int))); @@ -227,9 +226,11 @@ static void find_helper(QFutureInterface<Usage> &future, void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, const CPlusPlus::LookupContext &context) { - m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch(Find::SearchResultWindow::SearchOnly); Overview overview; - m_currentSearch->setInfo(tr("C++ Usages:"), QString(), overview(context.fullyQualifiedName(symbol))); + m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch(tr("C++ Usages:"), + QString(), + overview(context.fullyQualifiedName(symbol)), + Find::SearchResultWindow::SearchOnly); connect(m_currentSearch, SIGNAL(activated(Find::SearchResultItem)), this, SLOT(openEditor(Find::SearchResultItem))); @@ -243,10 +244,12 @@ void CppFindReferences::renameUsages(CPlusPlus::Symbol *symbol, const CPlusPlus: const QString textToReplace = replacement.isEmpty() ? QString::fromUtf8(id->chars(), id->size()) : replacement; - m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch( - Find::SearchResultWindow::SearchAndReplace, QLatin1String("CppEditor")); Overview overview; - m_currentSearch->setInfo(tr("C++ Usages:"), QString(), overview(context.fullyQualifiedName(symbol))); + m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch( + tr("C++ Usages:"), + QString(), + overview(context.fullyQualifiedName(symbol)), + Find::SearchResultWindow::SearchAndReplace, QLatin1String("CppEditor")); m_currentSearch->setTextToReplace(textToReplace); connect(m_currentSearch, SIGNAL(activated(Find::SearchResultItem)), @@ -293,6 +296,10 @@ void CppFindReferences::onReplaceButtonClicked(const QString &text, void CppFindReferences::displayResults(int first, int last) { + if (!m_currentSearch) { + m_watcher.cancel(); + return; + } for (int index = first; index != last; ++index) { Usage result = m_watcher.future().resultAt(index); m_currentSearch->addResult(result.path, @@ -305,7 +312,8 @@ void CppFindReferences::displayResults(int first, int last) void CppFindReferences::searchFinished() { - m_currentSearch->finishSearch(); + if (m_currentSearch) + m_currentSearch->finishSearch(); m_currentSearch = 0; emit changed(); } @@ -422,8 +430,11 @@ static void findMacroUses_helper(QFutureInterface<Usage> &future, void CppFindReferences::findMacroUses(const Macro ¯o) { - m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch(Find::SearchResultWindow::SearchOnly); - m_currentSearch->setInfo(tr("C++ Macro Usages:"), QString(), QString::fromLocal8Bit(macro.name())); + m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch( + tr("C++ Macro Usages:"), + QString(), + macro.name(), + Find::SearchResultWindow::SearchOnly); Find::SearchResultWindow::instance()->popup(true); |