aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Schulz <david.schulz@qt.io>2020-05-18 11:12:23 +0200
committerDavid Schulz <david.schulz@qt.io>2020-05-19 09:16:27 +0000
commit309702d9459537ccfdde887799afffaa6061c0f0 (patch)
tree8c3e65d24308be116b083debf3a2a7a2b0d57481 /src
parent009e9d783d6eb3d54743ed5af940914ce5d8e3c4 (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.cpp17
-rw-r--r--src/plugins/coreplugin/find/searchresultwidget.h3
-rw-r--r--src/plugins/coreplugin/find/searchresultwindow.cpp8
-rw-r--r--src/plugins/coreplugin/find/searchresultwindow.h1
-rw-r--r--src/plugins/cpptools/cppfindreferences.cpp6
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 &macro, const QStri
QLatin1String("CppEditor"));
search->setTextToReplace(replacement);
+ auto renameFilesCheckBox = new QCheckBox();
+ renameFilesCheckBox->setVisible(false);
+ search->setAdditionalReplaceWidget(renameFilesCheckBox);
connect(search, &SearchResult::replaceButtonClicked,
this, &CppFindReferences::onReplaceButtonClicked);