diff options
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakelocatorfilter.cpp | 7 | ||||
-rw-r--r-- | src/plugins/locator/commandlocator.cpp | 5 | ||||
-rw-r--r-- | src/plugins/locator/commandlocator.h | 3 | ||||
-rw-r--r-- | src/plugins/locator/ilocatorfilter.cpp | 13 | ||||
-rw-r--r-- | src/plugins/locator/ilocatorfilter.h | 8 | ||||
-rw-r--r-- | src/plugins/locator/locatorfiltersfilter.cpp | 2 |
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), |