aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/texteditor/basefilefind.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2016-11-21 10:58:19 +0100
committerEike Ziller <eike.ziller@qt.io>2016-11-25 08:42:53 +0000
commit57ca90b8460765df3e1518ff24a0549a9d3fb059 (patch)
tree3ee7bba1b4ec33c1ab63fd57caa71ec2de27da67 /src/plugins/texteditor/basefilefind.cpp
parent62a842e447a834f0f800f147f4cf499c9de3724d (diff)
BaseFileFind/FindInFiles: Clean up enabled / valid state handling
IFindFilter: Separate enabledChanged and validChanged SearchEngine: Add enabledChanged GitGrep: Enable widget based on enabled state FindInFiles: Update validity on search engine enabledChanged instead of hardcoding it to when the search path changed Change-Id: I0c684423b871a3a4f1f164574f42e23b64cf9da0 Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src/plugins/texteditor/basefilefind.cpp')
-rw-r--r--src/plugins/texteditor/basefilefind.cpp36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp
index 070fc8824f..399e992cea 100644
--- a/src/plugins/texteditor/basefilefind.cpp
+++ b/src/plugins/texteditor/basefilefind.cpp
@@ -66,7 +66,6 @@ public:
QString title() const override { return tr("Internal"); }
QString toolTip() const override { return QString(); }
QWidget *widget() const override { return m_widget; }
- bool isEnabled() const override { return true; }
QVariant parameters() const override { return QVariant(); }
void readSettings(QSettings * /*settings*/) override {}
void writeSettings(QSettings * /*settings*/) const override {}
@@ -93,8 +92,13 @@ public:
private:
QWidget *m_widget;
};
-}
+} // namespace
+class SearchEnginePrivate
+{
+public:
+ bool isEnabled = true;
+};
class CountingLabel : public QLabel
{
@@ -116,13 +120,36 @@ public:
QPointer<QComboBox> m_filterCombo;
QVector<SearchEngine *> m_searchEngines;
SearchEngine *m_internalSearchEngine;
- int m_currentSearchEngineIndex = 0;
+ int m_currentSearchEngineIndex = -1;
};
} // namespace Internal
using namespace Internal;
+SearchEngine::SearchEngine()
+ : d(new SearchEnginePrivate)
+{
+}
+
+SearchEngine::~SearchEngine()
+{
+ delete d;
+}
+
+bool SearchEngine::isEnabled() const
+{
+ return d->isEnabled;
+}
+
+void SearchEngine::setEnabled(bool enabled)
+{
+ if (enabled == d->isEnabled)
+ return;
+ d->isEnabled = enabled;
+ emit enabledChanged(d->isEnabled);
+}
+
BaseFileFind::BaseFileFind() : d(new BaseFileFindPrivate)
{
d->m_internalSearchEngine = new InternalEngine;
@@ -186,7 +213,10 @@ QVector<SearchEngine *> BaseFileFind::searchEngines() const
void BaseFileFind::setCurrentSearchEngine(int index)
{
+ if (d->m_currentSearchEngineIndex == index)
+ return;
d->m_currentSearchEngineIndex = index;
+ emit currentSearchEngineChanged();
}
void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags,