summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2011-05-06 12:23:24 +0200
committerThorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>2011-05-06 12:41:15 +0200
commitb3e47623c6e298a0a4f37969d665afc530989b78 (patch)
tree43f75684f3c997cf1cb1f1bbabaa1dd4424b5552 /src/plugins
parent6b5ce26bf68662b7fbf27cc90a1427e33c4e31ca (diff)
downloadqt-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.h2
-rw-r--r--src/plugins/locator/locatorfiltersfilter.cpp32
-rw-r--r--src/plugins/qmljstools/qmljsfunctionfilter.h2
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);