summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp7
-rw-r--r--src/plugins/locator/commandlocator.cpp5
-rw-r--r--src/plugins/locator/commandlocator.h3
-rw-r--r--src/plugins/locator/ilocatorfilter.cpp13
-rw-r--r--src/plugins/locator/ilocatorfilter.h8
-rw-r--r--src/plugins/locator/locatorfiltersfilter.cpp2
6 files changed, 26 insertions, 12 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
index a6260de445..bf4c47bd16 100644
--- a/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp
@@ -54,6 +54,9 @@ CMakeLocatorFilter::CMakeLocatorFilter()
this, SLOT(slotProjectListUpdated()));
connect(sm, SIGNAL(projectRemoved(ProjectExplorer::Project*)),
this, SLOT(slotProjectListUpdated()));
+
+ // Initialize the filter
+ slotProjectListUpdated();
}
CMakeLocatorFilter::~CMakeLocatorFilter()
@@ -140,6 +143,6 @@ void CMakeLocatorFilter::slotProjectListUpdated()
break;
}
- // Hide the locator if there's no CMake project
- setHidden(!cmakeProject);
+ // Enable the filter if there's at least one CMake project
+ setEnabled(cmakeProject);
}
diff --git a/src/plugins/locator/commandlocator.cpp b/src/plugins/locator/commandlocator.cpp
index 90628c0a9d..ae40d2107c 100644
--- a/src/plugins/locator/commandlocator.cpp
+++ b/src/plugins/locator/commandlocator.cpp
@@ -121,11 +121,6 @@ void CommandLocator::accept(Locator::FilterEntry entry) const
action->trigger();
}
-void CommandLocator::setEnabled(bool e)
-{
- setHidden(!e);
-}
-
void CommandLocator::refresh(QFutureInterface<void> &)
{
}
diff --git a/src/plugins/locator/commandlocator.h b/src/plugins/locator/commandlocator.h
index ffb10a7e69..dae5cfd64c 100644
--- a/src/plugins/locator/commandlocator.h
+++ b/src/plugins/locator/commandlocator.h
@@ -71,9 +71,6 @@ public:
virtual void accept(FilterEntry selection) const;
virtual void refresh(QFutureInterface<void> &future);
-public slots:
- void setEnabled(bool e);
-
private:
CommandLocatorPrivate *d;
};
diff --git a/src/plugins/locator/ilocatorfilter.cpp b/src/plugins/locator/ilocatorfilter.cpp
index 27d9d7fa2f..0d62313bff 100644
--- a/src/plugins/locator/ilocatorfilter.cpp
+++ b/src/plugins/locator/ilocatorfilter.cpp
@@ -44,7 +44,8 @@ using namespace Locator;
ILocatorFilter::ILocatorFilter(QObject *parent):
QObject(parent),
m_includedByDefault(false),
- m_hidden(false)
+ m_hidden(false),
+ m_enabled(true)
{
}
@@ -140,3 +141,13 @@ void ILocatorFilter::setHidden(bool hidden)
{
m_hidden = hidden;
}
+
+bool ILocatorFilter::isEnabled() const
+{
+ return m_enabled;
+}
+
+void ILocatorFilter::setEnabled(bool enabled)
+{
+ m_enabled = enabled;
+}
diff --git a/src/plugins/locator/ilocatorfilter.h b/src/plugins/locator/ilocatorfilter.h
index 5f391f56d7..a6c3a13a3d 100644
--- a/src/plugins/locator/ilocatorfilter.h
+++ b/src/plugins/locator/ilocatorfilter.h
@@ -133,6 +133,9 @@ public:
/* Returns whether the filter should be hidden from configuration and menus. */
bool isHidden() const;
+ /* 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;
@@ -146,6 +149,10 @@ public:
return str.mid(first, last-first+1);
}
+public slots:
+ /* Enable or disable the filter. */
+ void setEnabled(bool enabled);
+
protected:
void setShortcutString(const QString &shortcut);
void setIncludedByDefault(bool includedByDefault);
@@ -155,6 +162,7 @@ private:
QString m_shortcut;
bool m_includedByDefault;
bool m_hidden;
+ bool m_enabled;
};
} // namespace Locator
diff --git a/src/plugins/locator/locatorfiltersfilter.cpp b/src/plugins/locator/locatorfiltersfilter.cpp
index ebe42a9c1c..d07dece5cf 100644
--- a/src/plugins/locator/locatorfiltersfilter.cpp
+++ b/src/plugins/locator/locatorfiltersfilter.cpp
@@ -81,7 +81,7 @@ QList<FilterEntry> LocatorFiltersFilter::matchesFor(QFutureInterface<Locator::Fi
foreach (ILocatorFilter *filter, uniqueFilters) {
if (future.isCanceled())
break;
- if (!filter->shortcutString().isEmpty() && !filter->isHidden()) {
+ if (!filter->shortcutString().isEmpty() && !filter->isHidden() && filter->isEnabled()) {
FilterEntry filterEntry(this,
filter->shortcutString(),
QVariant::fromValue(filter),