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/texteditor | |
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/texteditor')
-rw-r--r-- | src/plugins/texteditor/basefilefind.cpp | 17 | ||||
-rw-r--r-- | src/plugins/texteditor/basefilefind.h | 6 |
2 files changed, 12 insertions, 11 deletions
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 105fa8f8f9..c910c07bd7 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -113,14 +113,10 @@ void BaseFileFind::runNewSearch(const QString &txt, Find::FindFlags findFlags, updateComboEntries(m_filterCombo, true); m_watcher.setFuture(QFuture<FileSearchResultList>()); m_currentSearchCount = 0; - m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch(searchMode, - searchMode == SearchResultWindow::SearchAndReplace - ? QString::fromLatin1("TextEditor") - : QString()); + m_currentSearch = Find::SearchResultWindow::instance()->startNewSearch(label(), + toolTip().arg(Find::IFindFilter::descriptionForFindFlags(findFlags)), + txt, searchMode, QString::fromLatin1("TextEditor")); m_currentSearch->setTextToReplace(txt); - m_currentSearch->setInfo(label(), - toolTip().arg(Find::IFindFilter::descriptionForFindFlags(findFlags)), - txt); QVariantList searchParameters; searchParameters << qVariantFromValue(txt) << qVariantFromValue(findFlags); m_currentSearch->setUserData(searchParameters); @@ -169,6 +165,10 @@ void BaseFileFind::doReplace(const QString &text, } void BaseFileFind::displayResult(int index) { + if (!m_currentSearch) { + m_watcher.cancel(); + return; + } Utils::FileSearchResultList results = m_watcher.future().resultAt(index); QList<Find::SearchResultItem> items; foreach (const Utils::FileSearchResult &result, results) { @@ -190,7 +190,8 @@ void BaseFileFind::displayResult(int index) { void BaseFileFind::searchFinished() { - m_currentSearch->finishSearch(); + if (m_currentSearch) + m_currentSearch->finishSearch(); m_currentSearch = 0; m_isSearching = false; m_resultLabel = 0; diff --git a/src/plugins/texteditor/basefilefind.h b/src/plugins/texteditor/basefilefind.h index 6f757b1003..d3505d0da4 100644 --- a/src/plugins/texteditor/basefilefind.h +++ b/src/plugins/texteditor/basefilefind.h @@ -78,8 +78,8 @@ public: protected: virtual Utils::FileIterator *files() const = 0; - virtual QString label() const = 0; // see Find::SearchResult::setInfo - virtual QString toolTip() const = 0; // see Find::SearchResult::setInfo, + virtual QString label() const = 0; // see Find::SearchResultWindow::startNewSearch + virtual QString toolTip() const = 0; // see Find::SearchResultWindow::startNewSearch, // add %1 placeholder where the find flags should be put void writeCommonSettings(QSettings *settings); @@ -103,7 +103,7 @@ private: void runNewSearch(const QString &txt, Find::FindFlags findFlags, Find::SearchResultWindow::SearchMode searchMode); - Find::SearchResult *m_currentSearch; + QPointer<Find::SearchResult> m_currentSearch; int m_currentSearchCount; QFutureWatcher<Utils::FileSearchResultList> m_watcher; |