diff options
author | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2011-05-06 12:23:24 +0200 |
---|---|---|
committer | Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com> | 2011-05-06 12:41:15 +0200 |
commit | b3e47623c6e298a0a4f37969d665afc530989b78 (patch) | |
tree | 43f75684f3c997cf1cb1f1bbabaa1dd4424b5552 /src/plugins | |
parent | 6b5ce26bf68662b7fbf27cc90a1427e33c4e31ca (diff) | |
download | qt-creator-b3e47623c6e298a0a4f37969d665afc530989b78.tar.gz |
Merged "Methods" and QML "Functions" locator filters
They're still separate filters, but by default they share the same
prefix, which will now make sure that only one entry shows up in the
list of filters.
Done-with: Christian Kamm
Task-number: QTCREATORBUG-4796
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/cpptools/cppfunctionsfilter.h | 2 | ||||
-rw-r--r-- | src/plugins/locator/locatorfiltersfilter.cpp | 32 | ||||
-rw-r--r-- | src/plugins/qmljstools/qmljsfunctionfilter.h | 2 |
3 files changed, 22 insertions, 14 deletions
diff --git a/src/plugins/cpptools/cppfunctionsfilter.h b/src/plugins/cpptools/cppfunctionsfilter.h index 6f3b57ba67..51bafa2bde 100644 --- a/src/plugins/cpptools/cppfunctionsfilter.h +++ b/src/plugins/cpptools/cppfunctionsfilter.h @@ -46,7 +46,7 @@ public: CppFunctionsFilter(CppModelManager *manager); ~CppFunctionsFilter(); - QString displayName() const { return tr("Methods"); } + QString displayName() const { return tr("Methods and functions"); } QString id() const { return QLatin1String("Methods"); } Priority priority() const { return Medium; } }; diff --git a/src/plugins/locator/locatorfiltersfilter.cpp b/src/plugins/locator/locatorfiltersfilter.cpp index 9dd6c00c30..baef7ff949 100644 --- a/src/plugins/locator/locatorfiltersfilter.cpp +++ b/src/plugins/locator/locatorfiltersfilter.cpp @@ -69,20 +69,28 @@ ILocatorFilter::Priority LocatorFiltersFilter::priority() const QList<FilterEntry> LocatorFiltersFilter::matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry) { QList<FilterEntry> entries; - if (entry.isEmpty()) { - foreach (ILocatorFilter *filter, m_plugin->filters()) { - if (future.isCanceled()) - break; - if (!filter->shortcutString().isEmpty() && !filter->isHidden()) { - FilterEntry filterEntry(this, - filter->shortcutString(), - QVariant::fromValue(filter), - m_icon); - filterEntry.extraInfo = filter->displayName(); - entries.append(filterEntry); - } + if (!entry.isEmpty()) + return entries; + + QMap<QString, ILocatorFilter*> uniqueFilters; + foreach (ILocatorFilter *filter, m_plugin->filters()) { + const QString filterId = filter->shortcutString() + QLatin1Char(',') + filter->displayName(); + uniqueFilters.insert(filterId, filter); + } + + foreach (ILocatorFilter *filter, uniqueFilters) { + if (future.isCanceled()) + break; + if (!filter->shortcutString().isEmpty() && !filter->isHidden()) { + FilterEntry filterEntry(this, + filter->shortcutString(), + QVariant::fromValue(filter), + m_icon); + filterEntry.extraInfo = filter->displayName(); + entries.append(filterEntry); } } + return entries; } diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.h b/src/plugins/qmljstools/qmljsfunctionfilter.h index ccf9db8447..1e1f2bb8ee 100644 --- a/src/plugins/qmljstools/qmljsfunctionfilter.h +++ b/src/plugins/qmljstools/qmljsfunctionfilter.h @@ -47,7 +47,7 @@ public: explicit FunctionFilter(LocatorData *data, QObject *parent = 0); ~FunctionFilter(); - QString displayName() const { return tr("Functions"); } + QString displayName() const { return tr("Methods and functions"); } QString id() const { return QLatin1String("Functions"); } Priority priority() const { return Medium; } QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry); |