Hide the "Available Filters" locator

Done based on new IQuickOpenFilter property, isHidden.
This commit is contained in:
Thorbjørn Lindeijer
2008-12-12 11:52:04 +01:00
parent 0145a3dea9
commit cded30f0b4
7 changed files with 51 additions and 29 deletions

View File

@@ -62,7 +62,7 @@ QByteArray DirectoryFilter::saveState() const
out << m_directories; out << m_directories;
out << m_filters; out << m_filters;
out << shortcutString(); out << shortcutString();
out << defaultActiveState(); out << isIncludedByDefault();
out << m_files; out << m_files;
return value; return value;
} }
@@ -120,7 +120,7 @@ bool DirectoryFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
m_ui.directoryList->addItems(m_directories); m_ui.directoryList->addItems(m_directories);
m_ui.fileTypeEdit->setText(m_filters.join(tr(","))); m_ui.fileTypeEdit->setText(m_filters.join(tr(",")));
m_ui.shortcutEdit->setText(shortcutString()); m_ui.shortcutEdit->setText(shortcutString());
m_ui.defaultFlag->setChecked(!defaultActiveState()); m_ui.defaultFlag->setChecked(!isIncludedByDefault());
updateOptionButtons(); updateOptionButtons();
if (dialog.exec() == QDialog::Accepted) { if (dialog.exec() == QDialog::Accepted) {
QMutexLocker locker(&m_lock); QMutexLocker locker(&m_lock);

View File

@@ -114,7 +114,7 @@ bool FileSystemFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
ui.setupUi(&dialog); ui.setupUi(&dialog);
ui.hiddenFilesFlag->setChecked(m_includeHidden); ui.hiddenFilesFlag->setChecked(m_includeHidden);
ui.limitCheck->setChecked(!defaultActiveState()); ui.limitCheck->setChecked(!isIncludedByDefault());
ui.shortcutEdit->setText(shortcutString()); ui.shortcutEdit->setText(shortcutString());
if (dialog.exec() == QDialog::Accepted) { if (dialog.exec() == QDialog::Accepted) {
@@ -132,7 +132,7 @@ QByteArray FileSystemFilter::saveState() const
QDataStream out(&value, QIODevice::WriteOnly); QDataStream out(&value, QIODevice::WriteOnly);
out << m_includeHidden; out << m_includeHidden;
out << shortcutString(); out << shortcutString();
out << defaultActiveState(); out << isIncludedByDefault();
return value; return value;
} }

View File

@@ -43,7 +43,9 @@
using namespace QuickOpen; using namespace QuickOpen;
IQuickOpenFilter::IQuickOpenFilter(QObject *parent): IQuickOpenFilter::IQuickOpenFilter(QObject *parent):
QObject(parent) QObject(parent),
m_includedByDefault(false),
m_hidden(false)
{ {
} }
@@ -62,7 +64,7 @@ QByteArray IQuickOpenFilter::saveState() const
QByteArray value; QByteArray value;
QDataStream out(&value, QIODevice::WriteOnly); QDataStream out(&value, QIODevice::WriteOnly);
out << shortcutString(); out << shortcutString();
out << defaultActiveState(); out << isIncludedByDefault();
return value; return value;
} }
@@ -91,7 +93,7 @@ bool IQuickOpenFilter::openConfigDialog(QWidget *parent, bool &needsRefresh)
QHBoxLayout *hlayout = new QHBoxLayout; QHBoxLayout *hlayout = new QHBoxLayout;
QLineEdit *shortcutEdit = new QLineEdit(shortcutString()); QLineEdit *shortcutEdit = new QLineEdit(shortcutString());
QCheckBox *limitCheck = new QCheckBox(tr("Limit to prefix")); QCheckBox *limitCheck = new QCheckBox(tr("Limit to prefix"));
limitCheck->setChecked(!defaultActiveState()); limitCheck->setChecked(!isIncludedByDefault());
hlayout->addWidget(new QLabel(tr("Prefix:"))); hlayout->addWidget(new QLabel(tr("Prefix:")));
hlayout->addWidget(shortcutEdit); hlayout->addWidget(shortcutEdit);
@@ -120,12 +122,22 @@ bool IQuickOpenFilter::isConfigurable() const
return true; return true;
} }
bool IQuickOpenFilter::defaultActiveState() const bool IQuickOpenFilter::isIncludedByDefault() const
{ {
return m_default; return m_includedByDefault;
} }
void IQuickOpenFilter::setIncludedByDefault(bool 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;
} }

View File

