diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index d1332f0e0dde63e3398409a7dc84649d45eba4ae..a5d59f30c6c7e1bd09fe65ccb07888773c3572de 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -275,7 +275,7 @@ void CppFindReferences::findAll_helper(Find::SearchResult *search) { CppFindReferencesParameters parameters = search->userData().value<CppFindReferencesParameters>(); if (!(parameters.symbol && parameters.symbol->identifier())) { - search->finishSearch(); + search->finishSearch(false); return; } connect(search, SIGNAL(cancelled()), this, SLOT(cancel())); @@ -313,7 +313,7 @@ void CppFindReferences::searchAgain() Snapshot snapshot = CppModelManagerInterface::instance()->snapshot(); search->restart(); if (!findSymbol(¶meters, snapshot)) { - search->finishSearch(); + search->finishSearch(false); return; } search->setUserData(qVariantFromValue(parameters)); @@ -498,7 +498,7 @@ void CppFindReferences::searchFinished() QFutureWatcher<Usage> *watcher = static_cast<QFutureWatcher<Usage> *>(sender()); Find::SearchResult *search = m_watchers.value(watcher); if (search) - search->finishSearch(); + search->finishSearch(watcher->isCanceled()); m_watchers.remove(watcher); } diff --git a/src/plugins/cpptools/symbolsfindfilter.cpp b/src/plugins/cpptools/symbolsfindfilter.cpp index 578cbaed959bbc6a2224da836644aa7dc7cb6017..4356af9a221d2a9006b5fa0a5c0ec0febb75db53 100644 --- a/src/plugins/cpptools/symbolsfindfilter.cpp +++ b/src/plugins/cpptools/symbolsfindfilter.cpp @@ -217,7 +217,7 @@ void SymbolsFindFilter::finish() static_cast<QFutureWatcher<Find::SearchResultItem> *>(sender()); Find::SearchResult *search = m_watchers.value(watcher); if (search) - search->finishSearch(); + search->finishSearch(watcher->isCanceled()); m_watchers.remove(watcher); watcher->deleteLater(); } diff --git a/src/plugins/find/searchresultwidget.cpp b/src/plugins/find/searchresultwidget.cpp index 4d34941f51d7bf748b63548aea509f4f4edd291d..e3c08be56d260eecec86d6b925e149487450c7cf 100644 --- a/src/plugins/find/searchresultwidget.cpp +++ b/src/plugins/find/searchresultwidget.cpp @@ -96,6 +96,23 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) : QHBoxLayout *topLayout = new QHBoxLayout(topWidget); topLayout->setMargin(2); topWidget->setLayout(topLayout); + layout->addWidget(topWidget); + + m_messageWidget = new QFrame; + pal.setColor(QPalette::Window, QColor(255, 255, 225)); + pal.setColor(QPalette::WindowText, Qt::red); + m_messageWidget->setPalette(pal); + m_messageWidget->setFrameStyle(QFrame::Panel | QFrame::Raised); + m_messageWidget->setLineWidth(1); + m_messageWidget->setAutoFillBackground(true); + QHBoxLayout *messageLayout = new QHBoxLayout(m_messageWidget); + messageLayout->setMargin(2); + m_messageWidget->setLayout(messageLayout); + QLabel *messageLabel = new QLabel(tr("Search was canceled.")); + messageLabel->setPalette(pal); + messageLayout->addWidget(messageLabel); + layout->addWidget(m_messageWidget); + m_messageWidget->setVisible(false); m_searchResultTreeView = new Internal::SearchResultTreeView(this); m_searchResultTreeView->setFrameStyle(QFrame::NoFrame); @@ -104,11 +121,9 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) : agg->add(m_searchResultTreeView); agg->add(new TreeViewFind(m_searchResultTreeView, ItemDataRoles::ResultLineRole)); - - layout->addWidget(topWidget); layout->addWidget(m_searchResultTreeView); - m_infoBarDisplay.setTarget(layout, 1); + m_infoBarDisplay.setTarget(layout, 2); m_infoBarDisplay.setInfoBar(&m_infoBar); m_descriptionContainer = new QWidget(topWidget); @@ -332,6 +347,7 @@ void SearchResultWidget::restart() m_count = 0; m_cancelButton->setVisible(true); m_searchAgainButton->setVisible(false); + m_messageWidget->setVisible(false); updateMatchesFoundLabel(); emit restarted(); } @@ -347,11 +363,12 @@ void SearchResultWidget::setSearchAgainEnabled(bool enabled) m_searchAgainButton->setEnabled(enabled); } -void SearchResultWidget::finishSearch() +void SearchResultWidget::finishSearch(bool canceled) { m_replaceTextEdit->setEnabled(m_count > 0); m_replaceButton->setEnabled(m_count > 0); m_cancelButton->setVisible(false); + m_messageWidget->setVisible(canceled); m_searchAgainButton->setVisible(m_searchAgainSupported); } diff --git a/src/plugins/find/searchresultwidget.h b/src/plugins/find/searchresultwidget.h index be03c3dc6a224a746d5093806bcd9270168cdb0d..55a4efef65bcaed6ba681b370234b7dbb46a6943 100644 --- a/src/plugins/find/searchresultwidget.h +++ b/src/plugins/find/searchresultwidget.h @@ -37,6 +37,7 @@ #include <coreplugin/infobar.h> +#include <QFrame> #include <QLabel> #include <QLineEdit> #include <QToolButton> @@ -89,7 +90,7 @@ public: void setSearchAgainEnabled(bool enabled); public slots: - void finishSearch(); + void finishSearch(bool canceled); signals: void activated(const Find::SearchResultItem &item); @@ -117,6 +118,7 @@ private: SearchResultTreeView *m_searchResultTreeView; int m_count; QString m_dontAskAgainGroup; + QFrame *m_messageWidget; Core::InfoBar m_infoBar; Core::InfoBarDisplay m_infoBarDisplay; bool m_isShowingReplaceUI; diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp index 30daee7dbc81c27a1552c34737e520c5ba294e78..265b405f7dcd19ce917a7023142ec337fd57fbc8 100644 --- a/src/plugins/find/searchresultwindow.cpp +++ b/src/plugins/find/searchresultwindow.cpp @@ -669,9 +669,9 @@ void SearchResult::addResults(const QList<SearchResultItem> &items, AddMode mode \brief Notifies the search result window that the current search has finished, and the UI should reflect that. */ -void SearchResult::finishSearch() +void SearchResult::finishSearch(bool canceled) { - m_widget->finishSearch(); + m_widget->finishSearch(canceled); } /*! diff --git a/src/plugins/find/searchresultwindow.h b/src/plugins/find/searchresultwindow.h index 4a9d884143af50b45fc3ecbd438da09d50636d85..15db74c590ebb9ecc8378567618116ed0fcd9091 100644 --- a/src/plugins/find/searchresultwindow.h +++ b/src/plugins/find/searchresultwindow.h @@ -105,7 +105,7 @@ public slots: void addResult(const QString &fileName, int lineNumber, const QString &lineText, int searchTermStart, int searchTermLength, const QVariant &userData = QVariant()); void addResults(const QList<SearchResultItem> &items, AddMode mode); - void finishSearch(); + void finishSearch(bool canceled); void setTextToReplace(const QString &textToReplace); void restart(); void setSearchAgainEnabled(bool enabled); diff --git a/src/plugins/qmljseditor/qmljsfindreferences.cpp b/src/plugins/qmljseditor/qmljsfindreferences.cpp index 55b62fa96d9005748d20ae3c479880b70beaaa47..5931634ba14bbff02fb21644a623fcbeee4dbd8a 100644 --- a/src/plugins/qmljseditor/qmljsfindreferences.cpp +++ b/src/plugins/qmljseditor/qmljsfindreferences.cpp @@ -958,7 +958,7 @@ void FindReferences::displayResults(int first, int last) void FindReferences::searchFinished() { if (m_currentSearch) - m_currentSearch->finishSearch(); + m_currentSearch->finishSearch(m_watcher.isCanceled()); m_currentSearch = 0; emit changed(); } diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index accd0327de677fb845c6ce2a20629fcfac3757f4..9676009dcf2724e75639095e22a42e81127b0eee 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -216,7 +216,7 @@ void BaseFileFind::searchFinished() static_cast<QFutureWatcher<FileSearchResultList> *>(sender()); SearchResult *search = m_watchers.value(watcher); if (search) - search->finishSearch(); + search->finishSearch(watcher->isCanceled()); m_watchers.remove(watcher); watcher->deleteLater(); }