summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <qthjk@ovi.com>2013-01-18 11:16:53 +0100
committerhjk <qthjk@ovi.com>2013-01-18 15:51:13 +0100
commitbaffa492d959f5a8928839689163203f195fe8bd (patch)
tree2c427a865c777ae6abdf8706353cc7f2367fddac
parente7003283a53378e711626603563ba613855fa367 (diff)
downloadqt-creator-baffa492d959f5a8928839689163203f195fe8bd.tar.gz
Core: simplify ILocator interface
Use data members instead of virtual functions for id, displayName and priority, use Core::Id, not QStrings for id, de-pimpl CommandLocator. Change-Id: Id8b41f184cb995138b2d76c923d6d3ae02b7e3f5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: hjk <qthjk@ovi.com>
-rw-r--r--src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/cmakelocatorfilter.h4
-rw-r--r--src/plugins/coreplugin/dialogs/settingsdialog.cpp6
-rw-r--r--src/plugins/coreplugin/id.cpp5
-rw-r--r--src/plugins/coreplugin/id.h1
-rw-r--r--src/plugins/cpptools/cppclassesfilter.cpp2
-rw-r--r--src/plugins/cpptools/cppclassesfilter.h4
-rw-r--r--src/plugins/cpptools/cppcurrentdocumentfilter.cpp2
-rw-r--r--src/plugins/cpptools/cppcurrentdocumentfilter.h3
-rw-r--r--src/plugins/cpptools/cppfunctionsfilter.cpp2
-rw-r--r--src/plugins/cpptools/cppfunctionsfilter.h4
-rw-r--r--src/plugins/cpptools/cpplocatorfilter.cpp2
-rw-r--r--src/plugins/cpptools/cpplocatorfilter.h4
-rw-r--r--src/plugins/help/helpindexfilter.cpp18
-rw-r--r--src/plugins/help/helpindexfilter.h3
-rw-r--r--src/plugins/help/remotehelpfilter.cpp18
-rw-r--r--src/plugins/help/remotehelpfilter.h3
-rw-r--r--src/plugins/locator/commandlocator.cpp30
-rw-r--r--src/plugins/locator/commandlocator.h26
-rw-r--r--src/plugins/locator/directoryfilter.cpp9
-rw-r--r--src/plugins/locator/directoryfilter.h3
-rw-r--r--src/plugins/locator/executefilter.cpp2
-rw-r--r--src/plugins/locator/executefilter.h3
-rw-r--r--src/plugins/locator/filesystemfilter.cpp2
-rw-r--r--src/plugins/locator/filesystemfilter.h7
-rw-r--r--src/plugins/locator/ilocatorfilter.cpp57
-rw-r--r--src/plugins/locator/ilocatorfilter.h37
-rw-r--r--src/plugins/locator/locatorfiltersfilter.cpp24
-rw-r--r--src/plugins/locator/locatorfiltersfilter.h4
-rw-r--r--src/plugins/locator/locatorplugin.cpp6
-rw-r--r--src/plugins/locator/locatorplugin.h4
-rw-r--r--src/plugins/locator/locatorwidget.cpp29
-rw-r--r--src/plugins/locator/locatorwidget.h2
-rw-r--r--src/plugins/locator/opendocumentsfilter.cpp7
-rw-r--r--src/plugins/locator/opendocumentsfilter.h3
-rw-r--r--src/plugins/macros/macrolocatorfilter.cpp2
-rw-r--r--src/plugins/macros/macrolocatorfilter.h4
-rw-r--r--src/plugins/projectexplorer/allprojectsfilter.cpp8
-rw-r--r--src/plugins/projectexplorer/allprojectsfilter.h3
-rw-r--r--src/plugins/projectexplorer/currentprojectfilter.cpp8
-rw-r--r--src/plugins/projectexplorer/currentprojectfilter.h4
-rw-r--r--src/plugins/qmljstools/qmljsfunctionfilter.cpp2
-rw-r--r--src/plugins/qmljstools/qmljsfunctionfilter.h4
-rw-r--r--src/plugins/texteditor/linenumberfilter.cpp3
-rw-r--r--src/plugins/texteditor/linenumberfilter.h3
45 files changed, 168 insertions, 211 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
index 16354946e4..577c6cf70f 100644
--- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
@@ -45,6 +45,8 @@ using namespace Utils;
CMakeLocatorFilter::CMakeLocatorFilter()
{
+ setId("Build CMake target");
+ setDisplayName(tr("Build CMake target"));
setShortcutString(QLatin1String("cm"));
ProjectExplorer::SessionManager *sm = ProjectExplorer::ProjectExplorerPlugin::instance()->session();
diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.h b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.h
index bc99a1c4fb..f790b3e500 100644
--- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.h
+++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.h
@@ -45,10 +45,6 @@ public:
CMakeLocatorFilter();
~CMakeLocatorFilter();
- QString displayName() const { return tr("Build CMake target"); }
- QString id() const { return QLatin1String("Build CMake target"); }
- Priority priority() const { return Medium; }
-
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index 9274613aab..e138e91564 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -270,9 +270,9 @@ public:
// Helpers to sort by category. id
bool optionsPageLessThan(const IOptionsPage *p1, const IOptionsPage *p2)
{
- if (const int cc = p1->category().toString().compare(p2->category().toString()))
- return cc < 0;
- return p1->id().toString().compare(p2->id().toString()) < 0;
+ if (p1->category() != p2->category())
+ return p1->category().alphabeticallyBefore(p2->category());
+ return p1->id().alphabeticallyBefore(p2->id());
}
static inline QList<Core::IOptionsPage*> sortedOptionsPages()
diff --git a/src/plugins/coreplugin/id.cpp b/src/plugins/coreplugin/id.cpp
index b947cb8229..8cfc02ddfd 100644
--- a/src/plugins/coreplugin/id.cpp
+++ b/src/plugins/coreplugin/id.cpp
@@ -323,4 +323,9 @@ CORE_EXPORT const char *nameForId(int id)
return stringFromId.value(id).str;
}
+bool Id::alphabeticallyBefore(Id other) const
+{
+ return toString().compare(other.toString(), Qt::CaseInsensitive) < 0;
+}
+
} // namespace Core
diff --git a/src/plugins/coreplugin/id.h b/src/plugins/coreplugin/id.h
index d2d3e93456..98b1b8eb9a 100644
--- a/src/plugins/coreplugin/id.h
+++ b/src/plugins/coreplugin/id.h
@@ -64,6 +64,7 @@ public:
bool operator!=(const char *name) const { return !operator==(name); }
bool operator<(Id id) const { return m_id < id.m_id; }
bool operator>(Id id) const { return m_id > id.m_id; }
+ bool alphabeticallyBefore(Id other) const;
int uniqueIdentifier() const { return m_id; }
static Id fromUniqueIdentifier(int uid) { return Id(uid); }
static Id fromString(const QString &str); // FIXME: avoid.
diff --git a/src/plugins/cpptools/cppclassesfilter.cpp b/src/plugins/cpptools/cppclassesfilter.cpp
index bef718bd8b..e354552689 100644
--- a/src/plugins/cpptools/cppclassesfilter.cpp
+++ b/src/plugins/cpptools/cppclassesfilter.cpp
@@ -35,8 +35,10 @@ using namespace CppTools::Internal;
CppClassesFilter::CppClassesFilter(CppModelManager *manager)
: CppLocatorFilter(manager)
{
+ setId("Classes");
setShortcutString(QLatin1String("c"));
setIncludedByDefault(false);
+ setDisplayName(tr("C++ Classes"));
search.setSymbolsToSearchFor(SymbolSearcher::Classes);
search.setSeparateScope(true);
diff --git a/src/plugins/cpptools/cppclassesfilter.h b/src/plugins/cpptools/cppclassesfilter.h
index 95b66be69f..64474e70e4 100644
--- a/src/plugins/cpptools/cppclassesfilter.h
+++ b/src/plugins/cpptools/cppclassesfilter.h
@@ -42,10 +42,6 @@ class CPPTOOLS_EXPORT CppClassesFilter : public Internal::CppLocatorFilter
public:
CppClassesFilter(Internal::CppModelManager *manager);
~CppClassesFilter();
-
- QString displayName() const { return tr("C++ Classes"); }
- QString id() const { return QLatin1String("Classes"); }
- Priority priority() const { return Medium; }
};
} // namespace CppTools
diff --git a/src/plugins/cpptools/cppcurrentdocumentfilter.cpp b/src/plugins/cpptools/cppcurrentdocumentfilter.cpp
index bfcce051ec..26a5ba6ce1 100644
--- a/src/plugins/cpptools/cppcurrentdocumentfilter.cpp
+++ b/src/plugins/cpptools/cppcurrentdocumentfilter.cpp
@@ -40,6 +40,8 @@ using namespace CPlusPlus;
CppCurrentDocumentFilter::CppCurrentDocumentFilter(CppModelManager *manager, Core::EditorManager *editorManager)
: m_modelManager(manager)
{
+ setId("Methods in current Document");
+ setDisplayName(tr("C++ Methods in Current Document"));
setShortcutString(QString(QLatin1Char('.')));
setIncludedByDefault(false);
diff --git a/src/plugins/cpptools/cppcurrentdocumentfilter.h b/src/plugins/cpptools/cppcurrentdocumentfilter.h
index 6e87ac265a..9bfde7a3c9 100644
--- a/src/plugins/cpptools/cppcurrentdocumentfilter.h
+++ b/src/plugins/cpptools/cppcurrentdocumentfilter.h
@@ -50,9 +50,6 @@ public:
CppCurrentDocumentFilter(CppModelManager *manager, Core::EditorManager *editorManager);
~CppCurrentDocumentFilter() {}
- QString displayName() const { return tr("C++ Methods in Current Document"); }
- QString id() const { return QLatin1String("Methods in current Document"); }
- Priority priority() const { return Medium; }
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/cpptools/cppfunctionsfilter.cpp b/src/plugins/cpptools/cppfunctionsfilter.cpp
index 138a1ed65f..5e41fc8000 100644
--- a/src/plugins/cpptools/cppfunctionsfilter.cpp
+++ b/src/plugins/cpptools/cppfunctionsfilter.cpp
@@ -34,6 +34,8 @@ using namespace CppTools::Internal;
CppFunctionsFilter::CppFunctionsFilter(CppModelManager *manager)
: CppLocatorFilter(manager)
{
+ setId("Methods");
+ setDisplayName(tr("C++ Methods and Functions"));
setShortcutString(QString(QLatin1Char('m')));
setIncludedByDefault(false);
diff --git a/src/plugins/cpptools/cppfunctionsfilter.h b/src/plugins/cpptools/cppfunctionsfilter.h
index 4d04edcf22..85418d4d3c 100644
--- a/src/plugins/cpptools/cppfunctionsfilter.h
+++ b/src/plugins/cpptools/cppfunctionsfilter.h
@@ -42,10 +42,6 @@ class CppFunctionsFilter : public CppLocatorFilter
public:
CppFunctionsFilter(CppModelManager *manager);
~CppFunctionsFilter();
-
- QString displayName() const { return tr("C++ Methods and Functions"); }
- QString id() const { return QLatin1String("Methods"); }
- Priority priority() const { return Medium; }
};
} // namespace Internal
diff --git a/src/plugins/cpptools/cpplocatorfilter.cpp b/src/plugins/cpptools/cpplocatorfilter.cpp
index 99a0e36591..57b81681eb 100644
--- a/src/plugins/cpptools/cpplocatorfilter.cpp
+++ b/src/plugins/cpptools/cpplocatorfilter.cpp
@@ -43,6 +43,8 @@ CppLocatorFilter::CppLocatorFilter(CppModelManager *manager)
: m_manager(manager),
m_forceNewSearchList(true)
{
+ setId("Classes and Methods");
+ setDisplayName(tr("C++ Classes and Methods"));
setShortcutString(QString(QLatin1Char(':')));
setIncludedByDefault(false);
diff --git a/src/plugins/cpptools/cpplocatorfilter.h b/src/plugins/cpptools/cpplocatorfilter.h
index ff7a8ae8c3..da20e875c6 100644
--- a/src/plugins/cpptools/cpplocatorfilter.h
+++ b/src/plugins/cpptools/cpplocatorfilter.h
@@ -41,13 +41,11 @@ class CppModelManager;
class CppLocatorFilter : public Locator::ILocatorFilter
{
Q_OBJECT
+
public:
CppLocatorFilter(CppModelManager *manager);
~CppLocatorFilter();
- QString displayName() const { return tr("C++ Classes and Methods"); }
- QString id() const { return QLatin1String("Classes and Methods"); }
- Priority priority() const { return Medium; }
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/help/helpindexfilter.cpp b/src/plugins/help/helpindexfilter.cpp
index b179df0a04..9fc64e44b8 100644
--- a/src/plugins/help/helpindexfilter.cpp
+++ b/src/plugins/help/helpindexfilter.cpp
@@ -46,8 +46,11 @@ Q_DECLARE_METATYPE(ILocatorFilter*)
HelpIndexFilter::HelpIndexFilter()
{
+ setId("HelpIndexFilter");
+ setDisplayName(tr("Help Index"));
setIncludedByDefault(false);
setShortcutString(QString(QLatin1Char('?')));
+
m_icon = QIcon(QLatin1String(":/help/images/bookmark.png"));
}
@@ -55,21 +58,6 @@ HelpIndexFilter::~HelpIndexFilter()
{
}
-QString HelpIndexFilter::displayName() const
-{
- return tr("Help Index");
-}
-
-QString HelpIndexFilter::id() const
-{
- return QLatin1String("HelpIndexFilter");
-}
-
-ILocatorFilter::Priority HelpIndexFilter::priority() const
-{
- return Medium;
-}
-
QList<FilterEntry> HelpIndexFilter::matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry)
{
QStringList keywords;
diff --git a/src/plugins/help/helpindexfilter.h b/src/plugins/help/helpindexfilter.h
index 5abf7f2e67..80cb7b7f89 100644
--- a/src/plugins/help/helpindexfilter.h
+++ b/src/plugins/help/helpindexfilter.h
@@ -46,9 +46,6 @@ public:
~HelpIndexFilter();
// ILocatorFilter
- QString displayName() const;
- QString id() const;
- Priority priority() const;
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/help/remotehelpfilter.cpp b/src/plugins/help/remotehelpfilter.cpp
index aa6cad21e2..12adf8b87f 100644
--- a/src/plugins/help/remotehelpfilter.cpp
+++ b/src/plugins/help/remotehelpfilter.cpp
@@ -80,8 +80,11 @@ void RemoteFilterOptions::updateRemoveButton()
RemoteHelpFilter::RemoteHelpFilter()
{
+ setId("RemoteHelpFilter");
+ setDisplayName(tr("Web Search"));
setIncludedByDefault(false);
setShortcutString(QLatin1String("r"));
+
m_remoteUrls.append(QLatin1String("http://www.bing.com/search?q=%1"));
m_remoteUrls.append(QLatin1String("http://www.google.com/search?q=%1"));
m_remoteUrls.append(QLatin1String("http://search.yahoo.com/search?p=%1"));
@@ -93,21 +96,6 @@ RemoteHelpFilter::~RemoteHelpFilter()
{
}
-QString RemoteHelpFilter::displayName() const
-{
- return tr("Web Search");
-}
-
-QString RemoteHelpFilter::id() const
-{
- return QLatin1String("RemoteHelpFilter");
-}
-
-Locator::ILocatorFilter::Priority RemoteHelpFilter::priority() const
-{
- return Medium;
-}
-
QList<Locator::FilterEntry> RemoteHelpFilter::matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &pattern)
{
QList<Locator::FilterEntry> entries;
diff --git a/src/plugins/help/remotehelpfilter.h b/src/plugins/help/remotehelpfilter.h
index c76e4f12cb..5cfe13ab92 100644
--- a/src/plugins/help/remotehelpfilter.h
+++ b/src/plugins/help/remotehelpfilter.h
@@ -47,9 +47,6 @@ public:
~RemoteHelpFilter();
// ILocatorFilter
- QString displayName() const;
- QString id() const;
- Priority priority() const;
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/locator/commandlocator.cpp b/src/plugins/locator/commandlocator.cpp
index 639a9995a4..04f5d606f6 100644
--- a/src/plugins/locator/commandlocator.cpp
+++ b/src/plugins/locator/commandlocator.cpp
@@ -31,6 +31,7 @@
#include <coreplugin/actionmanager/command.h>
#include <coreplugin/icore.h>
+#include <coreplugin/id.h>
#include <utils/qtcassert.h>
@@ -38,14 +39,8 @@
namespace Locator {
-struct CommandLocatorPrivate {
- CommandLocatorPrivate(const QString &prefix,
- const QString &displayName) :
- m_prefix(prefix), m_displayName(displayName) {}
-
- const QString m_prefix;
- const QString m_displayName;
-
+struct CommandLocatorPrivate
+{
QList<Core::Command *> commands;
};
@@ -54,8 +49,10 @@ CommandLocator::CommandLocator(const QString &prefix,
const QString &shortCutString,
QObject *parent) :
Locator::ILocatorFilter(parent),
- d(new CommandLocatorPrivate(prefix, displayName))
+ d(new CommandLocatorPrivate)
{
+ setId(Core::Id::fromString(prefix));
+ setDisplayName(displayName);
setShortcutString(shortCutString);
}
@@ -69,21 +66,6 @@ void CommandLocator::appendCommand(Core::Command *cmd)
d->commands.push_back(cmd);
}
-QString CommandLocator::displayName() const
-{
- return d->m_displayName;
-}
-
-QString CommandLocator::id() const
-{
- return d->m_prefix;
-}
-
-ILocatorFilter::Priority CommandLocator::priority() const
-{
- return Medium;
-}
-
QList<Locator::FilterEntry> CommandLocator::matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry)
{
QList<FilterEntry> filters;
diff --git a/src/plugins/locator/commandlocator.h b/src/plugins/locator/commandlocator.h
index 53e0d3ce18..556bdd8244 100644
--- a/src/plugins/locator/commandlocator.h
+++ b/src/plugins/locator/commandlocator.h
@@ -32,15 +32,8 @@
#include "locator_global.h"
#include "ilocatorfilter.h"
-#include <QList>
-QT_BEGIN_NAMESPACE
-class QAction;
-QT_END_NAMESPACE
-
-namespace Core {
- class Command;
-}
+namespace Core { class Command; }
namespace Locator {
/* Command locators: Provides completion for a set of
@@ -57,27 +50,18 @@ public:
const QString &displayName,
const QString &shortCutString,
QObject *parent = 0);
- virtual ~CommandLocator();
+ ~CommandLocator();
void appendCommand(Core::Command *cmd);
- virtual QString displayName() const;
- virtual QString id() const;
- virtual Priority priority() const;
- virtual QList<FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
- virtual void accept(FilterEntry selection) const;
- virtual void refresh(QFutureInterface<void> &future);
+ QList<FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
+ void accept(FilterEntry selection) const;
+ void refresh(QFutureInterface<void> &future);
private:
CommandLocatorPrivate *d;
};
-inline CommandLocator &operator<<(CommandLocator &locator, Core::Command *cmd)
-{
- locator.appendCommand(cmd);
- return locator;
-}
-
} // namespace Locator
#endif // COMMANDLOCATOR_H
diff --git a/src/plugins/locator/directoryfilter.cpp b/src/plugins/locator/directoryfilter.cpp
index 13db0e9dc8..8674cd62ed 100644
--- a/src/plugins/locator/directoryfilter.cpp
+++ b/src/plugins/locator/directoryfilter.cpp
@@ -43,11 +43,16 @@ using namespace Locator::Internal;
DirectoryFilter::DirectoryFilter()
: m_name(tr("Generic Directory Filter")),
- m_filters(QStringList() << QLatin1String("*.h") << QLatin1String("*.cpp")
- << QLatin1String("*.ui") << QLatin1String("*.qrc")),
m_dialog(0)
{
+ setId(Core::Id::fromString(m_name));
setIncludedByDefault(true);
+ setDisplayName(m_name);
+
+ m_filters.append(QLatin1String("*.h"));
+ m_filters.append(QLatin1String("*.cpp"));
+ m_filters.append(QLatin1String("*.ui"));
+ m_filters.append(QLatin1String("*.qrc"));
}
QByteArray DirectoryFilter::saveState() const
diff --git a/src/plugins/locator/directoryfilter.h b/src/plugins/locator/directoryfilter.h
index 932898f10c..4379daa4ce 100644
--- a/src/plugins/locator/directoryfilter.h
+++ b/src/plugins/locator/directoryfilter.h
@@ -48,9 +48,6 @@ class DirectoryFilter : public BaseFileFilter
public:
DirectoryFilter();
- QString displayName() const { return m_name; }
- QString id() const { return m_name; }
- Locator::ILocatorFilter::Priority priority() const { return Locator::ILocatorFilter::Medium; }
QByteArray saveState() const;
bool restoreState(const QByteArray &state);
bool openConfigDialog(QWidget *parent, bool &needsRefresh);
diff --git a/src/plugins/locator/executefilter.cpp b/src/plugins/locator/executefilter.cpp
index cd717ab686..42c6e6fdc9 100644
--- a/src/plugins/locator/executefilter.cpp
+++ b/src/plugins/locator/executefilter.cpp
@@ -41,6 +41,8 @@ using namespace Locator::Internal;
ExecuteFilter::ExecuteFilter()
{
+ setId("Execute custom commands");
+ setDisplayName(tr("Execute Custom Commands"));
setShortcutString(QString(QLatin1Char('!')));
setIncludedByDefault(false);
diff --git a/src/plugins/locator/executefilter.h b/src/plugins/locator/executefilter.h
index 13d86d5cf2..9fee14a06d 100644
--- a/src/plugins/locator/executefilter.h
+++ b/src/plugins/locator/executefilter.h
@@ -53,9 +53,6 @@ class ExecuteFilter : public Locator::ILocatorFilter
public:
ExecuteFilter();
- QString displayName() const { return tr("Execute Custom Commands"); }
- QString id() const { return QLatin1String("Execute custom commands"); }
- Locator::ILocatorFilter::Priority priority() const { return Locator::ILocatorFilter::Medium; }
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future,
const QString &entry);
void accept(Locator::FilterEntry selection) const;
diff --git a/src/plugins/locator/filesystemfilter.cpp b/src/plugins/locator/filesystemfilter.cpp
index 4a6381e730..f0da71dd89 100644
--- a/src/plugins/locator/filesystemfilter.cpp
+++ b/src/plugins/locator/filesystemfilter.cpp
@@ -41,6 +41,8 @@ using namespace Locator::Internal;
FileSystemFilter::FileSystemFilter(EditorManager *editorManager, LocatorWidget *locatorWidget)
: m_editorManager(editorManager), m_locatorWidget(locatorWidget), m_includeHidden(true)
{
+ setId("Files in file system");
+ setDisplayName(tr("Files in File System"));
setShortcutString(QString(QLatin1Char('f')));
setIncludedByDefault(false);
}
diff --git a/src/plugins/locator/filesystemfilter.h b/src/plugins/locator/filesystemfilter.h
index 40db89aaa9..74ce98ada6 100644
--- a/src/plugins/locator/filesystemfilter.h
+++ b/src/plugins/locator/filesystemfilter.h
@@ -38,9 +38,7 @@
#include <QByteArray>
#include <QFutureInterface>
-namespace Core {
- class EditorManager;
-}
+namespace Core { class EditorManager; }
namespace Locator {
namespace Internal {
@@ -53,9 +51,6 @@ class FileSystemFilter : public Locator::ILocatorFilter
public:
FileSystemFilter(Core::EditorManager *editorManager, LocatorWidget *locatorWidget);
- QString displayName() const { return tr("Files in File System"); }
- QString id() const { return QLatin1String("Files in file system"); }
- Locator::ILocatorFilter::Priority priority() const { return Locator::ILocatorFilter::Medium; }
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
QByteArray saveState() const;
diff --git a/src/plugins/locator/ilocatorfilter.cpp b/src/plugins/locator/ilocatorfilter.cpp
index 445a3a6b67..2a664ac927 100644
--- a/src/plugins/locator/ilocatorfilter.cpp
+++ b/src/plugins/locator/ilocatorfilter.cpp
@@ -40,9 +40,11 @@ using namespace Locator;
ILocatorFilter::ILocatorFilter(QObject *parent):
QObject(parent),
+ m_priority(Medium),
m_includedByDefault(false),
m_hidden(false),
- m_enabled(true)
+ m_enabled(true),
+ m_isConfigurable(true)
{
}
@@ -114,9 +116,25 @@ bool ILocatorFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
return false;
}
+QString ILocatorFilter::trimWildcards(const QString &str)
+{
+ if (str.isEmpty())
+ return str;
+ int first = 0, last = str.size()-1;
+ const QChar asterisk = QLatin1Char('*');
+ const QChar question = QLatin1Char('?');
+ while (first < str.size() && (str.at(first) == asterisk || str.at(first) == question))
+ ++first;
+ while (last >= 0 && (str.at(last) == asterisk || str.at(last) == question))
+ --last;
+ if (first > last)
+ return QString();
+ return str.mid(first, last-first+1);
+}
+
bool ILocatorFilter::isConfigurable() const
{
- return true;
+ return m_isConfigurable;
}
bool ILocatorFilter::isIncludedByDefault() const
@@ -144,7 +162,42 @@ bool ILocatorFilter::isEnabled() const
return m_enabled;
}
+Core::Id ILocatorFilter::id() const
+{
+ return m_id;
+}
+
+QString ILocatorFilter::displayName() const
+{
+ return m_displayName;
+}
+
+ILocatorFilter::Priority ILocatorFilter::priority() const
+{
+ return m_priority;
+}
+
void ILocatorFilter::setEnabled(bool enabled)
{
m_enabled = enabled;
}
+
+void ILocatorFilter::setId(Core::Id id)
+{
+ m_id = id;
+}
+
+void ILocatorFilter::setPriority(Priority priority)
+{
+ m_priority = priority;
+}
+
+void ILocatorFilter::setDisplayName(const QString &displayString)
+{
+ m_displayName = displayString;
+}
+
+void ILocatorFilter::setConfigurable(bool configurable)
+{
+ m_isConfigurable = configurable;
+}
diff --git a/src/plugins/locator/ilocatorfilter.h b/src/plugins/locator/ilocatorfilter.h
index 2c2336ca0f..a588ed2495 100644
--- a/src/plugins/locator/ilocatorfilter.h
+++ b/src/plugins/locator/ilocatorfilter.h
@@ -32,6 +32,8 @@
#include "locator_global.h"
+#include <coreplugin/id.h>
+
#include <QVariant>
#include <QFutureInterface>
#include <QIcon>
@@ -88,14 +90,14 @@ public:
ILocatorFilter(QObject *parent = 0);
virtual ~ILocatorFilter() {}
- /* Visible name. */
- virtual QString displayName() const = 0;
+ /* Internal Id. */
+ Core::Id id() const;
- /* Internal name. */
- virtual QString id() const = 0;
+ /* Visible name. */
+ QString displayName() const;
/* Selection list order in case of multiple active filters (high goes on top). */
- virtual Priority priority() const = 0;
+ Priority priority() const;
/* String to type to use this filter exclusively. */
QString shortcutString() const;
@@ -124,7 +126,7 @@ public:
/* If there is a configure dialog available for this filter. The default
* implementation returns true. */
- virtual bool isConfigurable() const;
+ bool isConfigurable() const;
/* Is this filter used also when the shortcutString is not used? */
bool isIncludedByDefault() const;
@@ -135,20 +137,7 @@ public:
/* Returns whether the filter should be enabled and used in menus. */
bool isEnabled() const;
- static QString trimWildcards(const QString &str) {
- if (str.isEmpty())
- return str;
- int first = 0, last = str.size()-1;
- const QChar asterisk = QLatin1Char('*');
- const QChar question = QLatin1Char('?');
- while (first < str.size() && (str.at(first) == asterisk || str.at(first) == question))
- ++first;
- while (last >= 0 && (str.at(last) == asterisk || str.at(last) == question))
- --last;
- if (first > last)
- return QString();
- return str.mid(first, last-first+1);
- }
+ static QString trimWildcards(const QString &str);
public slots:
/* Enable or disable the filter. */
@@ -158,12 +147,20 @@ protected:
void setShortcutString(const QString &shortcut);
void setIncludedByDefault(bool includedByDefault);
void setHidden(bool hidden);
+ void setId(Core::Id id);
+ void setPriority(Priority priority);
+ void setDisplayName(const QString &displayString);
+ void setConfigurable(bool configurable);
private:
+ Core::Id m_id;
QString m_shortcut;
+ Priority m_priority;
+ QString m_displayName;
bool m_includedByDefault;
bool m_hidden;
bool m_enabled;
+ bool m_isConfigurable;
};
} // namespace Locator
diff --git a/src/plugins/locator/locatorfiltersfilter.cpp b/src/plugins/locator/locatorfiltersfilter.cpp
index 3730465742..364ef5376e 100644
--- a/src/plugins/locator/locatorfiltersfilter.cpp
+++ b/src/plugins/locator/locatorfiltersfilter.cpp
@@ -44,23 +44,12 @@ LocatorFiltersFilter::LocatorFiltersFilter(LocatorPlugin *plugin,
m_locatorWidget(locatorWidget),
m_icon(QIcon(QLatin1String(Core::Constants::ICON_NEXT)))
{
+ setId("FiltersFilter");
+ setDisplayName(tr("Available filters"));
setIncludedByDefault(true);
setHidden(true);
-}
-
-QString LocatorFiltersFilter::displayName() const
-{
- return tr("Available filters");
-}
-
-QString LocatorFiltersFilter::id() const
-{
- return QLatin1String("FiltersFilter");
-}
-
-ILocatorFilter::Priority LocatorFiltersFilter::priority() const
-{
- return High;
+ setPriority(High);
+ setConfigurable(false);
}
QList<FilterEntry> LocatorFiltersFilter::matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry)
@@ -104,8 +93,3 @@ void LocatorFiltersFilter::refresh(QFutureInterface<void> &future)
Q_UNUSED(future)
// Nothing to refresh
}
-
-bool LocatorFiltersFilter::isConfigurable() const
-{
- return false;
-}
diff --git a/src/plugins/locator/locatorfiltersfilter.h b/src/plugins/locator/locatorfiltersfilter.h
index df70445258..b456774ce6 100644
--- a/src/plugins/locator/locatorfiltersfilter.h
+++ b/src/plugins/locator/locatorfiltersfilter.h
@@ -53,13 +53,9 @@ public:
LocatorWidget *locatorWidget);
// ILocatorFilter
- QString displayName() const;
- QString id() const;
- Priority priority() const;
QList<FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
- bool isConfigurable() const;
private:
LocatorPlugin *m_plugin;
diff --git a/src/plugins/locator/locatorplugin.cpp b/src/plugins/locator/locatorplugin.cpp
index 5366f3ad5f..871d6ff02f 100644
--- a/src/plugins/locator/locatorplugin.cpp
+++ b/src/plugins/locator/locatorplugin.cpp
@@ -74,9 +74,7 @@ namespace {
return true;
if (first->priority() > second->priority())
return false;
- if (first->id().compare(second->id(), Qt::CaseInsensitive) < 0)
- return true;
- return false;
+ return first->id().alphabeticallyBefore(second->id());
}
}
@@ -200,7 +198,7 @@ void LocatorPlugin::saveSettings()
s->setValue(QLatin1String("RefreshInterval"), refreshInterval());
foreach (ILocatorFilter *filter, m_filters) {
if (!m_customFilters.contains(filter))
- s->setValue(filter->id(), filter->saveState());
+ s->setValue(filter->id().toString(), filter->saveState());
}
s->beginGroup(QLatin1String("CustomFilters"));
int i = 0;
diff --git a/src/plugins/locator/locatorplugin.h b/src/plugins/locator/locatorplugin.h
index 4d066080d4..3465311ed0 100644
--- a/src/plugins/locator/locatorplugin.h
+++ b/src/plugins/locator/locatorplugin.h
@@ -108,8 +108,8 @@ void LocatorPlugin::loadSettingsHelper(S *settings)
m_refreshTimer.setInterval(settings->value(QLatin1String("RefreshInterval"), 60).toInt() * 60000);
foreach (ILocatorFilter *filter, m_filters) {
- if (settings->contains(filter->id())) {
- const QByteArray state = settings->value(filter->id()).toByteArray();
+ if (settings->contains(filter->id().toString())) {
+ const QByteArray state = settings->value(filter->id().toString()).toByteArray();
if (!state.isEmpty())
filter->restoreState(state);
}
diff --git a/src/plugins/locator/locatorwidget.cpp b/src/plugins/locator/locatorwidget.cpp
index 27c7d92159..ee44f43b30 100644
--- a/src/plugins/locator/locatorwidget.cpp
+++ b/src/plugins/locator/locatorwidget.cpp
@@ -317,37 +317,36 @@ void LocatorWidget::updateFilterList()
m_filterMenu->clear();
// update actions and menu
- QMap<QString, QAction *> actionCopy = m_filterActionMap;
+ QMap<Id, QAction *> actionCopy = m_filterActionMap;
m_filterActionMap.clear();
// register new actions, update existent
foreach (ILocatorFilter *filter, m_locatorPlugin->filters()) {
if (filter->shortcutString().isEmpty() || filter->isHidden())
continue;
- Core::Id locatorId = Core::Id::fromString(QLatin1String("Locator.") + filter->id());
+ Id filterId = filter->id();
+ Id locatorId = filterId.withPrefix("Locator.");
QAction *action = 0;
- Core::Command *cmd = 0;
- if (!actionCopy.contains(filter->id())) {
+ Command *cmd = 0;
+ if (!actionCopy.contains(filterId)) {
// register new action
action = new QAction(filter->displayName(), this);
- cmd = Core::ActionManager::registerAction(action, locatorId,
- Core::Context(Core::Constants::C_GLOBAL));
- cmd->setAttribute(Core::Command::CA_UpdateText);
+ cmd = ActionManager::registerAction(action, locatorId,
+ Context(Core::Constants::C_GLOBAL));
+ cmd->setAttribute(Command::CA_UpdateText);
connect(action, SIGNAL(triggered()), this, SLOT(filterSelected()));
action->setData(qVariantFromValue(filter));
} else {
- action = actionCopy.take(filter->id());
- action->setText(filter->displayName());
- cmd = Core::ActionManager::command(locatorId);
+ action = actionCopy.take(filterId);
+ action->setText(filterId.toString());
+ cmd = ActionManager::command(locatorId);
}
- m_filterActionMap.insert(filter->id(), action);
+ m_filterActionMap.insert(filterId, action);
m_filterMenu->addAction(cmd->action());
}
// unregister actions that are deleted now
- foreach (const QString &id, actionCopy.keys()) {
- Core::ActionManager::unregisterAction(actionCopy.value(id),
- Core::Id::fromString(QLatin1String("Locator.") + id));
- }
+ foreach (const Id id, actionCopy.keys())
+ ActionManager::unregisterAction(actionCopy.value(id), id.withPrefix("Locator."));
qDeleteAll(actionCopy);
m_filterMenu->addSeparator();
diff --git a/src/plugins/locator/locatorwidget.h b/src/plugins/locator/locatorwidget.h
index 228e7700de..6a6fdf2813 100644
--- a/src/plugins/locator/locatorwidget.h
+++ b/src/plugins/locator/locatorwidget.h
@@ -95,7 +95,7 @@ private:
Utils::FilterLineEdit *m_fileLineEdit;
QTimer *m_showPopupTimer;
QFutureWatcher<FilterEntry> *m_entriesWatcher;
- QMap<QString, QAction *> m_filterActionMap;
+ QMap<Core::Id, QAction *> m_filterActionMap;
bool m_updateRequested;
bool m_acceptRequested;
bool m_possibleToolTipRequest;
diff --git a/src/plugins/locator/opendocumentsfilter.cpp b/src/plugins/locator/opendocumentsfilter.cpp
index b69259f6b2..9f454593ea 100644
--- a/src/plugins/locator/opendocumentsfilter.cpp
+++ b/src/plugins/locator/opendocumentsfilter.cpp
@@ -44,12 +44,15 @@ using namespace Utils;
OpenDocumentsFilter::OpenDocumentsFilter(EditorManager *editorManager) :
m_editorManager(editorManager)
{
+ setId("Open documents");
+ setDisplayName(tr("Open Documents"));
+ setShortcutString(QString(QLatin1Char('o')));
+ setIncludedByDefault(true);
+
connect(m_editorManager, SIGNAL(editorOpened(Core::IEditor*)),
this, SLOT(refreshInternally()));
connect(m_editorManager, SIGNAL(editorsClosed(QList<Core::IEditor*>)),
this, SLOT(refreshInternally()));
- setShortcutString(QString(QLatin1Char('o')));
- setIncludedByDefault(true);
}
QList<FilterEntry> OpenDocumentsFilter::matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry_)
diff --git a/src/plugins/locator/opendocumentsfilter.h b/src/plugins/locator/opendocumentsfilter.h
index f04c64d10f..152a534697 100644
--- a/src/plugins/locator/opendocumentsfilter.h
+++ b/src/plugins/locator/opendocumentsfilter.h
@@ -52,9 +52,6 @@ class OpenDocumentsFilter : public Locator::ILocatorFilter
public:
explicit OpenDocumentsFilter(Core::EditorManager *editorManager);
- QString displayName() const { return tr("Open Documents"); }
- QString id() const { return QLatin1String("Open documents"); }
- Locator::ILocatorFilter::Priority priority() const { return Locator::ILocatorFilter::Medium; }
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/macros/macrolocatorfilter.cpp b/src/plugins/macros/macrolocatorfilter.cpp
index e5755f34a7..2a24f08716 100644
--- a/src/plugins/macros/macrolocatorfilter.cpp
+++ b/src/plugins/macros/macrolocatorfilter.cpp
@@ -43,6 +43,8 @@ using namespace Macros::Internal;
MacroLocatorFilter::MacroLocatorFilter():
m_icon(QPixmap(QLatin1String(":/macros/images/macro.png")))
{
+ setId("Macros");
+ setDisplayName(tr("Macros"));
setShortcutString(QLatin1String("rm"));
}
diff --git a/src/plugins/macros/macrolocatorfilter.h b/src/plugins/macros/macrolocatorfilter.h
index 2a9804625a..aeb1094b69 100644
--- a/src/plugins/macros/macrolocatorfilter.h
+++ b/src/plugins/macros/macrolocatorfilter.h
@@ -48,10 +48,6 @@ public:
MacroLocatorFilter();
~MacroLocatorFilter();
- QString displayName() const { return tr("Macros"); }
- QString id() const { return QLatin1String("Macros"); }
- Priority priority() const { return Medium; }
-
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/projectexplorer/allprojectsfilter.cpp b/src/plugins/projectexplorer/allprojectsfilter.cpp
index e30e05d6f8..01c2ff02ba 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.cpp
+++ b/src/plugins/projectexplorer/allprojectsfilter.cpp
@@ -42,10 +42,14 @@ using namespace ProjectExplorer::Internal;
AllProjectsFilter::AllProjectsFilter(ProjectExplorerPlugin *pe)
: m_projectExplorer(pe), m_filesUpToDate(false)
{
- connect(m_projectExplorer, SIGNAL(fileListChanged()),
- this, SLOT(markFilesAsOutOfDate()));
+ setId("Files in any project");
+ setDisplayName(tr("Files in Any Project"));
setShortcutString(QString(QLatin1Char('a')));
+ setPriority(Low);
setIncludedByDefault(true);
+
+ connect(m_projectExplorer, SIGNAL(fileListChanged()),
+ this, SLOT(markFilesAsOutOfDate()));
}
void AllProjectsFilter::markFilesAsOutOfDate()
diff --git a/src/plugins/projectexplorer/allprojectsfilter.h b/src/plugins/projectexplorer/allprojectsfilter.h
index d17e28b9db..05b0753312 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.h
+++ b/src/plugins/projectexplorer/allprojectsfilter.h
@@ -47,9 +47,6 @@ class AllProjectsFilter : public Locator::BaseFileFilter
public:
explicit AllProjectsFilter(ProjectExplorerPlugin *pe);
- QString displayName() const { return tr("Files in Any Project"); }
- QString id() const { return QLatin1String("Files in any project"); }
- Locator::ILocatorFilter::Priority priority() const { return Locator::ILocatorFilter::Low; }
void refresh(QFutureInterface<void> &future);
protected:
diff --git a/src/plugins/projectexplorer/currentprojectfilter.cpp b/src/plugins/projectexplorer/currentprojectfilter.cpp
index ab74f34814..d817a716cb 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.cpp
+++ b/src/plugins/projectexplorer/currentprojectfilter.cpp
@@ -41,12 +41,14 @@ using namespace ProjectExplorer::Internal;
CurrentProjectFilter::CurrentProjectFilter(ProjectExplorerPlugin *pe)
: BaseFileFilter(), m_projectExplorer(pe), m_project(0), m_filesUpToDate(false)
{
- m_projectExplorer = pe;
+ setId("Files in current project");
+ setDisplayName(tr("Files in Current Project"));
+ setPriority(Low);
+ setShortcutString(QString(QLatin1Char('p')));
+ setIncludedByDefault(false);
connect(m_projectExplorer, SIGNAL(currentProjectChanged(ProjectExplorer::Project*)),
this, SLOT(currentProjectChanged(ProjectExplorer::Project*)));
- setShortcutString(QString(QLatin1Char('p')));
- setIncludedByDefault(false);
}
void CurrentProjectFilter::markFilesAsOutOfDate()
diff --git a/src/plugins/projectexplorer/currentprojectfilter.h b/src/plugins/projectexplorer/currentprojectfilter.h
index a358e16bcb..c0dc262e6e 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.h
+++ b/src/plugins/projectexplorer/currentprojectfilter.h
@@ -47,9 +47,6 @@ class CurrentProjectFilter : public Locator::BaseFileFilter
public:
CurrentProjectFilter(ProjectExplorerPlugin *pe);
- QString displayName() const { return tr("Files in Current Project"); }
- QString id() const { return QLatin1String("Files in current project"); }
- Locator::ILocatorFilter::Priority priority() const { return Locator::ILocatorFilter::Low; }
void refresh(QFutureInterface<void> &future);
protected:
@@ -60,7 +57,6 @@ private slots:
void markFilesAsOutOfDate();
private:
-
ProjectExplorerPlugin *m_projectExplorer;
Project *m_project;
bool m_filesUpToDate;
diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.cpp b/src/plugins/qmljstools/qmljsfunctionfilter.cpp
index 97dc5478d8..c7689cd935 100644
--- a/src/plugins/qmljstools/qmljsfunctionfilter.cpp
+++ b/src/plugins/qmljstools/qmljsfunctionfilter.cpp
@@ -43,6 +43,8 @@ FunctionFilter::FunctionFilter(LocatorData *data, QObject *parent)
: Locator::ILocatorFilter(parent)
, m_data(data)
{
+ setId("Functions");
+ setDisplayName(tr("QML Methods and Functions"));
setShortcutString(QString(QLatin1Char('m')));
setIncludedByDefault(false);
}
diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.h b/src/plugins/qmljstools/qmljsfunctionfilter.h
index 55c9bb3a2c..2f89cd6496 100644
--- a/src/plugins/qmljstools/qmljsfunctionfilter.h
+++ b/src/plugins/qmljstools/qmljsfunctionfilter.h
@@ -40,13 +40,11 @@ class LocatorData;
class FunctionFilter : public Locator::ILocatorFilter
{
Q_OBJECT
+
public:
explicit FunctionFilter(LocatorData *data, QObject *parent = 0);
~FunctionFilter();
- QString displayName() const { return tr("QML 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);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &future);
diff --git a/src/plugins/texteditor/linenumberfilter.cpp b/src/plugins/texteditor/linenumberfilter.cpp
index 79e06e5bdd..3b356e7633 100644
--- a/src/plugins/texteditor/linenumberfilter.cpp
+++ b/src/plugins/texteditor/linenumberfilter.cpp
@@ -44,6 +44,9 @@ using namespace TextEditor::Internal;
LineNumberFilter::LineNumberFilter(QObject *parent)
: ILocatorFilter(parent)
{
+ setId("Line in current document");
+ setDisplayName(tr("Line in Current Document"));
+ setPriority(High);
setShortcutString(QString(QLatin1Char('l')));
setIncludedByDefault(true);
}
diff --git a/src/plugins/texteditor/linenumberfilter.h b/src/plugins/texteditor/linenumberfilter.h
index 5d4a9a6a22..b137876548 100644
--- a/src/plugins/texteditor/linenumberfilter.h
+++ b/src/plugins/texteditor/linenumberfilter.h
@@ -49,9 +49,6 @@ class LineNumberFilter : public Locator::ILocatorFilter
public:
explicit LineNumberFilter(QObject *parent = 0);
- QString displayName() const { return tr("Line in Current Document"); }
- QString id() const { return QLatin1String("Line in current document"); }
- Locator::ILocatorFilter::Priority priority() const { return Locator::ILocatorFilter::High; }
QList<Locator::FilterEntry> matchesFor(QFutureInterface<Locator::FilterEntry> &future, const QString &entry);
void accept(Locator::FilterEntry selection) const;
void refresh(QFutureInterface<void> &) {}