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>
This commit is contained in:
Eike Ziller
2016-11-21 10:58:19 +01:00
parent 62a842e447
commit 57ca90b846
8 changed files with 82 additions and 23 deletions

View File

@@ -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,