diff options
author | David Schulz <david.schulz@qt.io> | 2020-05-18 11:12:23 +0200 |
---|---|---|
committer | David Schulz <david.schulz@qt.io> | 2020-05-19 09:16:27 +0000 |
commit | 309702d9459537ccfdde887799afffaa6061c0f0 (patch) | |
tree | 8c3e65d24308be116b083debf3a2a7a2b0d57481 /src | |
parent | 009e9d783d6eb3d54743ed5af940914ce5d8e3c4 (diff) |
Find: Add additional replace widget setter
Allows adding arbitrary widgets in front of the replace button
Change-Id: I0a9a16ca1e06c217639f458dd7946db8a43f98b1
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/coreplugin/find/searchresultwidget.cpp | 17 | ||||
-rw-r--r-- | src/plugins/coreplugin/find/searchresultwidget.h | 3 | ||||
-rw-r--r-- | src/plugins/coreplugin/find/searchresultwindow.cpp | 8 | ||||
-rw-r--r-- | src/plugins/coreplugin/find/searchresultwindow.h | 1 | ||||
-rw-r--r-- | src/plugins/cpptools/cppfindreferences.cpp | 6 |
5 files changed, 30 insertions, 5 deletions
diff --git a/src/plugins/coreplugin/find/searchresultwidget.cpp b/src/plugins/coreplugin/find/searchresultwidget.cpp index 1f01a73e12..bfa941edae 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 b72ba93694..ee91ded132 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 cba967dc7a..2b3723c4f6 100644 --- a/src/plugins/coreplugin/find/searchresultwindow.cpp +++ b/src/plugins/coreplugin/find/searchresultwindow.cpp @@ -772,6 +772,14 @@ QWidget *SearchResult::additionalReplaceWidget() const } /*! + 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. \a fileName, \a lineNumber, and \a lineText are shown on the result line. diff --git a/src/plugins/coreplugin/find/searchresultwindow.h b/src/plugins/coreplugin/find/searchresultwindow.h index d21c05f248..6a450cb596 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 9e1dbd697d..131d0fca94 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); |