@@ -87,26 +87,25 @@ public:
IQuickOpenFilter(QObject *parent = 0); IQuickOpenFilter(QObject *parent = 0);
virtual ~IQuickOpenFilter() {} virtual ~IQuickOpenFilter() {}
/* visible name */ /* Visible name. */
virtual QString trName() const = 0; virtual QString trName() const = 0;
/* internal name */ /* Internal name. */
virtual QString name() const = 0; 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; virtual Priority priority() const = 0;
/* string to type to use this filter exclusively */ /* String to type to use this filter exclusively. */
virtual QString shortcutString() const; QString shortcutString() const;
void setShortcutString(const QString &shortcut);
/* list of matches for the given user entry */ /* List of matches for the given user entry. */
virtual QList<FilterEntry> matchesFor(const QString &entry) = 0; 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; 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; virtual void refresh(QFutureInterface<void> &future) = 0;
/* Saved state is used to restore the filter at start up. */ /* Saved state is used to restore the filter at start up. */
@@ -126,9 +125,11 @@ public:
* implementation returns true. */ * implementation returns true. */
virtual bool isConfigurable() const; virtual bool isConfigurable() const;
/* is this filter used also when the shortcutString is not used? */ /* Is this filter used also when the shortcutString is not used? */
virtual bool defaultActiveState() const; bool isIncludedByDefault() const;
void setIncludedByDefault(bool includedByDefault);
/* Returns whether the filter should be hidden from configuration and menus. */
bool isHidden() const;
static QString trimWildcards(const QString &str) { static QString trimWildcards(const QString &str) {
if (str.isEmpty()) if (str.isEmpty())
@@ -143,9 +144,15 @@ public:
return str.mid(first, last-first+1); return str.mid(first, last-first+1);
} }
protected:
void setShortcutString(const QString &shortcut);
void setIncludedByDefault(bool includedByDefault);
void setHidden(bool hidden);
private: private:
QString m_shortcut; QString m_shortcut;
bool m_default; bool m_includedByDefault;
bool m_hidden;
}; };
} // namespace QuickOpen } // namespace QuickOpen

View File

@@ -49,7 +49,7 @@ QuickOpenFiltersFilter::QuickOpenFiltersFilter(QuickOpenPlugin *plugin,
m_icon(QIcon(Core::Constants::ICON_NEXT)) m_icon(QIcon(Core::Constants::ICON_NEXT))
{ {
setIncludedByDefault(true); setIncludedByDefault(true);
setShortcutString(QString()); setHidden(true);
} }
QString QuickOpenFiltersFilter::trName() const QString QuickOpenFiltersFilter::trName() const
@@ -71,8 +71,8 @@ QList<FilterEntry> QuickOpenFiltersFilter::matchesFor(const QString &entry)
{ {
QList<FilterEntry> entries; QList<FilterEntry> entries;
if (entry.isEmpty()) { if (entry.isEmpty()) {
foreach (IQuickOpenFilter* filter, m_plugin->filter()) { foreach (IQuickOpenFilter *filter, m_plugin->filter()) {
if (!filter->shortcutString().isEmpty()) { if (!filter->shortcutString().isEmpty() && !filter->isHidden()) {
FilterEntry entry(this, FilterEntry entry(this,
filter->shortcutString(), filter->shortcutString(),
QVariant::fromValue(filter), QVariant::fromValue(filter),

View File

@@ -314,7 +314,7 @@ void QuickOpenToolWindow::updateFilterList()
{ {
m_filterMenu->clear(); m_filterMenu->clear();
foreach (IQuickOpenFilter *filter, m_quickOpenPlugin->filter()) { 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())); QAction *action = m_filterMenu->addAction(filter->trName(), this, SLOT(filterSelected()));
action->setData(qVariantFromValue(filter)); action->setData(qVariantFromValue(filter));
} }
@@ -396,7 +396,7 @@ QList<IQuickOpenFilter*> QuickOpenToolWindow::filtersFor(const QString &text, QS
searchText = text; searchText = text;
QList<IQuickOpenFilter*> activeFilters; QList<IQuickOpenFilter*> activeFilters;
foreach (IQuickOpenFilter *filter, filters) foreach (IQuickOpenFilter *filter, filters)
if (filter->defaultActiveState()) if (filter->isIncludedByDefault())
activeFilters << filter; activeFilters << filter;
return activeFilters; return activeFilters;
} }

View File

@@ -121,8 +121,11 @@ void SettingsPage::updateFilterList()
{ {
m_ui.filterList->clear(); m_ui.filterList->clear();
foreach (IQuickOpenFilter *filter, m_filters) { foreach (IQuickOpenFilter *filter, m_filters) {
if (filter->isHidden())
continue;
QString title; QString title;
if (filter->defaultActiveState()) if (filter->isIncludedByDefault())
title = filter->trName(); title = filter->trName();
else else
title = tr("%1 (Prefix: %2)").arg(filter->trName()).arg(filter->shortcutString()); title = tr("%1 (Prefix: %2)").arg(filter->trName()).arg(filter->shortcutString());