summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@nokia.com>2011-09-09 16:10:57 +0200
committerEike Ziller <eike.ziller@nokia.com>2011-09-14 10:55:20 +0200
commitfdeb7620f1e7f33e5bb5749a28f84870c9af70ac (patch)
treea6a3c0bfa84bc3e4b97f836928479e6f19433bb6 /src/plugins/texteditor
parentc5c94206ba5a903215771bd6bf68c0919380e5c7 (diff)
downloadqt-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.cpp17
-rw-r--r--src/plugins/texteditor/basefilefind.h6
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;