diff options
author | Eike Ziller <eike.ziller@qt.io> | 2016-11-21 10:58:19 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2016-11-25 08:42:53 +0000 |
commit | 57ca90b8460765df3e1518ff24a0549a9d3fb059 (patch) | |
tree | 3ee7bba1b4ec33c1ab63fd57caa71ec2de27da67 /src/plugins/texteditor/basefilefind.cpp | |
parent | 62a842e447a834f0f800f147f4cf499c9de3724d (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.cpp | 36 |
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, |