diff --git a/src/plugins/coreplugin/find/searchresultwidget.cpp b/src/plugins/coreplugin/find/searchresultwidget.cpp index 9009fa5e9c4..f9e2dafb9a9 100644 --- a/src/plugins/coreplugin/find/searchresultwidget.cpp +++ b/src/plugins/coreplugin/find/searchresultwidget.cpp @@ -103,9 +103,9 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) : auto messageLayout = new QHBoxLayout(m_messageWidget); messageLayout->setContentsMargins(2, 2, 2, 2); m_messageWidget->setLayout(messageLayout); - QLabel *messageLabel = new QLabel(tr("Search was canceled.")); - messageLabel->setPalette(pal); - messageLayout->addWidget(messageLabel); + m_messageLabel = new QLabel; + m_messageLabel->setPalette(pal); + messageLayout->addWidget(m_messageLabel); layout->addWidget(m_messageWidget); m_messageWidget->setVisible(false); @@ -435,7 +435,7 @@ void SearchResultWidget::setReplaceEnabled(bool enabled) m_replaceButton->setEnabled(enabled); } -void SearchResultWidget::finishSearch(bool canceled) +void SearchResultWidget::finishSearch(bool canceled, const QString &reason) { Id sizeWarningId(SIZE_WARNING_ID); m_infoBar.removeInfo(sizeWarningId); @@ -444,6 +444,8 @@ void SearchResultWidget::finishSearch(bool canceled) m_replaceButton->setEnabled(m_count > 0); m_preserveCaseCheck->setEnabled(m_count > 0); m_cancelButton->setVisible(false); + if (canceled) + m_messageLabel->setText(reason.isEmpty() ? tr("Search was canceled.") : reason); m_messageWidget->setVisible(canceled); m_searchAgainButton->setVisible(m_searchAgainSupported); m_searching = false; diff --git a/src/plugins/coreplugin/find/searchresultwidget.h b/src/plugins/coreplugin/find/searchresultwidget.h index be3bda36dc9..41b55e3dfe1 100644 --- a/src/plugins/coreplugin/find/searchresultwidget.h +++ b/src/plugins/coreplugin/find/searchresultwidget.h @@ -70,7 +70,7 @@ public: void setReplaceEnabled(bool enabled); public slots: - void finishSearch(bool canceled); + void finishSearch(bool canceled, const QString &reason); void sendRequestPopup(); signals: @@ -118,6 +118,7 @@ private: QWidget *m_descriptionContainer = nullptr; QLabel *m_label = nullptr; QLabel *m_searchTerm = nullptr; + QLabel *m_messageLabel = nullptr; QToolButton *m_cancelButton = nullptr; QLabel *m_matchesFoundLabel = nullptr; bool m_preserveCaseSupported = true; diff --git a/src/plugins/coreplugin/find/searchresultwindow.cpp b/src/plugins/coreplugin/find/searchresultwindow.cpp index d929cf9672f..d4bd1d98f46 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.cpp +++ b/src/plugins/coreplugin/find/searchresultwindow.cpp @@ -838,9 +838,9 @@ void SearchResult::setFilter(SearchResultFilter *filter) Notifies the \uicontrol {Search Results} output pane that the current search has been \a canceled, and the UI should reflect that. */ -void SearchResult::finishSearch(bool canceled) +void SearchResult::finishSearch(bool canceled, const QString &reason) { - m_widget->finishSearch(canceled); + m_widget->finishSearch(canceled, reason); } /*! diff --git a/src/plugins/coreplugin/find/searchresultwindow.h b/src/plugins/coreplugin/find/searchresultwindow.h index 895640db87d..d41340ce75a 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.h +++ b/src/plugins/coreplugin/find/searchresultwindow.h @@ -58,7 +58,7 @@ public slots: void addResult(const SearchResultItem &item); void addResults(const QList &items, AddMode mode); void setFilter(SearchResultFilter *filter); // Takes ownership - void finishSearch(bool canceled); + void finishSearch(bool canceled, const QString &reason = {}); void setTextToReplace(const QString &textToReplace); void restart(); void setReplaceEnabled(bool enabled); diff --git a/src/plugins/languageclient/languageclientsymbolsupport.cpp b/src/plugins/languageclient/languageclientsymbolsupport.cpp index c9f4ce6929c..75e552e4684 100644 --- a/src/plugins/languageclient/languageclientsymbolsupport.cpp +++ b/src/plugins/languageclient/languageclientsymbolsupport.cpp @@ -401,8 +401,11 @@ void SymbolSupport::handleRenameResponse(Core::SearchResult *search, const RenameRequest::Response &response) { const std::optional &error = response.error(); - if (error.has_value()) + QString errorMessage; + if (error.has_value()) { m_client->log(*error); + errorMessage = error->toString(); + } const std::optional &edits = response.result(); if (edits.has_value()) { @@ -412,7 +415,7 @@ void SymbolSupport::handleRenameResponse(Core::SearchResult *search, search->setSearchAgainEnabled(false); search->finishSearch(false); } else { - search->finishSearch(error.has_value()); + search->finishSearch(error.has_value(), errorMessage); } }