From 3c6a2b79124bf05abf4853b2377b7599c254a998 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 29 Jun 2017 15:45:31 +0200 Subject: [PATCH] Extend search pane The search term line edit can now be hidden away and the options are hidden too too if they are all disabled. Change-Id: I2363d010acbdabb2abfc6c6cd2f98c07cd7d3a3d Reviewed-by: Eike Ziller --- src/plugins/coreplugin/find/finddialog.ui | 26 ++++++++++++++++--- .../coreplugin/find/findtoolwindow.cpp | 7 +++++ src/plugins/coreplugin/find/ifindfilter.cpp | 11 +++++++- src/plugins/coreplugin/find/ifindfilter.h | 1 + src/plugins/cpptools/symbolsfindfilter.cpp | 5 ---- src/plugins/cpptools/symbolsfindfilter.h | 1 - 6 files changed, 40 insertions(+), 11 deletions(-) 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);