diff --git a/src/plugins/coreplugin/find/searchresultwidget.cpp b/src/plugins/coreplugin/find/searchresultwidget.cpp index 1f01a73e129..bfa941edae1 100644 --- a/src/plugins/coreplugin/find/searchresultwidget.cpp +++ b/src/plugins/coreplugin/find/searchresultwidget.cpp @@ -176,8 +176,8 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) : m_preserveCaseCheck = new QCheckBox(m_topReplaceWidget); m_preserveCaseCheck->setText(tr("Preser&ve case")); m_preserveCaseCheck->setEnabled(false); - m_renameFilesCheckBox = new QCheckBox(m_topReplaceWidget); - m_renameFilesCheckBox->setVisible(false); + m_additionalReplaceWidget = new QWidget(m_topReplaceWidget); + m_additionalReplaceWidget->setVisible(false); m_replaceButton = new QToolButton(m_topReplaceWidget); m_replaceButton->setToolTip(tr("Replace all occurrences.")); m_replaceButton->setText(tr("&Replace")); @@ -198,7 +198,7 @@ SearchResultWidget::SearchResultWidget(QWidget *parent) : topReplaceLayout->addWidget(m_replaceLabel); topReplaceLayout->addWidget(m_replaceTextEdit); topReplaceLayout->addWidget(m_preserveCaseCheck); - topReplaceLayout->addWidget(m_renameFilesCheckBox); + topReplaceLayout->addWidget(m_additionalReplaceWidget); topReplaceLayout->addWidget(m_replaceButton); topReplaceLayout->addStretch(2); setShowReplaceUI(m_replaceSupported); @@ -231,7 +231,16 @@ void SearchResultWidget::setInfo(const QString &label, const QString &toolTip, c QWidget *SearchResultWidget::additionalReplaceWidget() const { - return m_renameFilesCheckBox; + return m_additionalReplaceWidget; +} + +void SearchResultWidget::setAdditionalReplaceWidget(QWidget *widget) +{ + if (QLayoutItem *item = m_topReplaceWidget->layout()->replaceWidget(m_additionalReplaceWidget, + widget)) + delete item; + delete m_additionalReplaceWidget; + m_additionalReplaceWidget = widget; } void SearchResultWidget::addResult(const QString &fileName, diff --git a/src/plugins/coreplugin/find/searchresultwidget.h b/src/plugins/coreplugin/find/searchresultwidget.h index b72ba936945..ee91ded1322 100644 --- a/src/plugins/coreplugin/find/searchresultwidget.h +++ b/src/plugins/coreplugin/find/searchresultwidget.h @@ -54,6 +54,7 @@ public: void setInfo(const QString &label, const QString &toolTip, const QString &term); QWidget *additionalReplaceWidget() const; + void setAdditionalReplaceWidget(QWidget *widget); void addResult(const QString &fileName, const QString &lineText, @@ -132,7 +133,7 @@ private: QToolButton *m_replaceButton = nullptr; QToolButton *m_searchAgainButton = nullptr; QCheckBox *m_preserveCaseCheck = nullptr; - QCheckBox *m_renameFilesCheckBox = nullptr; + QWidget *m_additionalReplaceWidget = nullptr; QWidget *m_descriptionContainer = nullptr; QLabel *m_label = nullptr; QLabel *m_searchTerm = nullptr; diff --git a/src/plugins/coreplugin/find/searchresultwindow.cpp b/src/plugins/coreplugin/find/searchresultwindow.cpp index cba967dc7a1..2b3723c4f62 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.cpp +++ b/src/plugins/coreplugin/find/searchresultwindow.cpp @@ -771,6 +771,14 @@ QWidget *SearchResult::additionalReplaceWidget() const return m_widget->additionalReplaceWidget(); } +/*! + Sets a UI for a global search and replace action. +*/ +void SearchResult::setAdditionalReplaceWidget(QWidget *widget) +{ + m_widget->setAdditionalReplaceWidget(widget); +} + /*! Adds a single result line to the \uicontrol {Search Results} output pane. diff --git a/src/plugins/coreplugin/find/searchresultwindow.h b/src/plugins/coreplugin/find/searchresultwindow.h index d21c05f2483..6a450cb596b 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.h +++ b/src/plugins/coreplugin/find/searchresultwindow.h @@ -60,6 +60,7 @@ public: int count() const; void setSearchAgainSupported(bool supported); QWidget *additionalReplaceWidget() const; + void setAdditionalReplaceWidget(QWidget *widget); public slots: void addResult(const QString &fileName, diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp index 9e1dbd697df..131d0fca948 100644 --- a/src/plugins/cpptools/cppfindreferences.cpp +++ b/src/plugins/cpptools/cppfindreferences.cpp @@ -338,6 +338,9 @@ void CppFindReferences::findUsages(CPlusPlus::Symbol *symbol, SearchResultWindow::PreserveCaseDisabled, QLatin1String("CppEditor")); search->setTextToReplace(replacement); + auto renameFilesCheckBox = new QCheckBox(); + renameFilesCheckBox->setVisible(false); + search->setAdditionalReplaceWidget(renameFilesCheckBox); connect(search, &SearchResult::replaceButtonClicked, this, &CppFindReferences::onReplaceButtonClicked); search->setSearchAgainSupported(true); @@ -721,6 +724,9 @@ void CppFindReferences::findMacroUses(const CPlusPlus::Macro ¯o, const QStri QLatin1String("CppEditor")); search->setTextToReplace(replacement); + auto renameFilesCheckBox = new QCheckBox(); + renameFilesCheckBox->setVisible(false); + search->setAdditionalReplaceWidget(renameFilesCheckBox); connect(search, &SearchResult::replaceButtonClicked, this, &CppFindReferences::onReplaceButtonClicked);