diff --git a/src/plugins/coreplugin/find/finddialog.ui b/src/plugins/coreplugin/find/finddialog.ui
index 1f3c900b3ff..7ada6ce0aa9 100644
--- a/src/plugins/coreplugin/find/finddialog.ui
+++ b/src/plugins/coreplugin/find/finddialog.ui
@@ -55,7 +55,7 @@
-
-
+
Sear&ch for:
@@ -73,7 +73,16 @@
0
-
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
0
-
@@ -103,9 +112,18 @@
-
-
+
-
+
+ 0
+
+
+ 0
+
+
+ 0
+
+
0
-
diff --git a/src/plugins/coreplugin/find/findtoolwindow.cpp b/src/plugins/coreplugin/find/findtoolwindow.cpp
index b29dfbe4f8e..ffcf3855253 100644
--- a/src/plugins/coreplugin/find/findtoolwindow.cpp
+++ b/src/plugins/coreplugin/find/findtoolwindow.cpp
@@ -147,6 +147,13 @@ void FindToolWindow::updateButtonStates()
if (m_configWidget)
m_configWidget->setEnabled(filterEnabled);
+ if (m_currentFilter) {
+ m_ui.searchTerm->setVisible(m_currentFilter->showSearchTermInput());
+ m_ui.searchLabel->setVisible(m_currentFilter->showSearchTermInput());
+ m_ui.optionsWidget->setVisible(m_currentFilter->supportedFindFlags()
+ & (FindCaseSensitively | FindWholeWords | FindRegularExpression));
+ }
+
m_ui.matchCase->setEnabled(filterEnabled
&& (m_currentFilter->supportedFindFlags() & FindCaseSensitively));
m_ui.wholeWords->setEnabled(filterEnabled
diff --git a/src/plugins/coreplugin/find/ifindfilter.cpp b/src/plugins/coreplugin/find/ifindfilter.cpp
index e080e249f0c..d57a16370e1 100644
--- a/src/plugins/coreplugin/find/ifindfilter.cpp
+++ b/src/plugins/coreplugin/find/ifindfilter.cpp
@@ -142,6 +142,14 @@
your find filter supports global search and replace.
*/
+/*!
+ \fn bool showSearchTermInput() const
+ Returns whether the find filter wants to show the search term line edit.
+
+ The default value is \c true, override this function to return \c false, if
+ your find filter does not want to show the search term line edit.
+*/
+
/*!
\fn void IFindFilter::findAll(const QString &txt, Core::FindFlags findFlags)
This function is called when the user selected this find scope and
@@ -227,7 +235,8 @@ QKeySequence IFindFilter::defaultShortcut() const
FindFlags IFindFilter::supportedFindFlags() const
{
return FindCaseSensitively
- | FindRegularExpression | FindWholeWords;
+ | FindRegularExpression
+ | FindWholeWords;
}
QPixmap IFindFilter::pixmapForFindFlags(FindFlags flags)
diff --git a/src/plugins/coreplugin/find/ifindfilter.h b/src/plugins/coreplugin/find/ifindfilter.h
index 41a920379d9..9c67c29fc2e 100644
--- a/src/plugins/coreplugin/find/ifindfilter.h
+++ b/src/plugins/coreplugin/find/ifindfilter.h
@@ -50,6 +50,7 @@ public:
virtual bool isValid() const { return true; }
virtual QKeySequence defaultShortcut() const;
virtual bool isReplaceSupported() const { return false; }
+ virtual bool showSearchTermInput() const { return true; }
virtual FindFlags supportedFindFlags() const;
virtual void findAll(const QString &txt, FindFlags findFlags) = 0;
diff --git a/src/plugins/cpptools/symbolsfindfilter.cpp b/src/plugins/cpptools/symbolsfindfilter.cpp
index 104cac2ba87..9286a61138d 100644
--- a/src/plugins/cpptools/symbolsfindfilter.cpp
+++ b/src/plugins/cpptools/symbolsfindfilter.cpp
@@ -100,11 +100,6 @@ void SymbolsFindFilter::setPaused(bool paused)
watcher->setPaused(paused);
}
-FindFlags SymbolsFindFilter::supportedFindFlags() const
-{
- return FindCaseSensitively | FindRegularExpression | FindWholeWords;
-}
-
void SymbolsFindFilter::findAll(const QString &txt, FindFlags findFlags)
{
SearchResultWindow *window = SearchResultWindow::instance();
diff --git a/src/plugins/cpptools/symbolsfindfilter.h b/src/plugins/cpptools/symbolsfindfilter.h
index 827bef9f7a2..b4e72b2a320 100644
--- a/src/plugins/cpptools/symbolsfindfilter.h
+++ b/src/plugins/cpptools/symbolsfindfilter.h
@@ -56,7 +56,6 @@ public:
QString id() const;
QString displayName() const;
bool isEnabled() const;
- Core::FindFlags supportedFindFlags() const;
void findAll(const QString &txt, Core::FindFlags findFlags);