diff --git a/src/plugins/coreplugin/inavigationwidgetfactory.cpp b/src/plugins/coreplugin/inavigationwidgetfactory.cpp
index 7a043e4c9cc2e4b07fa9ced4e5492b4c85699135..2de8e72fbe6238096c150d2d4aecf56896c461fd 100644
--- a/src/plugins/coreplugin/inavigationwidgetfactory.cpp
+++ b/src/plugins/coreplugin/inavigationwidgetfactory.cpp
@@ -48,3 +48,13 @@ QKeySequence INavigationWidgetFactory::activationSequence()
     return QKeySequence();
 }
 
+
+void INavigationWidgetFactory::saveSettings(int position, QWidget *widget)
+{
+
+}
+
+void INavigationWidgetFactory::restoreSettings(int position, QWidget *widget)
+{
+
+}
diff --git a/src/plugins/coreplugin/inavigationwidgetfactory.h b/src/plugins/coreplugin/inavigationwidgetfactory.h
index d4b3a84d3ad64c11189bdce4374a84dd70b446fd..e858d2024c101f6178e05cb1120520657b1b3f79 100644
--- a/src/plugins/coreplugin/inavigationwidgetfactory.h
+++ b/src/plugins/coreplugin/inavigationwidgetfactory.h
@@ -65,6 +65,12 @@ public:
     // and the docktoolbar widgets
     // Similar to how IView
     virtual NavigationView createWidget() = 0;
+
+    // Read and store settings for the widget, created by this factory
+    // and beeing at position position. (The position is important since
+    // a certain type of widget could exist multiple times.)
+    virtual void saveSettings(int position, QWidget *widget);
+    virtual void restoreSettings(int position, QWidget *widget);
 };
 
 } // namespace Core
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index 228c58a94ac0a5366743a7eefaebcbfc7388c57a..651e1d73830b3c2f7e9b286b9f64f5f4893d81d3 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -997,7 +997,7 @@ void MainWindow::readSettings()
 
     m_settings->endGroup();
     m_editorManager->readSettings(m_settings);
-    m_navigationWidget->readSettings(m_settings);
+    m_navigationWidget->restoreSettings(m_settings);
     m_rightPaneWidget->readSettings(m_settings);
 }
 
diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp
index 8e84df39321ce520b5cb635168e706b97279242b..c5189e60efa64e7e0f2d567321b598255e2fd7f3 100644
--- a/src/plugins/coreplugin/navigationwidget.cpp
+++ b/src/plugins/coreplugin/navigationwidget.cpp
@@ -220,6 +220,8 @@ void NavigationWidget::close()
     }
 }
 
+
+
 void NavigationWidget::saveSettings(QSettings *settings)
 {
     QStringList views;
@@ -230,9 +232,12 @@ void NavigationWidget::saveSettings(QSettings *settings)
     settings->setValue("Navigation/Visible", isShown());
     settings->setValue("Navigation/VerticalPosition", saveState());
     settings->setValue("Navigation/Width", m_width);
+
+    for (int i=0; i<m_subWidgets.count(); ++i)
+        m_subWidgets.at(i)->saveSettings(i);
 }
 
-void NavigationWidget::readSettings(QSettings *settings)
+void NavigationWidget::restoreSettings(QSettings *settings)
 {
     if (settings->contains("Navigation/Views")) {
         QStringList views = settings->value("Navigation/Views").toStringList();
@@ -266,6 +271,9 @@ void NavigationWidget::readSettings(QSettings *settings)
     if (NavigationWidgetPlaceHolder::m_current) {
         NavigationWidgetPlaceHolder::m_current->applyStoredSize(m_width);
     }
+
+    for (int i=0; i<m_subWidgets.count(); ++i)
+        m_subWidgets.at(i)->restoreSettings(i);
 }
 
 void NavigationWidget::setShown(bool b)
@@ -469,6 +477,16 @@ INavigationWidgetFactory *NavigationSubWidget::factory()
     return m_navigationComboBox->itemData(index).value<INavigationWidgetFactory *>();
 }
 
