diff --git a/src/plugins/quickopen/directoryfilter.cpp b/src/plugins/quickopen/directoryfilter.cpp index afc22af054e31ef7954b55cd30c2d4c32211775d..30f7fc28faef19741f6182db6bee6c3b7c271f19 100644 --- a/src/plugins/quickopen/directoryfilter.cpp +++ b/src/plugins/quickopen/directoryfilter.cpp @@ -62,7 +62,7 @@ QByteArray DirectoryFilter::saveState() const out << m_directories; out << m_filters; out << shortcutString(); - out << defaultActiveState(); + out << isIncludedByDefault(); out << m_files; return value; } @@ -120,7 +120,7 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) m_ui.directoryList->addItems(m_directories); m_ui.fileTypeEdit->setText(m_filters.join(tr(","))); m_ui.shortcutEdit->setText(shortcutString()); - m_ui.defaultFlag->setChecked(!defaultActiveState()); + m_ui.defaultFlag->setChecked(!isIncludedByDefault()); updateOptionButtons(); if (dialog.exec() == QDialog::Accepted) { QMutexLocker locker(&m_lock); diff --git a/src/plugins/quickopen/filesystemfilter.cpp b/src/plugins/quickopen/filesystemfilter.cpp index 386523ebc43682ff849bd497590cc231ea82df4b..4631a8d9347ead3dac58b9a735b67cb0306f2f21 100644 --- a/src/plugins/quickopen/filesystemfilter.cpp +++ b/src/plugins/quickopen/filesystemfilter.cpp @@ -114,7 +114,7 @@ bool FileSystemFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) ui.setupUi(&dialog); ui.hiddenFilesFlag->setChecked(m_includeHidden); - ui.limitCheck->setChecked(!defaultActiveState()); + ui.limitCheck->setChecked(!isIncludedByDefault()); ui.shortcutEdit->setText(shortcutString()); if (dialog.exec() == QDialog::Accepted) { @@ -132,7 +132,7 @@ QByteArray FileSystemFilter::saveState() const QDataStream out(&value, QIODevice::WriteOnly); out << m_includeHidden; out << shortcutString(); - out << defaultActiveState(); + out << isIncludedByDefault(); return value; } diff --git a/src/plugins/quickopen/iquickopenfilter.cpp b/src/plugins/quickopen/iquickopenfilter.cpp index ad6441ca284442c89d16bc7278c7dc37d4e1d4c4..82922e3ba2a8fde6c772a3bc755c5eb03c20d13d 100644 --- a/src/plugins/quickopen/iquickopenfilter.cpp +++ b/src/plugins/quickopen/iquickopenfilter.cpp @@ -43,7 +43,9 @@ using namespace QuickOpen; IQuickOpenFilter::IQuickOpenFilter(QObject *parent): - QObject(parent) + QObject(parent), + m_includedByDefault(false), + m_hidden(false) { } @@ -62,7 +64,7 @@ QByteArray IQuickOpenFilter::saveState() const QByteArray value; QDataStream out(&value, QIODevice::WriteOnly); out << shortcutString(); - out << defaultActiveState(); + out << isIncludedByDefault(); return value; } @@ -91,7 +93,7 @@ bool IQuickOpenFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) QHBoxLayout *hlayout = new QHBoxLayout; QLineEdit *shortcutEdit = new QLineEdit(shortcutString()); QCheckBox *limitCheck = new QCheckBox(tr("Limit to prefix")); - limitCheck->setChecked(!defaultActiveState()); + limitCheck->setChecked(!isIncludedByDefault()); hlayout->addWidget(new QLabel(tr("Prefix:"))); hlayout->addWidget(shortcutEdit); @@ -120,12 +122,22 @@ bool IQuickOpenFilter::isConfigurable() const return true; } -bool IQuickOpenFilter::defaultActiveState() const +bool IQuickOpenFilter::isIncludedByDefault() const { - return m_default; + return m_includedByDefault; } void IQuickOpenFilter::setIncludedByDefault(bool includedByDefault) { - m_default = includedByDefault; + m_includedByDefault = includedByDefault; +} + +bool IQuickOpenFilter::isHidden() const +{ + return m_hidden; +} + +void IQuickOpenFilter::setHidden(bool hidden) +{ + m_hidden = hidden; } diff --git a/src/plugins/quickopen/iquickopenfilter.h b/src/plugins/quickopen/iquickopenfilter.h index 376b0d0fe911995854c454080200ff947e9c48b9..d5591ac940f82f272fb4f34e271b66c66d4279b8 100644 --- a/src/plugins/quickopen/iquickopenfilter.h +++ b/src/plugins/quickopen/iquickopenfilter.h @@ -87,26 +87,25 @@ public: IQuickOpenFilter(QObject *parent = 0); virtual ~IQuickOpenFilter() {} - /* visible name */ + /* Visible name. */ virtual QString trName() const = 0; - /* internal name */ + /* Internal name. */ virtual QString name() const = 0; - /* selection list order in case of multiple active filters (high goes on top) */ + /* Selection list order in case of multiple active filters (high goes on top). */ virtual Priority priority() const = 0; - /* string to type to use this filter exclusively */ - virtual QString shortcutString() const; - void setShortcutString(const QString &shortcut); + /* String to type to use this filter exclusively. */ + QString shortcutString() const; - /* list of matches for the given user entry */ + /* List of matches for the given user entry. */ virtual QList<FilterEntry> matchesFor(const QString &entry) = 0; - /* user has selected the given entry that belongs to this filter */ + /* User has selected the given entry that belongs to this filter. */ virtual void accept(FilterEntry selection) const = 0; - /* implement to update caches on user request, if that's a long operation */ + /* Implement to update caches on user request, if that's a long operation. */ virtual void refresh(QFutureInterface<void> &future) = 0; /* Saved state is used to restore the filter at start up. */ @@ -126,9 +125,11 @@ public: * implementation returns true. */ virtual bool isConfigurable() const; - /* is this filter used also when the shortcutString is not used? */ - virtual bool defaultActiveState() const; - void setIncludedByDefault(bool includedByDefault); + /* Is this filter used also when the shortcutString is not used? */ + bool isIncludedByDefault() const; + + /* Returns whether the filter should be hidden from configuration and menus. */ + bool isHidden() const; static QString trimWildcards(const QString &str) { if (str.isEmpty()) @@ -143,9 +144,15 @@ public: return str.mid(first, last-first+1); } +protected: + void setShortcutString(const QString &shortcut); + void setIncludedByDefault(bool includedByDefault); + void setHidden(bool hidden); + private: QString m_shortcut; - bool m_default; + bool m_includedByDefault; + bool m_hidden; }; } // namespace QuickOpen diff --git a/src/plugins/quickopen/quickopenfiltersfilter.cpp b/src/plugins/quickopen/quickopenfiltersfilter.cpp index e8a487c7d94b57b110be1a3f12061399b36ddaed..519c56daec7dbd78046ae5cbe7921325aad084dd 100644 --- a/src/plugins/quickopen/quickopenfiltersfilter.cpp +++ b/src/plugins/quickopen/quickopenfiltersfilter.cpp @@ -49,7 +49,7 @@ QuickOpenFiltersFilter::QuickOpenFiltersFilter(QuickOpenPlugin *plugin, m_icon(QIcon(Core::Constants::ICON_NEXT)) { setIncludedByDefault(true); - setShortcutString(QString()); + setHidden(true); } QString QuickOpenFiltersFilter::trName() const @@ -71,8 +71,8 @@ QList<FilterEntry> QuickOpenFiltersFilter::matchesFor(const QString &entry) { QList<FilterEntry> entries; if (entry.isEmpty()) { - foreach (IQuickOpenFilter* filter, m_plugin->filter()) { - if (!filter->shortcutString().isEmpty()) { + foreach (IQuickOpenFilter *filter, m_plugin->filter()) { + if (!filter->shortcutString().isEmpty() && !filter->isHidden()) { FilterEntry entry(this, filter->shortcutString(), QVariant::fromValue(filter), diff --git a/src/plugins/quickopen/quickopentoolwindow.cpp b/src/plugins/quickopen/quickopentoolwindow.cpp index 211947be8d056facedf447e9107cb81e02c66928..9701923515acf4db426b2d689bca0e97c846b2a3 100644 --- a/src/plugins/quickopen/quickopentoolwindow.cpp +++ b/src/plugins/quickopen/quickopentoolwindow.cpp @@ -314,7 +314,7 @@ void QuickOpenToolWindow::updateFilterList() { m_filterMenu->clear(); foreach (IQuickOpenFilter *filter, m_quickOpenPlugin->filter()) { - if (!filter->shortcutString().isEmpty()) { + if (!filter->shortcutString().isEmpty() && !filter->isHidden()) { QAction *action = m_filterMenu->addAction(filter->trName(), this, SLOT(filterSelected())); action->setData(qVariantFromValue(filter)); } @@ -396,7 +396,7 @@ QList<IQuickOpenFilter*> QuickOpenToolWindow::filtersFor(const QString &text, QS searchText = text; QList<IQuickOpenFilter*> activeFilters; foreach (IQuickOpenFilter *filter, filters) - if (filter->defaultActiveState()) + if (filter->isIncludedByDefault()) activeFilters << filter; return activeFilters; } diff --git a/src/plugins/quickopen/settingspage.cpp b/src/plugins/quickopen/settingspage.cpp index 76263c731badd7a09f6f6f383ec7f7045f857e43..4b1f81fc86721ad7b640c6946ed864a2edeffee5 100644 --- a/src/plugins/quickopen/settingspage.cpp +++ b/src/plugins/quickopen/settingspage.cpp @@ -121,8 +121,11 @@ void SettingsPage::updateFilterList() { m_ui.filterList->clear(); foreach (IQuickOpenFilter *filter, m_filters) { + if (filter->isHidden()) + continue; + QString title; - if (filter->defaultActiveState()) + if (filter->isIncludedByDefault()) title = filter->trName(); else title = tr("%1 (Prefix: %2)").arg(filter->trName()).arg(filter->shortcutString());