+void NavigationSubWidget::saveSettings(int position)
+{
+    factory()->saveSettings(position, m_navigationWidget);
+}
+
+void NavigationSubWidget::restoreSettings(int position)
+{
+    factory()->restoreSettings(position, m_navigationWidget);
+}
+
 Core::ICommand *NavigationSubWidget::command(const QString &title) const
 {
     const QHash<QString, Core::ICommand*> commandMap = m_parentWidget->commandMap();
diff --git a/src/plugins/coreplugin/navigationwidget.h b/src/plugins/coreplugin/navigationwidget.h
index 96a64f4ac3acffa332de441f64b5b95d69cc1677..7ab27e28ddd7e3bc2230db88a171a0e2dc48d8ee 100644
--- a/src/plugins/coreplugin/navigationwidget.h
+++ b/src/plugins/coreplugin/navigationwidget.h
@@ -84,7 +84,7 @@ public:
     ~NavigationWidget();
 
     void saveSettings(QSettings *settings);
-    void readSettings(QSettings *settings);
+    void restoreSettings(QSettings *settings);
 
     bool isShown() const;
     void setShown(bool b);
@@ -133,6 +133,9 @@ public:
     void setFactory(const QString &name);
     void setFocusWidget();
 
+    void saveSettings(int position);
+    void restoreSettings(int position);
+
     Core::ICommand *command(const QString &title) const;
 
 signals:
diff --git a/src/plugins/cpptools/cppcodecompletion.cpp b/src/plugins/cpptools/cppcodecompletion.cpp
index a0fbe82a542b7cead52b72a95a20452d18f71602..addf5301f79b66f5421217ade1d2a4d0d6b15c57 100644
--- a/src/plugins/cpptools/cppcodecompletion.cpp
+++ b/src/plugins/cpptools/cppcodecompletion.cpp
@@ -966,8 +966,10 @@ void CppCodeCompletion::complete(const TextEditor::CompletionItem &item)
             if (Function *function = symbol->type()->asFunction()) {
                 // If the member is a function, automatically place the opening parenthesis,
                 // except when it might take template parameters.
-                if (!function->returnType().isValid()
-                    && (function->identity() && !function->identity()->isDestructorNameId())) {
+                const bool hasReturnType = function->returnType().isValid()  ||
+                                           function->returnType().isSigned() ||
+                                           function->returnType().isUnsigned();
+                if (! hasReturnType && (function->identity() && !function->identity()->isDestructorNameId())) {
                     // Don't insert any magic, since the user might have just wanted to select the class
 
                 } else if (function->templateParameterCount() != 0) {
diff --git a/src/plugins/projectexplorer/allprojectsfilter.h b/src/plugins/projectexplorer/allprojectsfilter.h
index 3315e7b2de8edf7ed6074f4ab637c822933d8564..448483c7a77c05ea528ec1938b39e416fc44b83f 100644
--- a/src/plugins/projectexplorer/allprojectsfilter.h
+++ b/src/plugins/projectexplorer/allprojectsfilter.h
@@ -55,8 +55,8 @@ class AllProjectsFilter : public QuickOpen::BaseFileFilter
 
 public:
     AllProjectsFilter(ProjectExplorerPlugin *pe, Core::ICore *core);
-    QString trName() const { return tr("File in any project"); }
-    QString name() const { return "File in any project"; }
+    QString trName() const { return tr("Files in any project"); }
+    QString name() const { return "Files in any project"; }
     QuickOpen::IQuickOpenFilter::Priority priority() const { return QuickOpen::IQuickOpenFilter::Low; }
     void refresh(QFutureInterface<void> &future);
 
diff --git a/src/plugins/projectexplorer/currentprojectfilter.h b/src/plugins/projectexplorer/currentprojectfilter.h
index bacd3a73ea1323fd3b33b3db258583f1911f18af..3e5d216632ed36bed41b4f055cab50558c3e56a7 100644
--- a/src/plugins/projectexplorer/currentprojectfilter.h
+++ b/src/plugins/projectexplorer/currentprojectfilter.h
@@ -55,8 +55,8 @@ class CurrentProjectFilter : public QuickOpen::BaseFileFilter
 
 public:
     CurrentProjectFilter(ProjectExplorerPlugin *pe, Core::ICore *core);
-    QString trName() const { return tr("File in current project"); }
-    QString name() const { return "File in current project"; }
+    QString trName() const { return tr("Files in current project"); }
+    QString name() const { return "Files in current project"; }
     QuickOpen::IQuickOpenFilter::Priority priority() const { return QuickOpen::IQuickOpenFilter::Low; }
     void refresh(QFutureInterface<void> &future);
 
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp
index de4f851e5cef4bd815e1ca327fe03efbee5cd925..823244578ed164eb1c4fd17cd2e379ef26af99a7 100644
--- a/src/plugins/projectexplorer/projectmodels.cpp
+++ b/src/plugins/projectexplorer/projectmodels.cpp
@@ -926,6 +926,16 @@ void FlatModel::setGeneratedFilesFilterEnabled(bool filter)
     reset();
 }
 
+bool FlatModel::projectFilterEnabled()
+{
+    return m_filterProjects;
+}
+
+bool FlatModel::generatedFilesFilterEnabled()
+{
+    return m_filterGeneratedFiles;
+}
+
 Node *FlatModel::nodeForIndex(const QModelIndex &index) const
 {
     if (index.isValid())
diff --git a/src/plugins/projectexplorer/projectmodels.h b/src/plugins/projectexplorer/projectmodels.h
index cb7376f932cf2fb43b1b7d3a0707d399f1ccc9b8..35c575fe94babfb0ccac38013f63a432b3813224 100644
--- a/src/plugins/projectexplorer/projectmodels.h
+++ b/src/plugins/projectexplorer/projectmodels.h
@@ -136,6 +136,9 @@ public:
     ProjectExplorer::Node *nodeForIndex(const QModelIndex &index) const;
     QModelIndex indexForNode(const Node *node);
 
+    bool projectFilterEnabled();
+    bool generatedFilesFilterEnabled();
+
 public slots:
     void setProjectFilterEnabled(bool filter);
     void setGeneratedFilesFilterEnabled(bool filter);
diff --git a/src/plugins/projectexplorer/projecttreewidget.cpp b/src/plugins/projectexplorer/projecttreewidget.cpp
index c2197a2dc7c7042ab3cc6c6a6c2dc5b235355391..724ab9d57961cc96dab5fd0f7b557b60dc4c7a3c 100644
--- a/src/plugins/projectexplorer/projecttreewidget.cpp
+++ b/src/plugins/projectexplorer/projecttreewidget.cpp
@@ -42,6 +42,7 @@
 #include <utils/qtcassert.h>
 
 #include <QtCore/QDebug>
+#include <QtCore/QSettings>
 
 #include <QtGui/QHeaderView>
 #include <QtGui/QVBoxLayout>
@@ -156,7 +157,20 @@ ProjectTreeWidget::ProjectTreeWidget(Core::ICore *core, QWidget *parent)
     connect(m_explorer->session(), SIGNAL(startupProjectChanged(ProjectExplorer::Project *)),
             this, SLOT(startupProjectChanged(ProjectExplorer::Project *)));
 
-    setAutoSynchronization(true);
+    m_toggleSync = new QToolButton;
+    m_toggleSync->setProperty("type", "dockbutton");
+    m_toggleSync->setIcon(QIcon(":/qworkbench/images/linkicon.png"));
+    m_toggleSync->setCheckable(true);
+    m_toggleSync->setChecked(autoSynchronization());
+    m_toggleSync->setToolTip(tr("Synchronize with Editor"));
+    connect(m_toggleSync, SIGNAL(clicked(bool)), this, SLOT(toggleAutoSynchronization()));
+
+    //setAutoSynchronization(true);
+}
+
+QToolButton *ProjectTreeWidget::toggleSync()
+{
+    return m_toggleSync;
 }
 
 void ProjectTreeWidget::toggleAutoSynchronization()
@@ -171,6 +185,7 @@ bool ProjectTreeWidget::autoSynchronization() const
 
 void ProjectTreeWidget::setAutoSynchronization(bool sync, bool syncNow)
 {
+    m_toggleSync->setChecked(sync);
     if (sync == m_autoSync)
         return;
 
@@ -296,6 +311,17 @@ void ProjectTreeWidget::setGeneratedFilesFilter(bool filter)
     m_filterGeneratedFilesAction->setChecked(filter);
 }
 
+bool ProjectTreeWidget::generatedFilesFilter()
+{
+    return m_model->generatedFilesFilterEnabled();
+}
+
+bool ProjectTreeWidget::projectFilter()
+{
+    return m_model->projectFilterEnabled();
+}
+
+
 ProjectTreeWidgetFactory::ProjectTreeWidgetFactory(Core::ICore *core)
     : m_core(core)
 {
@@ -331,15 +357,24 @@ Core::NavigationView ProjectTreeWidgetFactory::createWidget()
     filterMenu->addAction(ptw->m_filterGeneratedFilesAction);
     filter->setMenu(filterMenu);
 
-    QToolButton *toggleSync = new QToolButton;
-    toggleSync->setProperty("type", "dockbutton");
-    toggleSync->setIcon(QIcon(":/qworkbench/images/linkicon.png"));
-    toggleSync->setCheckable(true);
-    toggleSync->setChecked(ptw->autoSynchronization());
-    toggleSync->setToolTip(tr("Synchronize with Editor"));
-    connect(toggleSync, SIGNAL(clicked(bool)), ptw, SLOT(toggleAutoSynchronization()));
-
-    n.doockToolBarWidgets << filter << toggleSync;
+    n.doockToolBarWidgets << filter << ptw->toggleSync();
     return n;
 }
 
+void ProjectTreeWidgetFactory::saveSettings(int position, QWidget *widget)
+{
+    ProjectTreeWidget *ptw = qobject_cast<ProjectTreeWidget *>(widget);
+    Q_ASSERT(ptw);
+    m_core->settings()->setValue("ProjectTreeWidget."+QString::number(position)+".ProjectFilter", ptw->projectFilter());
+    m_core->settings()->setValue("ProjectTreeWidget."+QString::number(position)+".GeneratedFilter", ptw->generatedFilesFilter());
+    m_core->settings()->setValue("ProjectTreeWidget."+QString::number(position)+".SyncWithEditor", ptw->autoSynchronization());
+}
+
+void ProjectTreeWidgetFactory::restoreSettings(int position, QWidget *widget)
+{
+    ProjectTreeWidget *ptw = qobject_cast<ProjectTreeWidget *>(widget);
+    Q_ASSERT(ptw);
+    ptw->setProjectFilter(m_core->settings()->value("ProjectTreeWidget."+QString::number(position)+".ProjectFilter", false).toBool());
+    ptw->setGeneratedFilesFilter(m_core->settings()->value("ProjectTreeWidget."+QString::number(position)+".GeneratedFilter", true).toBool());
+    ptw->setAutoSynchronization(m_core->settings()->value("ProjectTreeWidget."+QString::number(position)+".SyncWithEditor", true).toBool());
+}
diff --git a/src/plugins/projectexplorer/projecttreewidget.h b/src/plugins/projectexplorer/projecttreewidget.h
index dcb26c2d9aaefac4279e70c3716f5b85b0302f03..85dc9801abd8d1f9bf0f43307c51669aaf811130 100644
--- a/src/plugins/projectexplorer/projecttreewidget.h
+++ b/src/plugins/projectexplorer/projecttreewidget.h
@@ -60,6 +60,9 @@ public:
 
     bool autoSynchronization() const;
     void setAutoSynchronization(bool sync, bool syncNow = true);
+    bool projectFilter();
+    bool generatedFilesFilter();
+    QToolButton *toggleSync();
 
 public slots:
     void toggleAutoSynchronization();
@@ -84,6 +87,7 @@ private:
     FlatModel *m_model;
     QAction *m_filterProjectsAction;
     QAction *m_filterGeneratedFilesAction;
+    QToolButton *m_toggleSync;
 
     QModelIndex m_subIndex;
     QString m_modelId;
@@ -100,6 +104,8 @@ public:
     virtual QString displayName();
     virtual QKeySequence activationSequence();
     virtual Core::NavigationView createWidget();
+    void restoreSettings(int position, QWidget *widget);
+    void saveSettings(int position, QWidget *widget);
 private:
     Core::ICore *m_core;
 };
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/filesystemfilter.h b/src/plugins/quickopen/filesystemfilter.h
index 0e895a45aabc40a672385de9b170dbe43c045644..a404da038f027fe768afecbfcd8f5223db51fcb4 100644
--- a/src/plugins/quickopen/filesystemfilter.h
+++ b/src/plugins/quickopen/filesystemfilter.h
@@ -56,8 +56,8 @@ class FileSystemFilter : public QuickOpen::IQuickOpenFilter
 
 public:
     FileSystemFilter(Core::EditorManager *editorManager, QuickOpenToolWindow *toolWindow);
-    QString trName() const { return tr("File in file system"); }
-    QString name() const { return "File in file system"; }
+    QString trName() const { return tr("Files in file system"); }
+    QString name() const { return "Files in file system"; }
     QuickOpen::IQuickOpenFilter::Priority priority() const { return QuickOpen::IQuickOpenFilter::Medium; }
     QList<QuickOpen::FilterEntry> matchesFor(const QString &entry);
     void accept(QuickOpen::FilterEntry selection) const;
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());