diff --git a/src/libs/utils/savedaction.cpp b/src/libs/utils/savedaction.cpp
index e3833bebb6e3ae121467a0022a0fa7b5c72042c3..a4b94bcd7bcf585ea29484544ee9342d27c4c323 100644
--- a/src/libs/utils/savedaction.cpp
+++ b/src/libs/utils/savedaction.cpp
@@ -42,6 +42,7 @@
 #include <QtGui/QLineEdit>
 #include <QtGui/QRadioButton>
 #include <QtGui/QSpinBox>
+#include <QtGui/QGroupBox>
 
 
 using namespace Utils;
@@ -238,19 +239,17 @@ QAction *SavedAction::updatedAction(const QString &text0)
 
     \sa settingsKey(), settingsGroup(), writeSettings()
 */
-void SavedAction::readSettings(QSettings *settings)
+void SavedAction::readSettings(const QSettings *settings)
 {
     if (m_settingsGroup.isEmpty() || m_settingsKey.isEmpty())
         return;
-    settings->beginGroup(m_settingsGroup);
-    QVariant var = settings->value(m_settingsKey, m_defaultValue);
+    QVariant var = settings->value(m_settingsGroup + QLatin1Char('/') + m_settingsKey, m_defaultValue);
     // work around old ini files containing @Invalid() entries
     if (isCheckable() && !var.isValid())
         var = false;
     setValue(var);
     //qDebug() << "READING: " << var.isValid() << m_settingsKey << " -> " << m_value
     //    << " (default: " << m_defaultValue << ")" << var;
-    settings->endGroup();
 }
 
 /*
@@ -314,6 +313,11 @@ void SavedAction::connectWidget(QWidget *widget, ApplyMode applyMode)
             this, SLOT(pathChooserEditingFinished()));
         connect(pathChooser, SIGNAL(browsingFinished()),
             this, SLOT(pathChooserEditingFinished()));
+    } else if (QGroupBox *groupBox= qobject_cast<QGroupBox *>(widget)) {
+        if (!groupBox->isCheckable())
+            qDebug() << "connectWidget to non-checkable group box" << widget << toString();
+        groupBox->setChecked(m_value.toBool());
+        connect(groupBox, SIGNAL(toggled(bool)), this, SLOT(groupBoxToggled(bool)));
     } else {
         qDebug() << "Cannot connect widget " << widget << toString();
     }
@@ -339,6 +343,8 @@ void SavedAction::apply(QSettings *s)
         setValue(spinBox->value());
     else if (PathChooser *pathChooser = qobject_cast<PathChooser *>(m_widget))
         setValue(pathChooser->path());
+    else if (const QGroupBox *groupBox= qobject_cast<QGroupBox *>(m_widget))
+        setValue(groupBox->isChecked());
     if (s)
        writeSettings(s);
 }
@@ -392,6 +398,12 @@ void SavedAction::pathChooserEditingFinished()
         setValue(pathChooser->path());
 }
 
+void SavedAction::groupBoxToggled(bool checked)
+{
+    if (m_applyMode == ImmediateApply)
+        setValue(QVariant(checked));
+}
+
 void SavedAction::actionTriggered(bool)
 {
     if (isCheckable())
@@ -436,3 +448,16 @@ void SavedActionSet::finish()
         action->disconnectWidget();
 }
 
+QString SavedActionSet::searchKeyWords() const
+{
+    const QChar blank = QLatin1Char(' ');
+    QString rc;
+    foreach (SavedAction *action, m_list) {
+        if (!rc.isEmpty())
+            rc += blank;
+        rc += action->text();
+    }
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
diff --git a/src/libs/utils/savedaction.h b/src/libs/utils/savedaction.h
index 4306a800bd9468116e091a8fd0a0cbbd3abb8c51..abfb8d14377cbb40d84b891e49f31ad59f1ce8f2 100644
--- a/src/libs/utils/savedaction.h
+++ b/src/libs/utils/savedaction.h
@@ -70,7 +70,7 @@ public:
     virtual QString settingsGroup() const;
     Q_SLOT virtual void setSettingsGroup(const QString &group);
 
-    virtual void readSettings(QSettings *settings);
+    virtual void readSettings(const QSettings *settings);
     Q_SLOT virtual void writeSettings(QSettings *settings);
     
     virtual void connectWidget(QWidget *widget, ApplyMode applyMode = DeferedApply);
@@ -93,6 +93,7 @@ private:
     Q_SLOT void actionTriggered(bool);
     Q_SLOT void spinBoxValueChanged(int);
     Q_SLOT void spinBoxValueChanged(QString);
+    Q_SLOT void groupBoxToggled(bool checked);
 
     QVariant m_value;
     QVariant m_defaultValue;
@@ -115,6 +116,9 @@ public:
     void finish();
     void clear() { m_list.clear(); }
 
+    // Search keywords for options dialog search.
+    QString searchKeyWords() const;
+
 private:
     QList<SavedAction *> m_list;
 };
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index e9788ca9b674471d8ca5b97b4c233c0f2c62e227..313f0b8fdf2def4037af511a11f583c589d5c10a 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -263,7 +263,7 @@ QWidget *CMakeSettingsPage::createPage(QWidget *parent)
 {
     QWidget *outerWidget = new QWidget(parent);
     QVBoxLayout *outerLayout = new QVBoxLayout(outerWidget);
-    QGroupBox *groupBox = new QGroupBox(trCategory());
+    QGroupBox *groupBox = new QGroupBox;
     outerLayout->addWidget(groupBox);
     outerLayout->addItem(new QSpacerItem(0, 0, QSizePolicy::Ignored, QSizePolicy::MinimumExpanding));
     QFormLayout *formLayout = new QFormLayout(groupBox);
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index 34bf4ca28168d0a2bff18625ca4fdff996b9cf79..f469c63148eb4fc5b8a8add67e188c8980ff8c2b 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -42,6 +42,11 @@
 #include <QtGui/QSortFilterProxyModel>
 #include <QtGui/QItemSelectionModel>
 #include <QtGui/QIcon>
+#include <QtGui/QLabel>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QSpacerItem>
+#include <QtGui/QStyle>
 
 enum ItemType { CategoryItem, PageItem };
 
@@ -201,8 +206,37 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &categoryId,
 
     connect(buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply()));
 
-    foreach(IOptionsPage *page, m_pages)
-        stackedPages->addWidget(page->createPage(0));
+    // Create pages with title labels with a larger, bold font, left-aligned
+    // with the group boxes of the page.
+    const int pageCount = m_pages.size();
+    QFont titleLabelFont;
+    const int leftMargin = qApp->style()->pixelMetric(QStyle::PM_LayoutLeftMargin) +
+                           qApp->style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
+    for (int i = 0; i < pageCount; i++) {
+        // Title bar
+        QHBoxLayout *titleLayout = new QHBoxLayout;
+        titleLayout->addSpacerItem(new QSpacerItem(leftMargin, 0, QSizePolicy::Fixed, QSizePolicy::Ignored));
+        QLabel *titleLabel = new QLabel(m_pages.at(i)->trName());
+        if (i == 0) { // Create a bold header font from the default label font.
+            titleLabelFont = titleLabel->font();
+            titleLabelFont.setBold(true);
+            // Paranoia: Should a font be set in pixels...
+            const int pointSize = titleLabelFont.pointSize();
+            if (pointSize > 0)
+                titleLabelFont.setPointSize(pointSize + 2);
+        }
+        titleLabel->setFont(titleLabelFont);
+        titleLayout->addWidget(titleLabel);
+        // Page
+        QWidget *pageContainer =new QWidget;
+        QVBoxLayout *pageLayout = new QVBoxLayout(pageContainer);
+        pageLayout->addLayout(titleLayout);
+        pageLayout->addSpacerItem(new QSpacerItem(0, 6, QSizePolicy::Ignored, QSizePolicy::Fixed));
+        pageLayout->addWidget(m_pages.at(i)->createPage(0));
+        stackedPages->addWidget(pageContainer);
+    }
+//    foreach(IOptionsPage *page, m_pages)
+  //      stackedPages->addWidget();
 
     splitter->setCollapsible(1, false);
     pageTree->header()->setVisible(false);
@@ -247,10 +281,11 @@ void SettingsDialog::showPage(const QStandardItem *item)
     // if a category was hit.
     switch (itemTypeOfItem(item)) {
     case PageItem: {
-            const IOptionsPage *page = pageOfItem(item);
+            IOptionsPage *page = pageOfItem(item);
             m_currentCategory = page->category();
             m_currentPage = page->id();
             stackedPages->setCurrentIndex(indexOfItem(item));
+            m_visitedPages.insert(page);
         }
         break;
     case CategoryItem:
@@ -318,10 +353,10 @@ void SettingsDialog::filter(const QString &text)
 void SettingsDialog::accept()
 {
     m_applied = true;
-    foreach (IOptionsPage *page, m_pages) {
+    foreach (IOptionsPage *page, m_visitedPages)
         page->apply();
+    foreach (IOptionsPage *page, m_pages)
         page->finish();
-    }
     done(QDialog::Accepted);
 }
 
@@ -334,7 +369,7 @@ void SettingsDialog::reject()
 
 void SettingsDialog::apply()
 {
-    foreach (IOptionsPage *page, m_pages)
+    foreach (IOptionsPage *page, m_visitedPages)
         page->apply();
     m_applied = true;
 }
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h
index f007bfd83a723ea0b1c75082c929752c49221ea9..053296068b474411bf525dcd6f432c3fc014da9e 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.h
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.h
@@ -33,6 +33,7 @@
 #include "ui_settingsdialog.h"
 
 #include <QtCore/QList>
+#include <QtCore/QSet>
 
 #include "coreplugin/dialogs/ioptionspage.h"
 
@@ -74,6 +75,8 @@ private:
     void showPage(const QStandardItem *item);
 
     const QList<Core::IOptionsPage*> m_pages;
+
+    QSet<Core::IOptionsPage*> m_visitedPages;
     QSortFilterProxyModel *m_proxyModel;
     QStandardItemModel *m_model;
     bool m_applied;
diff --git a/src/plugins/coreplugin/generalsettings.ui b/src/plugins/coreplugin/generalsettings.ui
index 35c3b27963a43c5571c16fb58fa327558e9cde24..a128edbc155c124caeb58e5cb65e9eb6356a1c91 100644
--- a/src/plugins/coreplugin/generalsettings.ui
+++ b/src/plugins/coreplugin/generalsettings.ui
@@ -2,12 +2,17 @@
 <ui version="4.0">
  <class>Core::Internal::GeneralSettings</class>
  <widget class="QWidget" name="Core::Internal::GeneralSettings">
+  <property name="geometry">
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>363</width>
+    <height>296</height>
+   </rect>
+  </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>General settings</string>
-     </property>
      <layout class="QFormLayout" name="formLayout">
       <property name="rowWrapPolicy">
        <enum>QFormLayout::WrapLongRows</enum>
diff --git a/src/plugins/cpaster/codepastersettings.cpp b/src/plugins/cpaster/codepastersettings.cpp
index da2591cc72196eeca562725e77fcb9fcb06964b0..60327b8f9fc2b2811a560f74699caa886d5f8bde 100644
--- a/src/plugins/cpaster/codepastersettings.cpp
+++ b/src/plugins/cpaster/codepastersettings.cpp
@@ -74,7 +74,7 @@ QString CodePasterSettingsPage::trCategory() const
 
 QWidget *CodePasterSettingsPage::createPage(QWidget *parent)
 {    
-    QGroupBox *groupBox = new QGroupBox(category());
+    QGroupBox *groupBox = new QGroupBox();
     QVBoxLayout *groupBoxLayout = new QVBoxLayout(groupBox);
     QFormLayout *formLayout = new QFormLayout;
     QLineEdit *lineedit = new QLineEdit(m_host);
diff --git a/src/plugins/cpaster/pastebindotcomsettings.ui b/src/plugins/cpaster/pastebindotcomsettings.ui
index 693c8bf6f57d4e9ebd54e07bd24312c42b088dde..7068761ee2c78cec52434258ae0605f4a4272b79 100644
--- a/src/plugins/cpaster/pastebindotcomsettings.ui
+++ b/src/plugins/cpaster/pastebindotcomsettings.ui
@@ -16,9 +16,6 @@
   <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
     <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>PasteBin</string>
-     </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
        <layout class="QFormLayout" name="formLayout">
diff --git a/src/plugins/cpaster/settingspage.ui b/src/plugins/cpaster/settingspage.ui
index 2593d6e1a90b255f9829e8bd529bde3cedcb4c36..aab35a272ab50636646428256a2f8eded64d68f0 100644
--- a/src/plugins/cpaster/settingspage.ui
+++ b/src/plugins/cpaster/settingspage.ui
@@ -2,14 +2,6 @@
 <ui version="4.0">
  <class>CodePaster::SettingsPage</class>
  <widget class="QWidget" name="CodePaster::SettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>453</width>
-    <height>320</height>
-   </rect>
-  </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QGroupBox" name="groupBox">
@@ -19,9 +11,6 @@
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title">
-      <string>General</string>
-     </property>
      <layout class="QFormLayout" name="formLayout">
       <item row="0" column="0">
        <widget class="QLabel" name="protocolLabel">
@@ -59,14 +48,14 @@
       <item row="1" column="1">
        <widget class="QLineEdit" name="userEdit"/>
       </item>
-      <item row="2" column="1">
+      <item row="2" column="0" colspan="2">
        <widget class="QCheckBox" name="clipboardBox">
         <property name="text">
          <string>Copy Paste URL to clipboard</string>
         </property>
        </widget>
       </item>
-      <item row="3" column="1">
+      <item row="3" column="0" colspan="2">
        <widget class="QCheckBox" name="displayBox">
         <property name="text">
          <string>Display Output Pane after sending a post</string>
diff --git a/src/plugins/cpptools/completionsettingspage.ui b/src/plugins/cpptools/completionsettingspage.ui
index 55c077532a5bb09352ceff5301f40ced839c9c40..c00b8aabd3d684f014a06fa7f3764442af150fbd 100644
--- a/src/plugins/cpptools/completionsettingspage.ui
+++ b/src/plugins/cpptools/completionsettingspage.ui
@@ -13,9 +13,6 @@
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Code Completion</string>
-     </property>
      <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
        <widget class="QCheckBox" name="caseSensitive">
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index 86e55461ed3351ff462f8ce28215a44a6b8532c7..f1b7cce8697156cde1b68b19c965fd8d6bb14888 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -243,7 +243,8 @@ QString CppFileSettingsWidget::searchKeywords() const
     QString rc;
     QTextStream(&rc) << m_ui->headerSuffixLabel->text()
             << ' ' << m_ui->sourceSuffixLabel->text()
-            << ' ' << m_ui->lowerCaseFileNamesCheckBox->text();
+            << ' ' << m_ui->lowerCaseFileNamesCheckBox->text()
+            << ' ' << m_ui->licenseTemplateLabel->text();
     rc.remove(QLatin1Char('&'));
     return rc;
 }
diff --git a/src/plugins/cpptools/cppfilesettingspage.ui b/src/plugins/cpptools/cppfilesettingspage.ui
index e981bd7ef9d2525b322cefa31f4c45571bd8e491..02261b47f1d460c47322bd6d52539ea0f07e4fd2 100644
--- a/src/plugins/cpptools/cppfilesettingspage.ui
+++ b/src/plugins/cpptools/cppfilesettingspage.ui
@@ -6,7 +6,7 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>424</width>
+    <width>441</width>
     <height>503</height>
    </rect>
   </property>
@@ -19,9 +19,6 @@
        <verstretch>0</verstretch>
       </sizepolicy>
      </property>
-     <property name="title">
-      <string>File Naming Conventions</string>
-     </property>
      <layout class="QFormLayout" name="formLayout">
       <property name="fieldGrowthPolicy">
        <enum>QFormLayout::ExpandingFieldsGrow</enum>
@@ -61,7 +58,7 @@
        </widget>
       </item>
       <item row="3" column="1">
-       <widget class="Utils::PathChooser" name="licenseTemplatePathChooser" native="true"/>
+       <widget class="Utils::PathChooser" name="licenseTemplatePathChooser"/>
       </item>
      </layout>
     </widget>
diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp
index 72e17ee5d44640e1ec9d0df084e7e58805bacd97..ae1d9112158d7fddad07d34be9114a3b72d82b7b 100644
--- a/src/plugins/cvs/settingspage.cpp
+++ b/src/plugins/cvs/settingspage.cpp
@@ -37,6 +37,7 @@
 #include <utils/pathchooser.h>
 
 #include <QtCore/QCoreApplication>
+#include <QtCore/QTextStream>
 #include <QtGui/QFileDialog>
 
 using namespace CVS::Internal;
@@ -70,6 +71,17 @@ void SettingsPageWidget::setSettings(const CVSSettings &s)
     m_ui.describeByCommitIdCheckBox->setChecked(s.describeByCommitId);
 }
 
+QString SettingsPageWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc) << m_ui.promptToSubmitCheckBox->text()
+            << ' ' <<  m_ui.describeByCommitIdCheckBox->text()
+            << ' ' << m_ui.commandLabel->text()
+            << ' ' << m_ui.rootLabel->text() << ' ' << m_ui.diffOptionsLabel->text();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
 SettingsPage::SettingsPage()
 {
 }
@@ -98,6 +110,8 @@ QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
     m_widget->setSettings(CVSPlugin::cvsPluginInstance()->settings());
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -105,3 +119,8 @@ void SettingsPage::apply()
 {
     CVSPlugin::cvsPluginInstance()->setSettings(m_widget->settings());
 }
+
+bool SettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/cvs/settingspage.h b/src/plugins/cvs/settingspage.h
index b9842981772957324f150637fe7e22127e4e279d..cd80d85102ca612357236be46a8294c57dad3f53 100644
--- a/src/plugins/cvs/settingspage.h
+++ b/src/plugins/cvs/settingspage.h
@@ -55,6 +55,8 @@ public:
     CVSSettings settings() const;
     void setSettings(const CVSSettings &);
 
+    QString searchKeywords() const;
+
 private:
     Ui::SettingsPage m_ui;
 };
@@ -75,8 +77,10 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &) const;
 
 private:
+    QString m_searchKeywords;
     SettingsPageWidget* m_widget;
 };
 
diff --git a/src/plugins/cvs/settingspage.ui b/src/plugins/cvs/settingspage.ui
index 2eaf4c935df4017276471c8dba7a01872208f503..df835685f18d386631a6226be1aceb637a94031b 100644
--- a/src/plugins/cvs/settingspage.ui
+++ b/src/plugins/cvs/settingspage.ui
@@ -2,115 +2,81 @@
 <ui version="4.0">
  <class>CVS::Internal::SettingsPage</class>
  <widget class="QWidget" name="CVS::Internal::SettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>575</width>
-    <height>437</height>
-   </rect>
-  </property>
-  <layout class="QHBoxLayout" name="horizontalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QVBoxLayout" name="verticalLayout">
-     <item>
-      <layout class="QFormLayout" name="formLayout_3">
-       <item row="0" column="0" colspan="2">
-        <widget class="QCheckBox" name="promptToSubmitCheckBox">
-         <property name="text">
-          <string>Prompt to submit</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-     <item>
-      <widget class="QCheckBox" name="describeByCommitIdCheckBox">
-       <property name="toolTip">
-        <string>When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit id). Otherwise, only the respective file will be displayed.</string>
-       </property>
-       <property name="text">
-        <string>Describe all files matching commit id:</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="topverticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeType">
-        <enum>QSizePolicy::Fixed</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QFormLayout" name="formLayout_2">
-       <property name="margin">
-        <number>0</number>
-       </property>
-       <item row="0" column="0">
-        <widget class="QLabel" name="commandLabel">
-         <property name="text">
-          <string>CVS Command:</string>
-         </property>
-        </widget>
-       </item>
-       <item row="0" column="1">
-        <widget class="Utils::PathChooser" name="commandPathChooser"/>
-       </item>
-       <item row="1" column="0">
-        <widget class="QLabel" name="rootLabel">
-         <property name="text">
-          <string>CVS Root:</string>
-         </property>
-        </widget>
-       </item>
-       <item row="1" column="1">
-        <widget class="QLineEdit" name="rootLineEdit"/>
-       </item>
-       <item row="2" column="0">
-        <widget class="QLabel" name="diffOptionsLabel">
-         <property name="text">
-          <string>Diff Options:</string>
-         </property>
-        </widget>
-       </item>
-       <item row="2" column="1">
-        <widget class="QLineEdit" name="diffOptionsLineEdit"/>
-       </item>
-      </layout>
-     </item>
-     <item>
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
+    <widget class="QGroupBox" name="miscGroupBox">
+     <property name="title">
+      <string>Configuration</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout_2">
+      <item row="0" column="0">
+       <widget class="QLabel" name="commandLabel">
+        <property name="text">
+         <string>CVS Command:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="Utils::PathChooser" name="commandPathChooser"/>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="rootLabel">
+        <property name="text">
+         <string>CVS Root:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="rootLineEdit"/>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="miscGroupBox_2">
+     <property name="title">
+      <string>Miscellaneous</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout">
+      <item row="0" column="0">
+       <widget class="QLabel" name="diffOptionsLabel">
+        <property name="text">
+         <string>Diff Options:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="diffOptionsLineEdit"/>
+      </item>
+      <item row="1" column="0" colspan="2">
+       <widget class="QCheckBox" name="promptToSubmitCheckBox">
+        <property name="text">
+         <string>Prompt on submit</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" colspan="2">
+       <widget class="QCheckBox" name="describeByCommitIdCheckBox">
+        <property name="toolTip">
+         <string>When checked, all files touched by a commit will be displayed when clicking on a revision number in the annotation view (retrieved via commit id). Otherwise, only the respective file will be displayed.</string>
+        </property>
+        <property name="text">
+         <string>Describe all files matching commit id</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
    </item>
    <item>
-    <spacer name="horizontalSpacer">
+    <spacer name="verticalSpacer">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>105</width>
-       <height>20</height>
+       <width>20</width>
+       <height>40</height>
       </size>
      </property>
     </spacer>
diff --git a/src/plugins/debugger/cdb/cdboptionspage.cpp b/src/plugins/debugger/cdb/cdboptionspage.cpp
index f8cdc051682a592c2487a00c9001c0833fd2e203..03967535261f7118de1539e136d32acbd0a96890 100644
--- a/src/plugins/debugger/cdb/cdboptionspage.cpp
+++ b/src/plugins/debugger/cdb/cdboptionspage.cpp
@@ -35,6 +35,7 @@
 
 #include <QtCore/QCoreApplication>
 #include <QtCore/QUrl>
+#include <QtCore/QTextStream>
 #include <QtGui/QMessageBox>
 #include <QtGui/QDesktopServices>
 
@@ -127,6 +128,16 @@ void CdbOptionsPageWidget::downLoadLinkActivated(const QString &link)
     QDesktopServices::openUrl(QUrl(link));
 }
 
+QString CdbOptionsPageWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc) << m_ui.pathLabel->text() << ' ' << m_ui.symbolPathLabel->text()
+            << ' ' << m_ui.sourcePathLabel->text()
+            << ' ' << m_ui.verboseSymbolLoadingCheckBox->text();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
 // ---------- CdbOptionsPage
 CdbOptionsPage::CdbOptionsPage(const QSharedPointer<CdbOptions> &options) :
         m_options(options)
@@ -162,6 +173,8 @@ QWidget *CdbOptionsPage::createPage(QWidget *parent)
     m_widget = new CdbOptionsPageWidget(parent);
     m_widget->setOptions(*m_options);
     m_widget->setFailureMessage(m_failureMessage);
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -188,5 +201,10 @@ void CdbOptionsPage::finish()
 {
 }
 
+bool CdbOptionsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 } // namespace Internal
 } // namespace Debugger
diff --git a/src/plugins/debugger/cdb/cdboptionspage.h b/src/plugins/debugger/cdb/cdboptionspage.h
index 01b56c32c9584750558682fce2fd82dc84a80441..0938e19885b24d96db663c49bae22bd08838eccd 100644
--- a/src/plugins/debugger/cdb/cdboptionspage.h
+++ b/src/plugins/debugger/cdb/cdboptionspage.h
@@ -53,6 +53,8 @@ public:
 
     void setFailureMessage(const QString &);
 
+    QString searchKeywords() const;
+
 private slots:
     void autoDetect();
     void downLoadLinkActivated(const QString &);
@@ -78,6 +80,7 @@ public:
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
     virtual void finish();
+    virtual bool matches(const QString &) const;
 
     static QString settingsId();
 
@@ -92,6 +95,7 @@ private:
     const QSharedPointer<CdbOptions> m_options;
     QPointer<CdbOptionsPageWidget> m_widget;
     QString m_failureMessage;
+    QString m_searchKeywords;
 };
 
 } // namespace Internal
diff --git a/src/plugins/debugger/commonoptionspage.ui b/src/plugins/debugger/commonoptionspage.ui
index 4148ad84c06c098c492ae8cb70f756a3793e6bd3..8cbfecf9e2b6a90825db064d973b24da8047117b 100644
--- a/src/plugins/debugger/commonoptionspage.ui
+++ b/src/plugins/debugger/commonoptionspage.ui
@@ -2,22 +2,14 @@
 <ui version="4.0">
  <class>CommonOptionsPage</class>
  <widget class="QWidget" name="CommonOptionsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>379</width>
-    <height>243</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QGroupBox" name="groupBox">
      <property name="title">
       <string>User interface</string>
      </property>
-     <layout class="QVBoxLayout" name="verticalLayout">
-      <item>
+     <layout class="QFormLayout" name="formLayout">
+      <item row="0" column="0" colspan="2">
        <widget class="QCheckBox" name="checkBoxListSourceFiles">
         <property name="toolTip">
          <string>Checking this will populate the source file view automatically but might slow down debugger startup considerably.</string>
@@ -27,28 +19,28 @@
         </property>
        </widget>
       </item>
-      <item>
+      <item row="1" column="0" colspan="2">
        <widget class="QCheckBox" name="checkBoxUseMessageBoxForSignals">
         <property name="text">
          <string>Show a message box when receiving a signal</string>
         </property>
        </widget>
       </item>
-      <item>
+      <item row="2" column="0" colspan="2">
        <widget class="QCheckBox" name="checkBoxUseAlternatingRowColors">
         <property name="text">
          <string>Use alternating row colors in debug views</string>
         </property>
        </widget>
       </item>
-      <item>
+      <item row="3" column="0" colspan="2">
        <widget class="QCheckBox" name="checkBoxUseToolTipsInMainEditor">
         <property name="text">
          <string>Use tooltips in main editor while debugging</string>
         </property>
        </widget>
       </item>
-      <item>
+      <item row="4" column="0" colspan="2">
        <widget class="QCheckBox" name="checkBoxSkipKnownFrames">
         <property name="toolTip">
          <string>When this option is checked, 'Step Into' compresses several steps into one in certain situations, leading to 'less noisy' debugging. So will, e.g., the atomic
@@ -59,58 +51,38 @@
         </property>
        </widget>
       </item>
-      <item>
+      <item row="5" column="0" colspan="2">
        <widget class="QCheckBox" name="checkBoxEnableReverseDebugging">
         <property name="text">
          <string>Enable reverse debugging</string>
         </property>
        </widget>
       </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <widget class="QLabel" name="labelMaximalStackDepth">
-          <property name="text">
-           <string>Maximal stack depth:</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QSpinBox" name="spinBoxMaximalStackDepth">
-          <property name="layoutDirection">
-           <enum>Qt::LeftToRight</enum>
-          </property>
-          <property name="alignment">
-           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-          </property>
-          <property name="specialValueText">
-           <string>&lt;unlimited&gt;</string>
-          </property>
-          <property name="maximum">
-           <number>999</number>
-          </property>
-          <property name="singleStep">
-           <number>5</number>
-          </property>
-          <property name="value">
-           <number>10</number>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
+      <item row="6" column="0">
+       <widget class="QLabel" name="labelMaximalStackDepth">
+        <property name="text">
+         <string>Maximal stack depth:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="6" column="1">
+       <widget class="QSpinBox" name="spinBoxMaximalStackDepth">
+        <property name="layoutDirection">
+         <enum>Qt::LeftToRight</enum>
+        </property>
+        <property name="specialValueText">
+         <string>&lt;unlimited&gt;</string>
+        </property>
+        <property name="maximum">
+         <number>999</number>
+        </property>
+        <property name="singleStep">
+         <number>5</number>
+        </property>
+        <property name="value">
+         <number>10</number>
+        </property>
+       </widget>
       </item>
      </layout>
     </widget>
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 818390dd17f5e9b704e0b61e733bb3f3f30869f4..8868f38b104a8b49cb5da0278432c7ce25ab2145 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -62,6 +62,7 @@
 
 #include <extensionsystem/pluginmanager.h>
 
+#include <coreplugin/manhattanstyle.h>
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <projectexplorer/session.h>
@@ -328,10 +329,12 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(settings()); }
     void finish() { m_group.finish(); }
+    virtual bool matches(const QString &s) const;
 
 private:
     Ui::CommonOptionsPage m_ui;
     Utils::SavedActionSet m_group;
+    QString m_searchKeywords;
 };
 
 QWidget *CommonOptionsPage::createPage(QWidget *parent)
@@ -364,9 +367,25 @@ QWidget *CommonOptionsPage::createPage(QWidget *parent)
     m_ui.checkBoxEnableReverseDebugging->hide();
 #endif
 
+    if (m_searchKeywords.isEmpty()) {
+        QTextStream(&m_searchKeywords) << ' ' << m_ui.checkBoxListSourceFiles->text()
+                << ' ' << m_ui.checkBoxUseMessageBoxForSignals->text()
+                << ' ' << m_ui.checkBoxUseAlternatingRowColors->text()
+                << ' ' << m_ui.checkBoxUseToolTipsInMainEditor->text()
+                << ' ' << m_ui.checkBoxSkipKnownFrames->text()
+                << ' ' << m_ui.checkBoxEnableReverseDebugging->text()
+                << ' ' << m_ui.labelMaximalStackDepth->text();
+        m_searchKeywords.remove(QLatin1Char('&'));
+    }
+
     return w;
 }
 
+bool CommonOptionsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 } // namespace Internal
 } // namespace Debugger
 
@@ -377,6 +396,13 @@ QWidget *CommonOptionsPage::createPage(QWidget *parent)
 //
 ///////////////////////////////////////////////////////////////////////
 
+static inline bool oxygenStyle()
+{
+    if (const ManhattanStyle *ms = qobject_cast<const ManhattanStyle *>(qApp->style()))
+        return !qstrcmp("OxygenStyle", ms->systemStyle()->metaObject()->className());
+    return false;
+}
+
 namespace Debugger {
 namespace Internal {
 
@@ -396,14 +422,12 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(settings()); }
     void finish() { m_group.finish(); }
+    virtual bool matches(const QString &s) const;
 
 private:
-    Q_SLOT void updateState();
-
-    friend class DebuggerPlugin;
-    Ui::DebuggingHelperOptionPage m_ui;
-
+    Ui::DebuggingHelperOptionPage m_ui;    
     Utils::SavedActionSet m_group;
+    QString m_searchKeywords;
 };
 
 QWidget *DebuggingHelperOptionPage::createPage(QWidget *parent)
@@ -416,16 +440,15 @@ QWidget *DebuggingHelperOptionPage::createPage(QWidget *parent)
     m_ui.dumperLocationChooser->setInitialBrowsePathBackup(
         Core::ICore::instance()->resourcePath() + "../../lib");
 
-    connect(m_ui.checkBoxUseDebuggingHelpers, SIGNAL(toggled(bool)),
-        this, SLOT(updateState()));
-    connect(m_ui.checkBoxUseCustomDebuggingHelperLocation, SIGNAL(toggled(bool)),
-        this, SLOT(updateState()));
-
     m_group.clear();
     m_group.insert(theDebuggerAction(UseDebuggingHelpers),
-        m_ui.checkBoxUseDebuggingHelpers);
+        m_ui.debuggingHelperGroupBox);
     m_group.insert(theDebuggerAction(UseCustomDebuggingHelperLocation),
-        m_ui.checkBoxUseCustomDebuggingHelperLocation);
+        m_ui.customLocationGroupBox);
+    // Suppress Oxygen style's giving flat group boxes bold titles
+    if (oxygenStyle())
+        m_ui.customLocationGroupBox->setStyleSheet(QLatin1String("QGroupBox::title { font: ; }"));
+
     m_group.insert(theDebuggerAction(CustomDebuggingHelperLocation),
         m_ui.dumperLocationChooser);
 
@@ -439,9 +462,6 @@ QWidget *DebuggingHelperOptionPage::createPage(QWidget *parent)
     m_ui.checkBoxDebugDebuggingHelpers->hide();
 #endif
 
-    m_ui.dumperLocationChooser->
-        setEnabled(theDebuggerAction(UseCustomDebuggingHelperLocation)->value().toBool());
-
 #ifndef QT_DEBUG
 #if 0
     cmd = am->registerAction(m_manager->m_dumpLogAction,
@@ -451,19 +471,22 @@ QWidget *DebuggingHelperOptionPage::createPage(QWidget *parent)
     mdebug->addAction(cmd);
 #endif
 #endif
-    updateState();
 
+    if (m_searchKeywords.isEmpty()) {
+        QTextStream(&m_searchKeywords)
+                << ' ' << m_ui.debuggingHelperGroupBox->title()
+                << ' ' << m_ui.customLocationGroupBox->title()
+                << ' ' << m_ui.dumperLocationLabel->text()
+                << ' ' << m_ui.checkBoxUseCodeModel->text()
+                << ' ' << m_ui.checkBoxDebugDebuggingHelpers->text();
+        m_searchKeywords.remove(QLatin1Char('&'));
+    }
     return w;
 }
 
-void DebuggingHelperOptionPage::updateState()
+bool DebuggingHelperOptionPage::matches(const QString &s) const
 {
-    m_ui.checkBoxUseCustomDebuggingHelperLocation->setEnabled(
-        m_ui.checkBoxUseDebuggingHelpers->isChecked());
-    bool locationEnabled = m_ui.checkBoxUseDebuggingHelpers->isChecked()
-         && m_ui.checkBoxUseCustomDebuggingHelperLocation->isChecked();
-    m_ui.dumperLocationChooser->setEnabled(locationEnabled);
-    m_ui.dumperLocationLabel->setEnabled(locationEnabled);
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
 }
 
 } // namespace Internal
diff --git a/src/plugins/debugger/dumperoptionpage.ui b/src/plugins/debugger/dumperoptionpage.ui
index e63355068dea82821d54522740a0f052e897456c..a7ac27cfcd64315df25f947483ff5ac80c5a245c 100644
--- a/src/plugins/debugger/dumperoptionpage.ui
+++ b/src/plugins/debugger/dumperoptionpage.ui
@@ -6,87 +6,45 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>432</width>
-    <height>434</height>
+    <width>417</width>
+    <height>203</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
-    <widget class="QGroupBox" name="groupBox">
+    <widget class="QGroupBox" name="debuggingHelperGroupBox">
      <property name="title">
-      <string>Debugging helper</string>
+      <string>Use Debugging helper</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
      </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
-       <widget class="QCheckBox" name="checkBoxUseDebuggingHelpers">
-        <property name="toolTip">
-         <string>This will enable nice display of Qt and Standard Library objects in the Locals&amp;Watchers view</string>
+       <widget class="QGroupBox" name="customLocationGroupBox">
+        <property name="title">
+         <string>Use debugging helper from custom location</string>
         </property>
-        <property name="text">
-         <string>Use debugging helper</string>
+        <property name="flat">
+         <bool>true</bool>
+        </property>
+        <property name="checkable">
+         <bool>true</bool>
         </property>
+        <layout class="QFormLayout" name="formLayout">
+         <item row="0" column="0">
+          <widget class="QLabel" name="dumperLocationLabel">
+           <property name="text">
+            <string>Location: </string>
+           </property>
+          </widget>
+         </item>
+         <item row="0" column="1">
+          <widget class="Utils::PathChooser" name="dumperLocationChooser"/>
+         </item>
+        </layout>
        </widget>
       </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <spacer name="horizontalSpacer">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeType">
-           <enum>QSizePolicy::Fixed</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>10</width>
-            <height>10</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QCheckBox" name="checkBoxUseCustomDebuggingHelperLocation">
-          <property name="toolTip">
-           <string>This will load a dumper library</string>
-          </property>
-          <property name="text">
-           <string>Use debugging helper from custom location</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <item>
-         <spacer name="horizontalSpacer_2">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeType">
-           <enum>QSizePolicy::Fixed</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>20</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-        <item>
-         <widget class="QLabel" name="dumperLocationLabel">
-          <property name="text">
-           <string>Location: </string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="Utils::PathChooser" name="dumperLocationChooser"/>
-        </item>
-       </layout>
-      </item>
       <item>
        <widget class="QCheckBox" name="checkBoxUseCodeModel">
         <property name="toolTip">
diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp
index b030e44977f0abe3bba41ea6b6f8e19e7eb2118a..6683a6bad6557cf26fc921e2fcaed0ba4ee4cccb 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.cpp
+++ b/src/plugins/debugger/gdb/gdboptionspage.cpp
@@ -4,6 +4,7 @@
 
 #include <coreplugin/icore.h>
 #include <QtCore/QCoreApplication>
+#include <QtCore/QTextStream>
 
 const char * const GDB_SETTINGS_ID = QT_TRANSLATE_NOOP("Debugger::Internal::GdbOptionsPage", "Gdb");
 
@@ -73,6 +74,13 @@ QWidget *GdbOptionsPage::createPage(QWidget *parent)
     m_ui.environmentEdit->hide();
     m_ui.labelEnvironment->hide();
 
+    if (m_searchKeywords.isEmpty()) {
+        // TODO: Add breakpoints, environment?
+        QTextStream(&m_searchKeywords) << ' ' << m_ui.labelGdbLocation->text()
+                << ' ' << m_ui.labelEnvironment->text()
+                << ' ' << m_ui.labelGdbStartupScript->text();
+        m_searchKeywords.remove(QLatin1Char('&'));
+    }
     return w;
 }
 void GdbOptionsPage::apply()
@@ -85,5 +93,10 @@ void GdbOptionsPage::finish()
     m_group.finish();
 }
 
+bool GdbOptionsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 } // namespace Internal
 } // namespace Debugger
diff --git a/src/plugins/debugger/gdb/gdboptionspage.h b/src/plugins/debugger/gdb/gdboptionspage.h
index 2a86e9501407b93faa0e0ff97743b3b10e781998..3510cbb99865891b6b7b85676aa0f250804d4bd2 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.h
+++ b/src/plugins/debugger/gdb/gdboptionspage.h
@@ -23,12 +23,14 @@ public:
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
     virtual void finish();
+    virtual bool matches(const QString &) const;
 
     static QString settingsId();
 
-private:
+private:    
     Ui::GdbOptionsPage m_ui;
     Utils::SavedActionSet m_group;
+    QString m_searchKeywords;
 };
 
 } // namespace Internal
diff --git a/src/plugins/debugger/gdb/gdboptionspage.ui b/src/plugins/debugger/gdb/gdboptionspage.ui
index 01900e9763248b411234360f70c5349d63c65628..15ee247cd6aa9b4383335ea301f73d5ea5a3ac73 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.ui
+++ b/src/plugins/debugger/gdb/gdboptionspage.ui
@@ -2,30 +2,22 @@
 <ui version="4.0">
  <class>GdbOptionsPage</class>
  <widget class="QWidget" name="GdbOptionsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>429</width>
-    <height>452</height>
-   </rect>
-  </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QGroupBox" name="groupBoxLocations">
      <property name="title">
       <string>Gdb interaction</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout_3">
-      <property name="margin">
-       <number>9</number>
+     <layout class="QFormLayout" name="formLayout">
+      <property name="horizontalSpacing">
+       <number>6</number>
       </property>
-      <property name="spacing">
+      <property name="verticalSpacing">
        <number>6</number>
       </property>
-      <item row="1" column="1">
-       <widget class="QLineEdit" name="environmentEdit"/>
-      </item>
+      <property name="margin">
+       <number>9</number>
+      </property>
       <item row="0" column="0">
        <widget class="QLabel" name="labelGdbLocation">
         <property name="toolTip">
@@ -36,6 +28,9 @@
         </property>
        </widget>
       </item>
+      <item row="0" column="1">
+       <widget class="Utils::PathChooser" name="gdbLocationChooser"/>
+      </item>
       <item row="1" column="0">
        <widget class="QLabel" name="labelEnvironment">
         <property name="text">
@@ -46,6 +41,9 @@
         </property>
        </widget>
       </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="environmentEdit"/>
+      </item>
       <item row="2" column="0">
        <widget class="QLabel" name="labelGdbStartupScript">
         <property name="toolTip">
@@ -57,10 +55,7 @@
        </widget>
       </item>
       <item row="2" column="1">
-       <widget class="Utils::PathChooser" name="scriptFileChooser" native="true"/>
-      </item>
-      <item row="0" column="1">
-       <widget class="Utils::PathChooser" name="gdbLocationChooser" native="true"/>
+       <widget class="Utils::PathChooser" name="scriptFileChooser"/>
       </item>
      </layout>
     </widget>
@@ -133,6 +128,9 @@
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::MinimumExpanding</enum>
+     </property>
      <property name="sizeHint" stdset="0">
       <size>
        <width>10</width>
diff --git a/src/plugins/debugger/gdb/trkoptionspage.cpp b/src/plugins/debugger/gdb/trkoptionspage.cpp
index 1a7c8a91c9671d928cb5bf200f8e895a7d730f6e..5a5501903c1d071a99aa5546a85a975cef1a5755 100644
--- a/src/plugins/debugger/gdb/trkoptionspage.cpp
+++ b/src/plugins/debugger/gdb/trkoptionspage.cpp
@@ -76,6 +76,8 @@ QWidget *TrkOptionsPage::createPage(QWidget *parent)
     if (!m_widget)
         m_widget = new TrkOptionsWidget(parent);
     m_widget->setTrkOptions(*m_options);
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -94,5 +96,10 @@ void TrkOptionsPage::finish()
 {
 }
 
+bool TrkOptionsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 } // namespace Internal
 } // namespace Designer
diff --git a/src/plugins/debugger/gdb/trkoptionspage.h b/src/plugins/debugger/gdb/trkoptionspage.h
index 1d33ab954f5cd1f19c651488261e66f38f5b6b39..d9badcfa212699ded97ae82c3fa06f08580ea142 100644
--- a/src/plugins/debugger/gdb/trkoptionspage.h
+++ b/src/plugins/debugger/gdb/trkoptionspage.h
@@ -60,11 +60,13 @@ public:
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
     virtual void finish();
+    virtual bool matches(const QString &) const;
 
     static QString settingsId();
 private:
     const TrkOptionsPtr m_options;
     QPointer<TrkOptionsWidget> m_widget;
+    QString m_searchKeywords;
 };
 
 } // namespace Internal
diff --git a/src/plugins/debugger/gdb/trkoptionswidget.cpp b/src/plugins/debugger/gdb/trkoptionswidget.cpp
index d61014a58774c5d8cb569c6862c6326e3758be67..5a872471550c7f4359ff431c149c5cf6f0b4938e 100644
--- a/src/plugins/debugger/gdb/trkoptionswidget.cpp
+++ b/src/plugins/debugger/gdb/trkoptionswidget.cpp
@@ -32,6 +32,8 @@
 #include "debuggerconstants.h"
 #include "ui_trkoptionswidget.h"
 
+#include <QtCore/QTextStream>
+
 namespace Debugger {
 namespace Internal {
 
@@ -88,5 +90,14 @@ TrkOptions TrkOptionsWidget::trkOptions() const
     return rc;
 }
 
+QString TrkOptionsWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc)  << ui->gdbLabel->text()  << ' ' << ui->serialLabel->text()
+            << ' ' << ui->blueToothLabel->text();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
 } // namespace Internal
 } // namespace Designer
diff --git a/src/plugins/debugger/gdb/trkoptionswidget.h b/src/plugins/debugger/gdb/trkoptionswidget.h
index 25ca593dbb1f55e8241369b83ae046844c193e4a..11280add72e680eca98da506c59a7d4d41317856 100644
--- a/src/plugins/debugger/gdb/trkoptionswidget.h
+++ b/src/plugins/debugger/gdb/trkoptionswidget.h
@@ -50,6 +50,8 @@ public:
     void setTrkOptions(const TrkOptions &);
     TrkOptions trkOptions() const;
 
+    QString searchKeywords() const;
+
 protected:
     void changeEvent(QEvent *e);
 
diff --git a/src/plugins/designer/cpp/cppsettingspage.cpp b/src/plugins/designer/cpp/cppsettingspage.cpp
index 26111a761901c8a2b3484c0f880ec855d6315cea..66122e7f69eeef5cfe769284b6eb6ba71b5addc1 100644
--- a/src/plugins/designer/cpp/cppsettingspage.cpp
+++ b/src/plugins/designer/cpp/cppsettingspage.cpp
@@ -31,6 +31,7 @@
 #include "designerconstants.h"
 
 #include <QtCore/QCoreApplication>
+#include <QtCore/QTextStream>
 #include <coreplugin/icore.h>
 
 namespace Designer {
@@ -84,6 +85,18 @@ void CppSettingsPageWidget::setUiEmbedding(int v)
     }
 }
 
+QString CppSettingsPageWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc) << m_ui.ptrAggregationRadioButton->text()
+            << ' ' << m_ui.aggregationButton->text()
+            << ' ' << m_ui.multipleInheritanceButton->text()
+            << ' ' << m_ui.retranslateCheckBox->text()
+            << ' ' << m_ui.includeQtModuleCheckBox->text();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
 // ---------- CppSettingsPage
 CppSettingsPage::CppSettingsPage(QObject *parent) : Core::IOptionsPage(parent)
 {
@@ -114,6 +127,8 @@ QWidget *CppSettingsPage::createPage(QWidget *parent)
 {
     m_widget = new CppSettingsPageWidget(parent);
     m_widget->setParameters(m_parameters);
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -132,5 +147,10 @@ void CppSettingsPage::finish()
 {
 }
 
+bool CppSettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 } // namespace Internal
 } // namespace Designer
diff --git a/src/plugins/designer/cpp/cppsettingspage.h b/src/plugins/designer/cpp/cppsettingspage.h
index dc42fc6952ec9f34c7606f21f76bc27c9b4dd7c4..57fc9f160bbf2b12778a0b4039b9b52859a83eeb 100644
--- a/src/plugins/designer/cpp/cppsettingspage.h
+++ b/src/plugins/designer/cpp/cppsettingspage.h
@@ -49,6 +49,8 @@ public:
     FormClassWizardGenerationParameters parameters() const;
     void setParameters(const FormClassWizardGenerationParameters &p);
 
+    QString searchKeywords() const;
+
 private:
     int uiEmbedding() const;
     void setUiEmbedding(int);
@@ -69,10 +71,12 @@ public:
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
     virtual void finish();
+    virtual bool matches(const QString &s) const;
 
 private:
     QPointer<CppSettingsPageWidget> m_widget;
     FormClassWizardGenerationParameters m_parameters;
+    QString m_searchKeywords;
 };
 
 } // namespace Internal
diff --git a/src/plugins/designer/cpp/cppsettingspagewidget.ui b/src/plugins/designer/cpp/cppsettingspagewidget.ui
index b06c43da415f7dc629cf9972b83161b57804771d..1e2b089d0a86dde89ee9a4fad6196c09f0bcfc77 100644
--- a/src/plugins/designer/cpp/cppsettingspagewidget.ui
+++ b/src/plugins/designer/cpp/cppsettingspagewidget.ui
@@ -2,103 +2,81 @@
 <ui version="4.0">
  <class>Designer::Internal::CppSettingsPageWidget</class>
  <widget class="QWidget" name="Designer::Internal::CppSettingsPageWidget">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>526</width>
-    <height>369</height>
-   </rect>
-  </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QHBoxLayout" name="horizontalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_3">
    <item>
-    <layout class="QVBoxLayout" name="verticalLayout_3">
-     <item>
-      <widget class="QGroupBox" name="uiclassGroupBox">
-       <property name="title">
-        <string>Embedding of the UI Class</string>
-       </property>
-       <property name="checkable">
-        <bool>false</bool>
-       </property>
-       <layout class="QVBoxLayout" name="verticalLayout">
-        <item>
-         <widget class="QRadioButton" name="ptrAggregationRadioButton">
-          <property name="text">
-           <string>Aggregation as a pointer member</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QRadioButton" name="aggregationButton">
-          <property name="text">
-           <string>Aggregation</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QRadioButton" name="multipleInheritanceButton">
-          <property name="text">
-           <string>Multiple Inheritance</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-       <zorder>aggregationButton</zorder>
-       <zorder>multipleInheritanceButton</zorder>
-       <zorder>ptrAggregationRadioButton</zorder>
-      </widget>
-     </item>
-     <item>
-      <widget class="QGroupBox" name="codeGenerationGroupBox">
-       <property name="title">
-        <string>Code Generation</string>
-       </property>
-       <layout class="QVBoxLayout" name="verticalLayout_2">
-        <item>
-         <widget class="QCheckBox" name="retranslateCheckBox">
-          <property name="text">
-           <string>Support for changing languages at runtime</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QCheckBox" name="includeQtModuleCheckBox">
-          <property name="text">
-           <string>Use Qt module name in #include-directive</string>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-     <item>
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
+    <widget class="QGroupBox" name="uiclassGroupBox">
+     <property name="title">
+      <string>Embedding of the UI Class</string>
+     </property>
+     <property name="checkable">
+      <bool>false</bool>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QRadioButton" name="ptrAggregationRadioButton">
+        <property name="text">
+         <string>Aggregation as a pointer member</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="aggregationButton">
+        <property name="text">
+         <string>Aggregation</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QRadioButton" name="multipleInheritanceButton">
+        <property name="text">
+         <string>Multiple Inheritance</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+     <zorder>aggregationButton</zorder>
+     <zorder>multipleInheritanceButton</zorder>
+     <zorder>ptrAggregationRadioButton</zorder>
+    </widget>
    </item>
    <item>
-    <spacer name="horizontalSpacer">
+    <widget class="QGroupBox" name="codeGenerationGroupBox">
+     <property name="title">
+      <string>Code Generation</string>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <widget class="QCheckBox" name="retranslateCheckBox">
+        <property name="text">
+         <string>Support for changing languages at runtime</string>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <widget class="QCheckBox" name="includeQtModuleCheckBox">
+        <property name="text">
+         <string>Use Qt module name in #include-directive</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::MinimumExpanding</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>169</width>
-       <height>20</height>
+       <width>0</width>
+       <height>0</height>
       </size>
      </property>
     </spacer>
diff --git a/src/plugins/fakevim/fakevimoptions.ui b/src/plugins/fakevim/fakevimoptions.ui
index 2f3d6f674a78d116de00ec3f16f61cd65e08705f..7ce297d46ce03adba28f03e4e9e49c64d9d871a9 100644
--- a/src/plugins/fakevim/fakevimoptions.ui
+++ b/src/plugins/fakevim/fakevimoptions.ui
@@ -6,197 +6,213 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>394</width>
-    <height>322</height>
+    <width>519</width>
+    <height>392</height>
    </rect>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
-   <item>
-    <widget class="QCheckBox" name="checkBoxUseFakeVim">
-     <property name="text">
-      <string>Use FakeVim</string>
-     </property>
-    </widget>
-   </item>
+  <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
     <widget class="QGroupBox" name="groupBox">
      <property name="title">
       <string>Vim style settings</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="2" column="0">
-       <widget class="QLabel" name="labelExpandTab">
-        <property name="toolTip">
-         <string>vim's &quot;expandtab&quot; option</string>
-        </property>
-        <property name="text">
-         <string>Expand tabulators:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="QCheckBox" name="checkBoxExpandTab">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="labelHlSearch">
-        <property name="text">
-         <string>Highlight search results:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="QCheckBox" name="checkBoxHlSearch">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="0">
-       <widget class="QLabel" name="labelShiftWidth">
-        <property name="text">
-         <string>Shift width:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="1">
-       <widget class="QLineEdit" name="lineEditShiftWidth"/>
-      </item>
-      <item row="6" column="0">
-       <widget class="QLabel" name="labelSmartTab">
-        <property name="text">
-         <string>Smart tabulators:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="6" column="1">
-       <widget class="QCheckBox" name="checkBoxSmartTab">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="7" column="0">
-       <widget class="QLabel" name="labelStartOfLine">
-        <property name="text">
-         <string>Start of line:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="7" column="1">
-       <widget class="QCheckBox" name="checkBoxStartOfLine">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="8" column="0">
-       <widget class="QLabel" name="label_2">
-        <property name="toolTip">
-         <string>vim's &quot;tabstop&quot; option</string>
-        </property>
-        <property name="text">
-         <string>Tabulator size:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="8" column="1">
-       <widget class="QLineEdit" name="lineEditTabStop"/>
-      </item>
-      <item row="9" column="0">
-       <widget class="QLabel" name="labelBackspace">
-        <property name="text">
-         <string>Backspace:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="9" column="1">
-       <widget class="QLineEdit" name="lineEditBackspace"/>
-      </item>
-      <item row="0" column="1">
-       <widget class="QCheckBox" name="checkBoxAutoIndent">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
-      <item row="0" column="0">
-       <widget class="QLabel" name="labelAutoIndent">
-        <property name="toolTip">
-         <string>VIM's &quot;autoindent&quot; option</string>
-        </property>
-        <property name="text">
-         <string>Automatic indentation:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="0">
-       <widget class="QLabel" name="labelIncSearch">
-        <property name="text">
-         <string>Incremental search:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="4" column="1">
-       <widget class="QCheckBox" name="checkBoxIncSearch">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <layout class="QFormLayout" name="formLayout">
+        <item row="0" column="0">
+         <widget class="QLabel" name="labelAutoIndent">
+          <property name="toolTip">
+           <string>VIM's &quot;autoindent&quot; option</string>
+          </property>
+          <property name="text">
+           <string>Automatic indentation:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="1">
+         <widget class="QCheckBox" name="checkBoxAutoIndent">
+          <property name="text">
+           <string/>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="0">
+         <widget class="QLabel" name="labelExpandTab">
+          <property name="toolTip">
+           <string>vim's &quot;expandtab&quot; option</string>
+          </property>
+          <property name="text">
+           <string>Expand tabulators:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="1">
+         <widget class="QCheckBox" name="checkBoxExpandTab">
+          <property name="text">
+           <string/>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="0">
+         <widget class="QLabel" name="labelHlSearch">
+          <property name="text">
+           <string>Highlight search results:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="1">
+         <widget class="QCheckBox" name="checkBoxHlSearch">
+          <property name="text">
+           <string/>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="0">
+         <widget class="QLabel" name="labelIncSearch">
+          <property name="text">
+           <string>Incremental search:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="1">
+         <widget class="QCheckBox" name="checkBoxIncSearch">
+          <property name="text">
+           <string/>
+          </property>
+         </widget>
+        </item>
+        <item row="4" column="0">
+         <widget class="QLabel" name="labelShiftWidth">
+          <property name="text">
+           <string>Shift width:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="4" column="1">
+         <widget class="QLineEdit" name="lineEditShiftWidth"/>
+        </item>
+        <item row="5" column="0">
+         <widget class="QLabel" name="labelSmartTab">
+          <property name="text">
+           <string>Smart tabulators:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="5" column="1">
+         <widget class="QCheckBox" name="checkBoxSmartTab">
+          <property name="text">
+           <string/>
+          </property>
+         </widget>
+        </item>
+        <item row="6" column="0">
+         <widget class="QLabel" name="labelStartOfLine">
+          <property name="text">
+           <string>Start of line:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="6" column="1">
+         <widget class="QCheckBox" name="checkBoxStartOfLine">
+          <property name="text">
+           <string/>
+          </property>
+         </widget>
+        </item>
+        <item row="7" column="0">
+         <widget class="QLabel" name="tabulatorLabel">
+          <property name="toolTip">
+           <string>vim's &quot;tabstop&quot; option</string>
+          </property>
+          <property name="text">
+           <string>Tabulator size:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="7" column="1">
+         <widget class="QLineEdit" name="lineEditTabStop"/>
+        </item>
+        <item row="8" column="0">
+         <widget class="QLabel" name="labelBackspace">
+          <property name="text">
+           <string>Backspace:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="8" column="1">
+         <widget class="QLineEdit" name="lineEditBackspace"/>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <spacer name="verticalSpacer">
+        <property name="orientation">
+         <enum>Qt::Vertical</enum>
+        </property>
+        <property name="sizeType">
+         <enum>QSizePolicy::Fixed</enum>
+        </property>
+        <property name="sizeHint" stdset="0">
+         <size>
+          <width>17</width>
+          <height>10</height>
+         </size>
+        </property>
+       </spacer>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <item>
+         <widget class="QPushButton" name="pushButtonCopyTextEditorSettings">
+          <property name="text">
+           <string>Copy text editor settings</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="pushButtonSetQtStyle">
+          <property name="text">
+           <string>Set Qt style</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QPushButton" name="pushButtonSetPlainStyle">
+          <property name="text">
+           <string>Set plain style</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <spacer name="horizontalSpacer">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+       </layout>
       </item>
      </layout>
     </widget>
    </item>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <widget class="QPushButton" name="pushButtonCopyTextEditorSettings">
-       <property name="text">
-        <string>Copy text editor settings</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="pushButtonSetQtStyle">
-       <property name="text">
-        <string>Set Qt style</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <widget class="QPushButton" name="pushButtonSetPlainStyle">
-       <property name="text">
-        <string>Set plain style</string>
-       </property>
-      </widget>
-     </item>
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer">
+    <spacer name="verticalSpacer_2">
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
        <width>20</width>
-       <height>1</height>
+       <height>40</height>
       </size>
      </property>
     </spacer>
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index 4246e1d1335f29ccf87fcdb27cbeeb67820d2d7d..a81fb767872e059f2e2065463182c4e5af92b246 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -68,6 +68,7 @@
 #include <QtCore/QObject>
 #include <QtCore/QPoint>
 #include <QtCore/QSettings>
+#include <QtCore/QTextStream>
 
 #include <QtGui/QMessageBox>
 #include <QtGui/QPlainTextEdit>
@@ -118,6 +119,7 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(ICore::instance()->settings()); }
     void finish() { m_group.finish(); }
+    virtual bool matches(const QString &) const;
 
 private slots:
     void copyTextEditorSettings();
@@ -127,7 +129,7 @@ private slots:
 private:
     friend class DebuggerPlugin;
     Ui::FakeVimOptionPage m_ui;
-
+    QString m_searchKeywords;
     Utils::SavedActionSet m_group;
 };
 
@@ -138,7 +140,7 @@ QWidget *FakeVimOptionPage::createPage(QWidget *parent)
 
     m_group.clear();
     m_group.insert(theFakeVimSetting(ConfigUseFakeVim), 
-        m_ui.checkBoxUseFakeVim);
+        m_ui.groupBox);
 
     m_group.insert(theFakeVimSetting(ConfigExpandTab), 
         m_ui.checkBoxExpandTab);
@@ -167,7 +169,15 @@ QWidget *FakeVimOptionPage::createPage(QWidget *parent)
         this, SLOT(setQtStyle()));
     connect(m_ui.pushButtonSetPlainStyle, SIGNAL(clicked()),
         this, SLOT(setPlainStyle()));
-
+    if (m_searchKeywords.isEmpty()) {
+        QTextStream(&m_searchKeywords)
+           << ' ' << m_ui.labelAutoIndent->text()  << ' ' << m_ui.labelExpandTab->text()
+           << ' ' << m_ui.labelHlSearch->text()    << ' ' << m_ui.labelIncSearch->text()
+           << ' ' << m_ui.labelShiftWidth->text()  << ' ' << m_ui.labelSmartTab->text()
+           << ' ' << m_ui.labelStartOfLine->text() << ' ' << m_ui.tabulatorLabel->text()
+           << ' ' << m_ui.labelBackspace->text();
+        m_searchKeywords.remove(QLatin1Char('&'));
+    }
     return w;
 }
 
@@ -188,25 +198,32 @@ void FakeVimOptionPage::copyTextEditorSettings()
 void FakeVimOptionPage::setQtStyle()
 {
     m_ui.checkBoxExpandTab->setChecked(true);
-    m_ui.lineEditTabStop->setText("4");
-    m_ui.lineEditShiftWidth->setText("4");
+    const QString four = QString(QLatin1Char('4'));
+    m_ui.lineEditTabStop->setText(four);
+    m_ui.lineEditShiftWidth->setText(four);
     m_ui.checkBoxSmartTab->setChecked(true);
     m_ui.checkBoxAutoIndent->setChecked(true);
     m_ui.checkBoxIncSearch->setChecked(true);
-    m_ui.lineEditBackspace->setText("indent,eol,start");
+    m_ui.lineEditBackspace->setText(QLatin1String("indent,eol,start"));
 }
 
 void FakeVimOptionPage::setPlainStyle()
 {
     m_ui.checkBoxExpandTab->setChecked(false);
-    m_ui.lineEditTabStop->setText("8");
-    m_ui.lineEditShiftWidth->setText("8");
+    const QString eight = QString(QLatin1Char('4'));
+    m_ui.lineEditTabStop->setText(eight);
+    m_ui.lineEditShiftWidth->setText(eight);
     m_ui.checkBoxSmartTab->setChecked(false);
     m_ui.checkBoxAutoIndent->setChecked(false);
     m_ui.checkBoxIncSearch->setChecked(false);
     m_ui.lineEditBackspace->setText(QString());
 }
 
+bool FakeVimOptionPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 } // namespace Internal
 } // namespace FakeVim
 
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index 9060bdd76201d4032600b9cf066e91294f4587d1..56094f39943532bc09885fdb099ba7142695607b 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -36,6 +36,7 @@
 #include <QtCore/QCoreApplication>
 #include <QtCore/QFileInfo>
 #include <QtCore/QDebug>
+#include <QtCore/QTextStream>
 #include <QtGui/QMessageBox>
 
 namespace Git {
@@ -75,8 +76,21 @@ void SettingsPageWidget::setSystemPath()
     m_ui.pathLineEdit->setText(QLatin1String(qgetenv("PATH")));
 }
 
+QString SettingsPageWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc) << ' ' << m_ui.pathlabel->text()  <<  ' ' << m_ui.logCountLabel->text()
+        << ' ' << m_ui.timeoutLabel->text()
+        << ' ' << m_ui.promptToSubmitCheckBox->text()
+        << ' ' << m_ui.omitAnnotationDataCheckBox->text()
+        << ' ' << m_ui.environmentGroupBox->title();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
 // -------- SettingsPage
-SettingsPage::SettingsPage()
+SettingsPage::SettingsPage() :
+    m_widget(0)
 {
 }
 
@@ -104,6 +118,8 @@ QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
     m_widget->setSettings(GitPlugin::instance()->settings());
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -121,5 +137,11 @@ void SettingsPage::apply()
 
     GitPlugin::instance()->setSettings(newSettings);
 }
+
+bool SettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 }
 }
diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h
index b6ed3c7bddbe6c436aa1ec9a50b6897ebc9d85d6..c559c982c0a5b094c52f2192145fdea8e48a20dd 100644
--- a/src/plugins/git/settingspage.h
+++ b/src/plugins/git/settingspage.h
@@ -54,6 +54,8 @@ public:
     GitSettings settings() const;
     void setSettings(const GitSettings &);
 
+    QString searchKeywords() const;
+
 private slots:
     void setSystemPath();
 
@@ -76,8 +78,10 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &) const;
 
 private:
+    QString m_searchKeywords;
     SettingsPageWidget* m_widget;
 };
 
diff --git a/src/plugins/git/settingspage.ui b/src/plugins/git/settingspage.ui
index b5fdc24a589cc240a1754c4bedfd5b4cf0f21b7e..a6b27926c1e594d6af110c27ea0904df5f19c032 100644
--- a/src/plugins/git/settingspage.ui
+++ b/src/plugins/git/settingspage.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>409</width>
-    <height>251</height>
+    <height>279</height>
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
@@ -66,59 +66,64 @@
     </widget>
    </item>
    <item>
-    <layout class="QFormLayout" name="formLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="logCountLabel">
-       <property name="text">
-        <string>Log commit display count:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QSpinBox" name="logCountSpinBox">
-       <property name="toolTip">
-        <string>Note that huge amount of commits might take some time.</string>
-       </property>
-       <property name="maximum">
-        <number>1000</number>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="timeoutLabel">
-       <property name="text">
-        <string>Timeout (seconds):</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QSpinBox" name="timeoutSpinBox">
-       <property name="minimum">
-        <number>10</number>
-       </property>
-       <property name="maximum">
-        <number>300</number>
-       </property>
-       <property name="value">
-        <number>30</number>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0" colspan="2">
-      <widget class="QCheckBox" name="promptToSubmitCheckBox">
-       <property name="text">
-        <string>Prompt to submit</string>
-       </property>
-      </widget>
-     </item>
-     <item row="3" column="0" colspan="2">
-      <widget class="QCheckBox" name="omitAnnotationDataCheckBox">
-       <property name="text">
-        <string>Omit date from annotation output</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
+    <widget class="QGroupBox" name="groupBox">
+     <property name="title">
+      <string>Miscellaneous</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout">
+      <item row="0" column="0">
+       <widget class="QLabel" name="logCountLabel">
+        <property name="text">
+         <string>Log commit display count:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QSpinBox" name="logCountSpinBox">
+        <property name="toolTip">
+         <string>Note that huge amount of commits might take some time.</string>
+        </property>
+        <property name="maximum">
+         <number>1000</number>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="timeoutLabel">
+        <property name="text">
+         <string>Timeout (seconds):</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QSpinBox" name="timeoutSpinBox">
+        <property name="minimum">
+         <number>10</number>
+        </property>
+        <property name="maximum">
+         <number>300</number>
+        </property>
+        <property name="value">
+         <number>30</number>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="0" colspan="2">
+       <widget class="QCheckBox" name="promptToSubmitCheckBox">
+        <property name="text">
+         <string>Prompt on submit</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="0" colspan="2">
+       <widget class="QCheckBox" name="omitAnnotationDataCheckBox">
+        <property name="text">
+         <string>Omit date from annotation output</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
    </item>
    <item>
     <spacer name="verticalSpacer">
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp
index 8ff6eef1615b9e6276f8274fddf61471e957ec21..78c0a5524478a1c0638b5d00961bd90e7052ca2f 100644
--- a/src/plugins/help/docsettingspage.cpp
+++ b/src/plugins/help/docsettingspage.cpp
@@ -75,7 +75,8 @@ QWidget *DocSettingsPage::createPage(QWidget *parent)
     m_ui.docsListWidget->addItems(m_helpEngine->registeredDocumentations());
     m_registeredDocs = false;
     m_removeDocs.clear();
-
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_ui.groupBox->title();
     return w;
 }
 
@@ -126,6 +127,11 @@ void DocSettingsPage::apply()
     emit dialogAccepted();
 }
 
+bool DocSettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 bool DocSettingsPage::applyChanges()
 {
     QStringList::const_iterator it = m_removeDocs.constBegin();
diff --git a/src/plugins/help/docsettingspage.h b/src/plugins/help/docsettingspage.h
index 47bdd2a0f8da111da5b947a583171a49a6adcfdc..1a620036fca9007462f353fdc0896a792650d274 100644
--- a/src/plugins/help/docsettingspage.h
+++ b/src/plugins/help/docsettingspage.h
@@ -56,6 +56,7 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &s) const;
 
     bool applyChanges();
 
@@ -72,6 +73,7 @@ private:
     bool m_registeredDocs;
     QStringList m_removeDocs;
     Ui::DocSettingsPage m_ui;
+    QString m_searchKeywords;
 };
 
 } // namespace Help
diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp
index d688b075013ffba75e6b9ac83e71d5eaf337249c..1e1e96057299248c8b9afa245b6554ccf9c1589b 100644
--- a/src/plugins/help/filtersettingspage.cpp
+++ b/src/plugins/help/filtersettingspage.cpp
@@ -78,6 +78,9 @@ QWidget *FilterSettingsPage::createPage(QWidget *parent)
         SLOT(removeFilter()));
     updateFilterPage();
 
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_ui.filterGroupBox->title() + QLatin1Char(' ') + m_ui.attributesGroupBox->title();
+
     return m_currentPage;
 }
 
@@ -220,3 +223,10 @@ bool FilterSettingsPage::applyChanges()
     }
     return false;
 }
+
+bool FilterSettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
+
diff --git a/src/plugins/help/filtersettingspage.h b/src/plugins/help/filtersettingspage.h
index d8d922bf4c5ff86407ea93276af40b9001348445..9169c191c72498a847b6bd735196faaa80f143fa 100644
--- a/src/plugins/help/filtersettingspage.h
+++ b/src/plugins/help/filtersettingspage.h
@@ -55,6 +55,7 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &s) const;
 
     bool applyChanges();
 
@@ -72,6 +73,7 @@ private:
     QMap<QString, QStringList> m_filterMap;
     QStringList m_removedFilters;
     QWidget *m_currentPage;
+    QString m_searchKeywords;
 };
 
 } // namespace Help
diff --git a/src/plugins/help/filtersettingspage.ui b/src/plugins/help/filtersettingspage.ui
index 704f6f965e9b3f6936de220736db5e2b690ad4a6..f22c690b51d0a04ecd094c8a95cede85848f7a02 100644
--- a/src/plugins/help/filtersettingspage.ui
+++ b/src/plugins/help/filtersettingspage.ui
@@ -12,9 +12,9 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
+    <layout class="QHBoxLayout" name="mainHorizontalLayout">
      <item>
-      <widget class="QGroupBox" name="groupBox">
+      <widget class="QGroupBox" name="filterGroupBox">
        <property name="title">
         <string>Filters</string>
        </property>
@@ -26,7 +26,7 @@
       </widget>
      </item>
      <item>
-      <widget class="QGroupBox" name="groupBox_2">
+      <widget class="QGroupBox" name="attributesGroupBox">
        <property name="title">
         <string>Attributes</string>
        </property>
@@ -55,7 +55,7 @@
     </layout>
    </item>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
+    <layout class="QHBoxLayout" name="buttonHorizontalLayout">
      <item>
       <widget class="QPushButton" name="filterAddButton">
        <property name="text">
@@ -71,7 +71,7 @@
       </widget>
      </item>
      <item>
-      <spacer name="horizontalSpacer">
+      <spacer name="buttonHorizontalSpacer">
        <property name="orientation">
         <enum>Qt::Horizontal</enum>
        </property>
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 6076532d8cea1f5f7f6d5c9d5e1e07c4799e2628..3c0257c8e7cf7ee915c80ab20bdac3c6543cb67f 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -127,6 +127,12 @@ QWidget *GeneralSettingsPage::createPage(QWidget *parent)
     connect(m_ui.importButton, SIGNAL(clicked()), this, SLOT(importBookmarks()));
     connect(m_ui.exportButton, SIGNAL(clicked()), this, SLOT(exportBookmarks()));
 
+    if (m_searchKeywords.isEmpty()) {
+        QTextStream(&m_searchKeywords) << ' ' << m_ui.contextHelpLabel->text()
+           << ' ' << m_ui.startPageLabel->text() << ' ' << m_ui.homePageLabel->text()
+           << ' ' << m_ui.bookmarkGroupBox->title();
+        m_searchKeywords.remove(QLatin1Char('&'));
+    }
     return m_currentPage;
 }
 
@@ -324,3 +330,8 @@ int GeneralSettingsPage::closestPointSizeIndex(int desiredPointSize) const
     }
     return closestIndex;
 }
+
+bool GeneralSettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/help/generalsettingspage.h b/src/plugins/help/generalsettingspage.h
index be347b4102bc2b821fa5d55eff7480dfc8de27ee..5ecfbaf2d72bb4f6e96ffac73c21f5d5a6a89202 100644
--- a/src/plugins/help/generalsettingspage.h
+++ b/src/plugins/help/generalsettingspage.h
@@ -63,6 +63,7 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish();
+    virtual bool matches(const QString &s) const;
 
 signals:
     void fontChanged();
@@ -90,6 +91,7 @@ private:
     QFontDatabase fontDatabase;
 
     Ui::GeneralSettingsPage m_ui;
+    QString m_searchKeywords;
 };
 
     }   // Internal
diff --git a/src/plugins/help/generalsettingspage.ui b/src/plugins/help/generalsettingspage.ui
index 5987bbfdfaa175f7eefa01a8ea1ddf05ee1df3a0..8d55f9b0e171feab704940dcb6650f02cf195a30 100644
--- a/src/plugins/help/generalsettingspage.ui
+++ b/src/plugins/help/generalsettingspage.ui
@@ -2,26 +2,18 @@
 <ui version="4.0">
  <class>GeneralSettingsPage</class>
  <widget class="QWidget" name="GeneralSettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>593</width>
-    <height>371</height>
-   </rect>
-  </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_3">
    <item>
-    <widget class="QGroupBox" name="groupBox">
+    <widget class="QGroupBox" name="fontGroupBox">
      <property name="title">
       <string>Font</string>
      </property>
      <layout class="QHBoxLayout" name="horizontalLayout_3">
       <item>
-       <widget class="QLabel" name="label_5">
+       <widget class="QLabel" name="familyLabel">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
@@ -53,7 +45,7 @@
        </spacer>
       </item>
       <item>
-       <widget class="QLabel" name="label_7">
+       <widget class="QLabel" name="styleLabel">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
@@ -92,7 +84,7 @@
        </spacer>
       </item>
       <item>
-       <widget class="QLabel" name="label_6">
+       <widget class="QLabel" name="sizeLabel">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
@@ -131,7 +123,7 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox_2">
+    <widget class="QGroupBox" name="startupGroupBox">
      <property name="enabled">
       <bool>true</bool>
      </property>
@@ -140,9 +132,9 @@
      </property>
      <layout class="QVBoxLayout" name="verticalLayout">
       <item>
-       <layout class="QGridLayout" name="gridLayout">
+       <layout class="QFormLayout" name="startupFormLayout">
         <item row="0" column="0">
-         <widget class="QLabel" name="label_3">
+         <widget class="QLabel" name="contextHelpLabel">
           <property name="sizePolicy">
            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
             <horstretch>0</horstretch>
@@ -179,21 +171,8 @@
           </item>
          </widget>
         </item>
-        <item row="0" column="2">
-         <spacer name="horizontalSpacer_3">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>40</width>
-            <height>20</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
         <item row="1" column="0">
-         <widget class="QLabel" name="label_2">
+         <widget class="QLabel" name="startPageLabel">
           <property name="sizePolicy">
            <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
             <horstretch>0</horstretch>
@@ -230,18 +209,14 @@
           </item>
          </widget>
         </item>
-       </layout>
-      </item>
-      <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_4">
-        <item>
-         <widget class="QLabel" name="label">
+        <item row="2" column="0">
+         <widget class="QLabel" name="homePageLabel">
           <property name="text">
            <string>Home Page:</string>
           </property>
          </widget>
         </item>
-        <item>
+        <item row="2" column="1">
          <widget class="QLineEdit" name="homePageLineEdit"/>
         </item>
        </layout>
@@ -288,13 +263,13 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox_3">
+    <widget class="QGroupBox" name="bookmarkGroupBox">
      <property name="title">
       <string>Help Bookmarks</string>
      </property>
      <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
+       <layout class="QHBoxLayout" name="bookmarkHorizontalLayout">
         <item>
          <spacer name="horizontalSpacer_4">
           <property name="orientation">
@@ -363,9 +338,6 @@
           </disabled>
          </palette>
         </property>
-        <property name="text">
-         <string/>
-        </property>
        </widget>
       </item>
      </layout>
@@ -376,10 +348,13 @@
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::MinimumExpanding</enum>
+     </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>20</width>
-       <height>126</height>
+       <width>0</width>
+       <height>0</height>
       </size>
      </property>
     </spacer>
diff --git a/src/plugins/locator/settingspage.cpp b/src/plugins/locator/settingspage.cpp
index 99453132fe1926070eee486254c57f7a2885f83b..6697fd8603fcd026c3ee0678cecc26b5b4d94e62 100644
--- a/src/plugins/locator/settingspage.cpp
+++ b/src/plugins/locator/settingspage.cpp
@@ -90,6 +90,10 @@ QWidget *SettingsPage::createPage(QWidget *parent)
     m_customFilters = m_plugin->customFilters();
     saveFilterStates();
     updateFilterList();
+    if (m_searchKeywords.isEmpty()) {
+        m_searchKeywords = m_ui.refreshIntervalLabel->text();
+        m_searchKeywords.remove(QLatin1Char('&'));
+    }
     return m_page;
 }
 
@@ -220,3 +224,8 @@ void SettingsPage::removeCustomFilter()
     }
     updateFilterList();
 }
+
+bool SettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/locator/settingspage.h b/src/plugins/locator/settingspage.h
index 1fb55661e0fcf6afdfc042828ef40cf116287d74..414f4864ce9bf7937e384e2a23e5da22df88d81a 100644
--- a/src/plugins/locator/settingspage.h
+++ b/src/plugins/locator/settingspage.h
@@ -63,6 +63,7 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish();
+    virtual bool matches(const QString &) const;
 
 private slots:
     void updateButtonStates();
@@ -85,6 +86,7 @@ private:
     QList<ILocatorFilter *> m_customFilters;
     QList<ILocatorFilter *> m_refreshFilters;
     QHash<ILocatorFilter *, QByteArray> m_filterStates;
+    QString m_searchKeywords;
 };
 
 } // namespace Internal
diff --git a/src/plugins/locator/settingspage.ui b/src/plugins/locator/settingspage.ui
index f2f055c57b68b7e90ef2b745829b0932177bb7ad..3fdc38b88a9a8c73c34d53441d2490c53e805b5b 100644
--- a/src/plugins/locator/settingspage.ui
+++ b/src/plugins/locator/settingspage.ui
@@ -15,10 +15,7 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Configure Filters</string>
-     </property>
+    <widget class="QGroupBox" name="configurationGroupBox">
      <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">
        <widget class="QListWidget" name="filterList">
@@ -77,7 +74,7 @@
    <item>
     <layout class="QHBoxLayout">
      <item>
-      <widget class="QLabel" name="label">
+      <widget class="QLabel" name="refreshIntervalLabel">
        <property name="text">
         <string>Refresh Interval:</string>
        </property>
diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp
index 4fe846f8ead560a129d949123aa999b691742575..dd772e14228514e88ba9fc033ed0c5e5dc2a8523 100644
--- a/src/plugins/perforce/settingspage.cpp
+++ b/src/plugins/perforce/settingspage.cpp
@@ -36,6 +36,7 @@
 #include <QtGui/QApplication>
 #include <QtGui/QLineEdit>
 #include <QtGui/QFileDialog>
+#include <QtCore/QTextStream>
 
 using namespace Perforce::Internal;
 using namespace Utils;
@@ -66,7 +67,7 @@ Settings SettingsPageWidget::settings() const
 {
     Settings  settings;
     settings.p4Command = m_ui.pathChooser->path();
-    settings.defaultEnv = m_ui.defaultCheckBox->isChecked();
+    settings.defaultEnv = !m_ui.environmentGroupBox->isChecked();
     settings.p4Port = m_ui.portLineEdit->text();
     settings.p4User = m_ui.userLineEdit->text();
     settings.p4Client=  m_ui.clientLineEdit->text();
@@ -77,7 +78,7 @@ Settings SettingsPageWidget::settings() const
 void SettingsPageWidget::setSettings(const PerforceSettings &s)
 {
     m_ui.pathChooser->setPath(s.p4Command());
-    m_ui.defaultCheckBox->setChecked(s.defaultEnv());
+    m_ui.environmentGroupBox->setChecked(!s.defaultEnv());
     m_ui.portLineEdit->setText(s.p4Port());
     m_ui.clientLineEdit->setText(s.p4Client());
     m_ui.userLineEdit->setText(s.p4User());
@@ -92,6 +93,17 @@ void SettingsPageWidget::setStatusText(bool ok, const QString &t)
     m_ui.errorLabel->setText(t);
 }
 
+QString SettingsPageWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc) << m_ui.promptToSubmitCheckBox->text()
+            << ' ' << m_ui.commandLabel << m_ui.environmentGroupBox->title()
+            << ' ' << m_ui.clientLabel->text() << ' ' << m_ui.userLabel->text()
+            << ' ' << m_ui.portLabel->text();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
 SettingsPage::SettingsPage()
 {
 }
@@ -120,6 +132,8 @@ QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
     m_widget->setSettings(PerforcePlugin::perforcePluginInstance()->settings());
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -127,3 +141,8 @@ void SettingsPage::apply()
 {
     PerforcePlugin::perforcePluginInstance()->setSettings(m_widget->settings());
 }
+
+bool SettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/perforce/settingspage.h b/src/plugins/perforce/settingspage.h
index 4ecf0f160603bd3e3101da32f770ce4c2dfcf10b..3836d2cc1ed067c22de1feb290ab55a5fc7edbbc 100644
--- a/src/plugins/perforce/settingspage.h
+++ b/src/plugins/perforce/settingspage.h
@@ -51,6 +51,8 @@ public:
     void setSettings(const PerforceSettings &);
     Settings settings() const;
 
+    QString searchKeywords() const;
+
 private slots:
     void slotTest();
 
@@ -75,8 +77,10 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &) const;
 
 private:
+    QString m_searchKeywords;
     SettingsPageWidget* m_widget;
 };
 
diff --git a/src/plugins/perforce/settingspage.ui b/src/plugins/perforce/settingspage.ui
index fe25bcf5844c1626f696d89c2d91ad5035887cc6..1b6c6b3a7d752e74410955796d82da774bd8e440 100644
--- a/src/plugins/perforce/settingspage.ui
+++ b/src/plugins/perforce/settingspage.ui
@@ -2,68 +2,28 @@
 <ui version="4.0">
  <class>Perforce::Internal::SettingsPage</class>
  <widget class="QWidget" name="Perforce::Internal::SettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>423</width>
-    <height>463</height>
-   </rect>
-  </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QFormLayout" name="formLayout_2">
-     <item row="0" column="0" colspan="2">
-      <widget class="QCheckBox" name="promptToSubmitCheckBox">
-       <property name="text">
-        <string>Prompt to submit</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item>
-    <spacer name="verticalSpacer_2">
-     <property name="orientation">
-      <enum>Qt::Vertical</enum>
-     </property>
-     <property name="sizeType">
-      <enum>QSizePolicy::Fixed</enum>
-     </property>
-     <property name="sizeHint" stdset="0">
-      <size>
-       <width>20</width>
-       <height>20</height>
-      </size>
-     </property>
-    </spacer>
-   </item>
-   <item>
-    <layout class="QFormLayout" name="formLayout">
-     <property name="fieldGrowthPolicy">
-      <enum>QFormLayout::ExpandingFieldsGrow</enum>
+    <widget class="QGroupBox" name="configGroupBox">
+     <property name="title">
+      <string>Configuration</string>
      </property>
-     <item row="0" column="0">
-      <widget class="QLabel" name="commandLabel">
-       <property name="text">
-        <string>P4 Command:</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="Utils::PathChooser" name="pathChooser"/>
-     </item>
-     <item row="1" column="0" colspan="2">
-      <widget class="QCheckBox" name="defaultCheckBox">
-       <property name="text">
-        <string>Use default P4 environment variables</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
+     <layout class="QFormLayout" name="formLayout">
+      <item row="0" column="0">
+       <widget class="QLabel" name="commandLabel">
+        <property name="text">
+         <string>P4 Command:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="Utils::PathChooser" name="pathChooser"/>
+      </item>
+     </layout>
+    </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox">
+    <widget class="QGroupBox" name="environmentGroupBox">
      <property name="enabled">
       <bool>true</bool>
      </property>
@@ -71,6 +31,9 @@
       <string>Environment variables</string>
      </property>
      <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <property name="checked">
       <bool>false</bool>
      </property>
      <layout class="QGridLayout">
@@ -113,6 +76,38 @@
      </layout>
     </widget>
    </item>
+   <item>
+    <widget class="QGroupBox" name="miscgroupBox">
+     <property name="title">
+      <string>Miscellaneous</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout_2">
+      <item row="0" column="0" colspan="2">
+       <widget class="QCheckBox" name="promptToSubmitCheckBox">
+        <property name="text">
+         <string>Prompt on submit</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <spacer name="verticalSpacer_2">
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::Fixed</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>0</width>
+       <height>10</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
    <item>
     <layout class="QHBoxLayout" name="horizontalLayout">
      <item>
@@ -144,8 +139,8 @@
      </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>141</width>
-       <height>20</height>
+       <width>20</width>
+       <height>40</height>
       </size>
      </property>
     </spacer>
@@ -173,22 +168,5 @@
   <tabstop>userLineEdit</tabstop>
  </tabstops>
  <resources/>
- <connections>
-  <connection>
-   <sender>defaultCheckBox</sender>
-   <signal>toggled(bool)</signal>
-   <receiver>groupBox</receiver>
-   <slot>setDisabled(bool)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>134</x>
-     <y>51</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>139</x>
-     <y>65</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
+ <connections/>
 </ui>
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
index 187253e532e89ae29743b26d0bb18b8171e91c6b..58983a872b058c154497f292e1554b0c2f054f3c 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
@@ -37,18 +37,14 @@
 using namespace ProjectExplorer;
 using namespace ProjectExplorer::Internal;
 
-ProjectExplorerSettingsPage::ProjectExplorerSettingsPage()
+ProjectExplorerSettingsPage::ProjectExplorerSettingsPage() :
+    m_searchKeywords(QLatin1String("jom"))
 {
-
-}
-ProjectExplorerSettingsPage::~ProjectExplorerSettingsPage()
-{
-
 }
 
 QString ProjectExplorerSettingsPage::id() const
 {
-    return Constants::PROJECTEXPLORER_PAGE;
+    return QLatin1String(Constants::PROJECTEXPLORER_PAGE);
 }
 
 QString ProjectExplorerSettingsPage::trName() const
@@ -58,7 +54,7 @@ QString ProjectExplorerSettingsPage::trName() const
 
 QString ProjectExplorerSettingsPage::category() const
 {
-    return Constants::PROJECTEXPLORER_PAGE;
+    return QLatin1String(Constants::PROJECTEXPLORER_PAGE);
 }
 
 QString ProjectExplorerSettingsPage::trCategory() const
@@ -101,3 +97,8 @@ void ProjectExplorerSettingsPage::finish()
 {
     // Nothing to do
 }
+
+bool ProjectExplorerSettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.h b/src/plugins/projectexplorer/projectexplorersettingspage.h
index 9506f0d62e9699471d3831cdf245d26526fda21d..efd28fefa7c1a816e32dcb27f425d272d2bf5652 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.h
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.h
@@ -41,7 +41,6 @@ class ProjectExplorerSettingsPage : public Core::IOptionsPage
     Q_OBJECT
 public:
     ProjectExplorerSettingsPage();
-    ~ProjectExplorerSettingsPage();
 
     virtual QString id() const;
     virtual QString trName() const;
@@ -51,7 +50,10 @@ public:
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
     virtual void finish();
+    virtual bool matches(const QString &s) const;
+
 private:
+    const QString m_searchKeywords;
     Ui::ProjectExplorerSettingsPageUi m_ui;
 };
 
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.ui b/src/plugins/projectexplorer/projectexplorersettingspage.ui
index 85dd1083ada42c2d7892b40d7639789c083c2e1f..2e912e52730c9ce36585b6310e617c1342ea63ee 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.ui
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.ui
@@ -12,10 +12,7 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout_3">
    <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Build and Run</string>
-     </property>
+    <widget class="QGroupBox" name="buildAndRunGroupBox">
      <layout class="QVBoxLayout" name="verticalLayout_2">
       <item>
        <widget class="QCheckBox" name="saveAllFilesCheckBox">
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.ui b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.ui
index 1693e3e8a5b119bbd0c98068a9114fdd3dd52a42..3333a752ea37474c010cfd1caf3ba801d67fe7b8 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.ui
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.ui
@@ -6,90 +6,89 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>300</height>
+    <width>282</width>
+    <height>296</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
-  <layout class="QVBoxLayout" name="verticalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout_2">
    <item>
-    <widget class="QLabel" name="titleLabel">
-     <property name="text">
-      <string>Installed S60 SDKs:</string>
-     </property>
+    <widget class="QGroupBox" name="groupBox">
+     <layout class="QVBoxLayout" name="verticalLayout">
+      <item>
+       <widget class="QTreeWidget" name="list">
+        <property name="indentation">
+         <number>0</number>
+        </property>
+        <property name="rootIsDecorated">
+         <bool>false</bool>
+        </property>
+        <property name="uniformRowHeights">
+         <bool>true</bool>
+        </property>
+        <property name="columnCount">
+         <number>2</number>
+        </property>
+        <attribute name="headerCascadingSectionResizes">
+         <bool>true</bool>
+        </attribute>
+        <column>
+         <property name="text">
+          <string>SDK Location</string>
+         </property>
+        </column>
+        <column>
+         <property name="text">
+          <string>Qt Location</string>
+         </property>
+        </column>
+       </widget>
+      </item>
+      <item>
+       <widget class="QLabel" name="errorLabel">
+        <property name="styleSheet">
+         <string notr="true">background-color: red;</string>
+        </property>
+        <property name="text">
+         <string>Error</string>
+        </property>
+        <property name="wordWrap">
+         <bool>true</bool>
+        </property>
+        <property name="textInteractionFlags">
+         <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
+        </property>
+       </widget>
+      </item>
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
+        <item>
+         <spacer name="horizontalSpacer">
+          <property name="orientation">
+           <enum>Qt::Horizontal</enum>
+          </property>
+          <property name="sizeHint" stdset="0">
+           <size>
+            <width>40</width>
+            <height>20</height>
+           </size>
+          </property>
+         </spacer>
+        </item>
+        <item>
+         <widget class="QPushButton" name="refreshButton">
+          <property name="text">
+           <string>Refresh</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
     </widget>
    </item>
-   <item>
-    <widget class="QTreeWidget" name="list">
-     <property name="indentation">
-      <number>0</number>
-     </property>
-     <property name="rootIsDecorated">
-      <bool>false</bool>
-     </property>
-     <property name="uniformRowHeights">
-      <bool>true</bool>
-     </property>
-     <property name="columnCount">
-      <number>2</number>
-     </property>
-     <attribute name="headerCascadingSectionResizes">
-      <bool>true</bool>
-     </attribute>
-     <column>
-      <property name="text">
-       <string>SDK Location</string>
-      </property>
-     </column>
-     <column>
-      <property name="text">
-       <string>Qt Location</string>
-      </property>
-     </column>
-    </widget>
-   </item>
-   <item>
-    <widget class="QLabel" name="errorLabel">
-     <property name="styleSheet">
-      <string notr="true">background-color: red;</string>
-     </property>
-     <property name="text">
-      <string>Error</string>
-     </property>
-     <property name="wordWrap">
-      <bool>true</bool>
-     </property>
-     <property name="textInteractionFlags">
-      <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
-     </property>
-    </widget>
-   </item>
-   <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <widget class="QPushButton" name="refreshButton">
-       <property name="text">
-        <string>Refresh</string>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
   </layout>
  </widget>
  <resources/>
diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp
index 50fe634a878a141bc3d6f31f23950769878519d2..af0290598496ab5aa7967b8eddea8a4f1e9617aa 100644
--- a/src/plugins/qt4projectmanager/qtoptionspage.cpp
+++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp
@@ -16,6 +16,7 @@
 #include <QtCore/QtConcurrentRun>
 #include <QtCore/QDebug>
 #include <QtCore/QDir>
+#include <QtCore/QTextStream>
 #include <QtCore/QDateTime>
 #include <QtGui/QHelpEvent>
 #include <QtGui/QToolTip>
@@ -84,6 +85,8 @@ QWidget *QtOptionsPage::createPage(QWidget *parent)
 {
     QtVersionManager *vm = QtVersionManager::instance();
     m_widget = new QtOptionsPageWidget(parent, vm->versions(), vm->defaultVersion());
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -99,6 +102,11 @@ void QtOptionsPage::apply()
     vm->setNewQtVersions(versions, m_widget->defaultVersion());
 }
 
+bool QtOptionsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
+
 //-----------------------------------------------------
 
 
@@ -728,3 +736,16 @@ int QtOptionsPageWidget::defaultVersion() const
 {
     return m_defaultVersion;
 }
+
+QString QtOptionsPageWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc) << ' ' << m_ui->mingwLabel->text()
+            << ' ' << m_ui->msvcLabel->text()
+            << ' ' << m_ui->gcceLabel->text()
+            << ' ' << m_ui->mwcLabel->text()
+            << ' ' << m_ui->debuggingHelperLabel->text()
+            << ' ' << m_ui->versionListGroupBox->title();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
diff --git a/src/plugins/qt4projectmanager/qtoptionspage.h b/src/plugins/qt4projectmanager/qtoptionspage.h
index 834dff9b36f7443a8a5312b1096974ffd36d0b8f..7fc3ffaf71059cf400a4a527153f1e6d616a8471 100644
--- a/src/plugins/qt4projectmanager/qtoptionspage.h
+++ b/src/plugins/qt4projectmanager/qtoptionspage.h
@@ -81,6 +81,7 @@ public:
     QList<QSharedPointerQtVersion> versions() const;
     int defaultVersion() const;
     void finish();
+    QString searchKeywords() const;
 
     virtual bool eventFilter(QObject *o, QEvent *e);
 
@@ -142,8 +143,11 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &) const;
+
 private:
     QtOptionsPageWidget *m_widget;
+    QString m_searchKeywords;
 };
 
 } //namespace Internal
diff --git a/src/plugins/qt4projectmanager/qtversionmanager.ui b/src/plugins/qt4projectmanager/qtversionmanager.ui
index 3cb3d40d8582bddb02522dab2c4356a742938551..90cbdd9dfda694ef10a7b26c2448d7151461d4f9 100644
--- a/src/plugins/qt4projectmanager/qtversionmanager.ui
+++ b/src/plugins/qt4projectmanager/qtversionmanager.ui
@@ -2,254 +2,251 @@
 <ui version="4.0">
  <class>Qt4ProjectManager::Internal::QtVersionManager</class>
  <widget class="QWidget" name="Qt4ProjectManager::Internal::QtVersionManager">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>577</width>
-    <height>507</height>
-   </rect>
-  </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="QGroupBox" name="groupBox">
+    <widget class="QGroupBox" name="versionListGroupBox">
      <property name="title">
       <string>Qt versions</string>
      </property>
-     <layout class="QGridLayout" name="gridLayout">
-      <item row="0" column="2">
-       <layout class="QVBoxLayout">
-        <property name="spacing">
-         <number>6</number>
-        </property>
-        <property name="margin">
-         <number>0</number>
-        </property>
+     <layout class="QVBoxLayout" name="verticalLayout_2">
+      <item>
+       <layout class="QHBoxLayout" name="horizontalLayout">
         <item>
-         <widget class="QToolButton" name="addButton">
-          <property name="minimumSize">
-           <size>
-            <width>21</width>
-            <height>23</height>
-           </size>
+         <widget class="QTreeWidget" name="qtdirList">
+          <property name="uniformRowHeights">
+           <bool>true</bool>
           </property>
-          <property name="text">
-           <string>+</string>
+          <property name="columnCount">
+           <number>3</number>
           </property>
+          <column>
+           <property name="text">
+            <string>Name</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>QMake Location</string>
+           </property>
+          </column>
+          <column>
+           <property name="text">
+            <string>Debugging Helper</string>
+           </property>
+          </column>
          </widget>
         </item>
         <item>
-         <widget class="QToolButton" name="delButton">
-          <property name="minimumSize">
-           <size>
-            <width>21</width>
-            <height>23</height>
-           </size>
+         <layout class="QVBoxLayout">
+          <property name="spacing">
+           <number>6</number>
           </property>
+          <property name="margin">
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QToolButton" name="addButton">
+            <property name="minimumSize">
+             <size>
+              <width>21</width>
+              <height>23</height>
+             </size>
+            </property>
+            <property name="text">
+             <string>+</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="delButton">
+            <property name="minimumSize">
+             <size>
+              <width>21</width>
+              <height>23</height>
+             </size>
+            </property>
+            <property name="text">
+             <string>-</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer>
+            <property name="orientation">
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeHint" stdset="0">
+             <size>
+              <width>10</width>
+              <height>40</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QGridLayout" name="gridLayout">
+        <item row="0" column="0">
+         <widget class="QLabel" name="versionNameLabel">
           <property name="text">
-           <string>-</string>
+           <string>Version Name:</string>
           </property>
          </widget>
         </item>
-        <item>
-         <spacer>
-          <property name="orientation">
-           <enum>Qt::Vertical</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>10</width>
-            <height>40</height>
-           </size>
-          </property>
-         </spacer>
+        <item row="0" column="1">
+         <widget class="QLineEdit" name="nameEdit"/>
         </item>
-       </layout>
-      </item>
-      <item row="4" column="1">
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <property name="spacing">
-         <number>0</number>
-        </property>
-        <item>
-         <widget class="QComboBox" name="msvcComboBox">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
+        <item row="1" column="0">
+         <widget class="QLabel" name="pathLabel">
+          <property name="text">
+           <string>QMake Location:</string>
           </property>
          </widget>
         </item>
-        <item>
-         <widget class="QLabel" name="msvcNotFoundLabel">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
+        <item row="1" column="1">
+         <widget class="Utils::PathChooser" name="qmakePath"/>
+        </item>
+        <item row="2" column="0">
+         <widget class="QLabel" name="mingwLabel">
+          <property name="text">
+           <string>MinGW Directory:</string>
           </property>
+         </widget>
+        </item>
+        <item row="2" column="1">
+         <widget class="Utils::PathChooser" name="mingwPath"/>
+        </item>
+        <item row="3" column="0">
+         <widget class="QLabel" name="msvcLabel">
           <property name="text">
-           <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+           <string>MSVC Version:</string>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="1">
+         <layout class="QHBoxLayout" name="msvcHorizontalLayout">
+          <item>
+           <widget class="QComboBox" name="msvcComboBox">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QLabel" name="msvcNotFoundLabel">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
 p, li { white-space: pre-wrap; }
 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
 &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; color:#ff0000;&quot;&gt;Unable to detect MSVC version.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item row="4" column="0">
+         <widget class="QLabel" name="s60SDKLabel">
+          <property name="text">
+           <string>S60 SDK:</string>
           </property>
          </widget>
         </item>
-       </layout>
-      </item>
-      <item row="8" column="1">
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <item>
-         <widget class="QLabel" name="debuggingHelperStateLabel">
-          <property name="sizePolicy">
-           <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-           </sizepolicy>
+        <item row="4" column="1">
+         <widget class="Utils::PathChooser" name="s60SDKPath"/>
+        </item>
+        <item row="5" column="0">
+         <widget class="QLabel" name="gcceLabel">
+          <property name="text">
+           <string>CSL/GCCE Directory:</string>
           </property>
+         </widget>
+        </item>
+        <item row="5" column="1">
+         <widget class="Utils::PathChooser" name="gccePath"/>
+        </item>
+        <item row="6" column="0">
+         <widget class="QLabel" name="mwcLabel">
           <property name="text">
-           <string/>
+           <string>Carbide Directory:</string>
           </property>
          </widget>
         </item>
-        <item>
-         <widget class="QPushButton" name="showLogButton">
+        <item row="6" column="1">
+         <widget class="Utils::PathChooser" name="mwcPath"/>
+        </item>
+        <item row="7" column="0">
+         <widget class="QLabel" name="debuggingHelperLabel">
           <property name="text">
-           <string>Show &amp;Log</string>
+           <string>Debugging Helper:</string>
           </property>
          </widget>
         </item>
-        <item>
-         <widget class="QPushButton" name="rebuildButton">
+        <item row="7" column="1">
+         <layout class="QHBoxLayout" name="debuggingHelperHorizontalLayout">
+          <item>
+           <widget class="QLabel" name="debuggingHelperStateLabel">
+            <property name="sizePolicy">
+             <sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
+              <horstretch>0</horstretch>
+              <verstretch>0</verstretch>
+             </sizepolicy>
+            </property>
+            <property name="text">
+             <string/>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="showLogButton">
+            <property name="text">
+             <string>Show &amp;Log</string>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QPushButton" name="rebuildButton">
+            <property name="text">
+             <string>&amp;Rebuild</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
+        <item row="8" column="0" colspan="2">
+         <widget class="QLabel" name="errorLabel">
           <property name="text">
-           <string>&amp;Rebuild</string>
+           <string/>
           </property>
          </widget>
         </item>
        </layout>
       </item>
-      <item row="0" column="0" colspan="2">
-       <widget class="QTreeWidget" name="qtdirList">
-        <property name="uniformRowHeights">
-         <bool>true</bool>
-        </property>
-        <property name="columnCount">
-         <number>3</number>
-        </property>
-        <column>
-         <property name="text">
-          <string>Name</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>QMake Location</string>
-         </property>
-        </column>
-        <column>
-         <property name="text">
-          <string>Debugging Helper</string>
-         </property>
-        </column>
-       </widget>
-      </item>
-      <item row="1" column="0">
-       <widget class="QLabel" name="versionNameLabel">
-        <property name="text">
-         <string>Version Name:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="1" column="1">
-       <widget class="QLineEdit" name="nameEdit"/>
-      </item>
-      <item row="2" column="0">
-       <widget class="QLabel" name="pathLabel">
-        <property name="text">
-         <string>QMake Location:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="2" column="1">
-       <widget class="Utils::PathChooser" name="qmakePath" native="true"/>
-      </item>
-      <item row="3" column="0">
-       <widget class="QLabel" name="mingwLabel">
-        <property name="text">
-         <string>MinGW Directory:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="3" column="1">
-       <widget class="Utils::PathChooser" name="mingwPath" native="true"/>
-      </item>
-      <item row="4" column="0">
-       <widget class="QLabel" name="msvcLabel">
-        <property name="text">
-         <string>MSVC Version:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="0">
-       <widget class="QLabel" name="s60SDKLabel">
-        <property name="text">
-         <string>S60 SDK:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="5" column="1">
-       <widget class="Utils::PathChooser" name="s60SDKPath" native="true"/>
-      </item>
-      <item row="6" column="0">
-       <widget class="QLabel" name="gcceLabel">
-        <property name="text">
-         <string>CSL/GCCE Directory:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="6" column="1">
-       <widget class="Utils::PathChooser" name="gccePath" native="true"/>
-      </item>
-      <item row="7" column="0">
-       <widget class="QLabel" name="mwcLabel">
-        <property name="text">
-         <string>Carbide Directory:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="7" column="1">
-       <widget class="Utils::PathChooser" name="mwcPath" native="true"/>
-      </item>
-      <item row="8" column="0">
-       <widget class="QLabel" name="debuggingHelperLabel">
-        <property name="text">
-         <string>Debugging Helper:</string>
-        </property>
-       </widget>
-      </item>
-      <item row="9" column="1">
-       <widget class="QLabel" name="errorLabel">
-        <property name="text">
-         <string/>
-        </property>
-       </widget>
-      </item>
      </layout>
     </widget>
    </item>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <item>
+    <layout class="QFormLayout" name="defaultFormLayout">
+     <item row="0" column="0">
       <widget class="QLabel" name="defaultLabel">
        <property name="text">
         <string>Default Qt Version:</string>
        </property>
       </widget>
      </item>
-     <item>
+     <item row="0" column="1">
       <widget class="QComboBox" name="defaultCombo">
        <property name="sizePolicy">
         <sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp
index 93b9ef0a1e1aa924db4a54063745843853704182..85ed2e7bfbc8b129ed9ea7ab81cd1ab40bd245c1 100644
--- a/src/plugins/subversion/settingspage.cpp
+++ b/src/plugins/subversion/settingspage.cpp
@@ -37,6 +37,7 @@
 #include <utils/pathchooser.h>
 
 #include <QtCore/QCoreApplication>
+#include <QtCore/QTextStream>
 #include <QtGui/QFileDialog>
 
 using namespace Subversion::Internal;
@@ -72,7 +73,19 @@ void SettingsPageWidget::setSettings(const SubversionSettings &s)
     m_ui.promptToSubmitCheckBox->setChecked(s.promptToSubmit);
 }
 
-SettingsPage::SettingsPage()
+QString SettingsPageWidget::searchKeywords() const
+{
+    QString rc;
+    QTextStream(&rc) << m_ui.commandLabel->text()
+            << ' ' << m_ui.usernameLabel->text()
+            << ' ' << m_ui.passwordLabel->text()
+            << ' ' << m_ui.userGroupBox->title();
+    rc.remove(QLatin1Char('&'));
+    return rc;
+}
+
+SettingsPage::SettingsPage() :
+    m_widget(0)
 {
 }
 
@@ -100,6 +113,8 @@ QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
     m_widget->setSettings(SubversionPlugin::subversionPluginInstance()->settings());
+    if (m_searchKeywords.isEmpty())
+        m_searchKeywords = m_widget->searchKeywords();
     return m_widget;
 }
 
@@ -107,3 +122,8 @@ void SettingsPage::apply()
 {
     SubversionPlugin::subversionPluginInstance()->setSettings(m_widget->settings());
 }
+
+bool SettingsPage::matches(const QString &s) const
+{
+    return m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/subversion/settingspage.h b/src/plugins/subversion/settingspage.h
index 02479154cffca503a50430dd9ffebf069152bc51..f355fce0bb259f7e0166b3ecdef8064197f796ca 100644
--- a/src/plugins/subversion/settingspage.h
+++ b/src/plugins/subversion/settingspage.h
@@ -55,6 +55,8 @@ public:
     SubversionSettings settings() const;
     void setSettings(const SubversionSettings &);
 
+    QString searchKeywords() const;
+
 private:
     Ui::SettingsPage m_ui;
 };
@@ -75,8 +77,10 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &) const;
 
 private:
+    QString m_searchKeywords;
     SettingsPageWidget* m_widget;
 };
 
diff --git a/src/plugins/subversion/settingspage.ui b/src/plugins/subversion/settingspage.ui
index 743702e684b38d49213315248fa6e35d5f3013f0..e7f4b177b36991aa3ee092e40d69e0adb32094b5 100644
--- a/src/plugins/subversion/settingspage.ui
+++ b/src/plugins/subversion/settingspage.ui
@@ -6,117 +6,91 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>575</width>
-    <height>437</height>
+    <width>473</width>
+    <height>295</height>
    </rect>
   </property>
-  <layout class="QHBoxLayout" name="horizontalLayout">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QVBoxLayout" name="verticalLayout">
-     <item>
-      <layout class="QFormLayout" name="formLayout_3">
-       <item row="0" column="0" colspan="2">
-        <widget class="QCheckBox" name="promptToSubmitCheckBox">
-         <property name="text">
-          <string>Prompt to submit</string>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </item>
-     <item>
-      <spacer name="topverticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeType">
-        <enum>QSizePolicy::Fixed</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item>
-      <layout class="QFormLayout" name="formLayout_2">
-       <property name="margin">
-        <number>0</number>
-       </property>
-       <item row="0" column="0">
-        <widget class="QLabel" name="commandLabel">
-         <property name="text">
-          <string>Subversion Command:</string>
-         </property>
-        </widget>
-       </item>
-       <item row="0" column="1">
-        <widget class="Utils::PathChooser" name="pathChooser"/>
-       </item>
-      </layout>
-     </item>
-     <item>
-      <widget class="QGroupBox" name="userGroupBox">
-       <property name="title">
-        <string>Authentication</string>
-       </property>
-       <property name="checkable">
-        <bool>true</bool>
-       </property>
-       <layout class="QFormLayout" name="formLayout">
-        <item row="0" column="0">
-         <widget class="QLabel" name="usernameLabel">
-          <property name="text">
-           <string>User name:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="0" column="1">
-         <widget class="QLineEdit" name="usernameLineEdit"/>
-        </item>
-        <item row="1" column="0">
-         <widget class="QLabel" name="passwordLabel">
-          <property name="text">
-           <string>Password:</string>
-          </property>
-         </widget>
-        </item>
-        <item row="1" column="1">
-         <widget class="QLineEdit" name="passwordLineEdit">
-          <property name="echoMode">
-           <enum>QLineEdit::Password</enum>
-          </property>
-         </widget>
-        </item>
-       </layout>
-      </widget>
-     </item>
-     <item>
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
+    <widget class="QGroupBox" name="generalGroupBox">
+     <property name="title">
+      <string>Configuration</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout_3">
+      <item row="0" column="0">
+       <widget class="QLabel" name="commandLabel">
+        <property name="text">
+         <string>Subversion Command:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="Utils::PathChooser" name="pathChooser"/>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="userGroupBox">
+     <property name="title">
+      <string>Authentication</string>
+     </property>
+     <property name="checkable">
+      <bool>true</bool>
+     </property>
+     <layout class="QFormLayout" name="formLayout">
+      <item row="0" column="0">
+       <widget class="QLabel" name="usernameLabel">
+        <property name="text">
+         <string>User name:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QLineEdit" name="usernameLineEdit"/>
+      </item>
+      <item row="1" column="0">
+       <widget class="QLabel" name="passwordLabel">
+        <property name="text">
+         <string>Password:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="QLineEdit" name="passwordLineEdit">
+        <property name="echoMode">
+         <enum>QLineEdit::Password</enum>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="miscGroupBox">
+     <property name="title">
+      <string>Miscellaneous</string>
+     </property>
+     <layout class="QFormLayout" name="formLayout_2">
+      <item row="0" column="0" colspan="2">
+       <widget class="QCheckBox" name="promptToSubmitCheckBox">
+        <property name="text">
+         <string>Prompt on submit</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
    </item>
    <item>
-    <spacer name="horizontalSpacer">
+    <spacer name="verticalSpacer">
      <property name="orientation">
-      <enum>Qt::Horizontal</enum>
+      <enum>Qt::Vertical</enum>
      </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>105</width>
-       <height>20</height>
+       <width>20</width>
+       <height>40</height>
       </size>
      </property>
     </spacer>
diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp
index ed013c6b610f3e3bca5e7df3d56e6ce5ce456f98..86b7acac5dfaea3736884ee4b9c41797c66c6c68 100644
--- a/src/plugins/texteditor/behaviorsettingspage.cpp
+++ b/src/plugins/texteditor/behaviorsettingspage.cpp
@@ -35,6 +35,7 @@
 #include <coreplugin/icore.h>
 
 #include <QtCore/QSettings>
+#include <QtCore/QTextStream>
 
 using namespace TextEditor;
 
@@ -46,6 +47,7 @@ struct BehaviorSettingsPage::BehaviorSettingsPagePrivate
     Ui::BehaviorSettingsPage m_page;
     TabSettings m_tabSettings;
     StorageSettings m_storageSettings;
+    QString m_searchKeywords;
 };
 
 BehaviorSettingsPage::BehaviorSettingsPagePrivate::BehaviorSettingsPagePrivate
@@ -95,6 +97,15 @@ QWidget *BehaviorSettingsPage::createPage(QWidget *parent)
     QWidget *w = new QWidget(parent);
     m_d->m_page.setupUi(w);
     settingsToUI();
+    if (m_d->m_searchKeywords.isEmpty()) {
+        QTextStream(&m_d->m_searchKeywords) << m_d->m_page.insertSpaces->text()
+          << ' ' << m_d->m_page.smartBackspace->text()
+          << ' ' << m_d->m_page.cleanWhitespace->text()
+          << ' ' << m_d->m_page.addFinalNewLine->text()
+          << ' ' << m_d->m_page.groupBoxTabAndIndentSettings->title()
+          << ' ' << m_d->m_page.groupBoxStorageSettings->title();
+        m_d->m_searchKeywords.remove(QLatin1Char('&'));
+    }
     return w;
 }
 
@@ -167,3 +178,8 @@ StorageSettings BehaviorSettingsPage::storageSettings() const
 {
     return m_d->m_storageSettings;
 }
+
+bool BehaviorSettingsPage::matches(const QString &s) const
+{
+   return m_d->m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h
index 2bc524198fc7bfd6033f4b90fc9335d0e338bc38..007c11a303ebbf5e569b08597620c60f2c255861 100644
--- a/src/plugins/texteditor/behaviorsettingspage.h
+++ b/src/plugins/texteditor/behaviorsettingspage.h
@@ -70,6 +70,8 @@ public:
     TabSettings tabSettings() const;
     StorageSettings storageSettings() const;
 
+    virtual bool matches(const QString &s) const;
+
 signals:
     void tabSettingsChanged(const TextEditor::TabSettings &);
     void storageSettingsChanged(const TextEditor::StorageSettings &);
diff --git a/src/plugins/texteditor/behaviorsettingspage.ui b/src/plugins/texteditor/behaviorsettingspage.ui
index c20e2aaad128cacedb2c5b1bd0ccd8c2be3b83e3..8ba86f0f59ce0cdf84f3e3d585500ccfb8b46d42 100644
--- a/src/plugins/texteditor/behaviorsettingspage.ui
+++ b/src/plugins/texteditor/behaviorsettingspage.ui
@@ -138,7 +138,7 @@
       <item>
        <layout class="QHBoxLayout" name="horizontalLayout">
         <item>
-         <widget class="QLabel" name="label">
+         <widget class="QLabel" name="tabKeyIndentLabel">
           <property name="text">
            <string>Tab key performs auto-indent:</string>
           </property>
diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp
index 9f4fa6a90aa3b76018f047fb9ec69a303cf4227b..ceb011a50c74350ea8eb506ce87292383d8eaed1 100644
--- a/src/plugins/texteditor/displaysettingspage.cpp
+++ b/src/plugins/texteditor/displaysettingspage.cpp
@@ -34,6 +34,7 @@
 #include <coreplugin/icore.h>
 
 #include <QtCore/QSettings>
+#include <QtCore/QTextStream>
 
 using namespace TextEditor;
 
@@ -44,6 +45,7 @@ struct DisplaySettingsPage::DisplaySettingsPagePrivate
     const DisplaySettingsPageParameters m_parameters;
     Ui::DisplaySettingsPage m_page;
     DisplaySettings m_displaySettings;
+    QString m_searchKeywords;
 };
 
 DisplaySettingsPage::DisplaySettingsPagePrivate::DisplaySettingsPagePrivate
@@ -92,6 +94,17 @@ QWidget *DisplaySettingsPage::createPage(QWidget *parent)
     QWidget *w = new QWidget(parent);
     m_d->m_page.setupUi(w);
     settingsToUI();
+    if (m_d->m_searchKeywords.isEmpty()) {
+        QTextStream(&m_d->m_searchKeywords) << m_d->m_page.displayLineNumbers->text()
+          << ' ' << m_d->m_page.highlightCurrentLine->text()
+          << ' ' << m_d->m_page.displayFoldingMarkers->text()
+          << ' ' << m_d->m_page.highlightBlocks->text()
+          << ' ' << m_d->m_page.visualizeWhitespace->text()
+          << ' ' << m_d->m_page.animateMatchingParentheses->text()
+          << ' ' << m_d->m_page.enableTextWrapping->text()
+          << ' ' << m_d->m_page.mouseNavigation->text();
+        m_d->m_searchKeywords.remove(QLatin1Char('&'));
+    }
     return w;
 }
 
@@ -160,3 +173,8 @@ void DisplaySettingsPage::setDisplaySettings(const DisplaySettings &newDisplaySe
         emit displaySettingsChanged(newDisplaySettings);
     }
 }
+
+bool DisplaySettingsPage::matches(const QString &s) const
+{
+    return m_d->m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/texteditor/displaysettingspage.h b/src/plugins/texteditor/displaysettingspage.h
index f9d8ab3b13ff28257c8fb529493bae1210241812..902e984a57ef690ba7d9f3b77b6f936d17ddc157 100644
--- a/src/plugins/texteditor/displaysettingspage.h
+++ b/src/plugins/texteditor/displaysettingspage.h
@@ -65,6 +65,7 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
+    virtual bool matches(const QString &s) const;
 
     DisplaySettings displaySettings() const;
     void setDisplaySettings(const DisplaySettings &);
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index 898f775cc460dd7944882728447f741673f63592..de2bf702f0dfb0206c89e0691ff71158e8538197 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -133,6 +133,7 @@ public:
     Ui::FontSettingsPage ui;
     SchemeListModel *m_schemeListModel;
     bool m_refreshingSchemeList;
+    QString m_searchKeywords;
 };
 
 } // namespace Internal
@@ -367,6 +368,8 @@ QWidget *FontSettingsPage::createPage(QWidget *parent)
     updatePointSizes();
     refreshColorSchemeList();
     d_ptr->m_lastValue = d_ptr->m_value;
+    if (d_ptr->m_searchKeywords.isEmpty())
+        d_ptr->m_searchKeywords = d_ptr->ui.fontGroupBox->title() + QLatin1Char(' ') + d_ptr->ui.colorSchemeGroupBox->title();
     return w;
 }
 
@@ -618,3 +621,8 @@ const FontSettings &FontSettingsPage::fontSettings() const
 {
     return d_ptr->m_value;
 }
+
+bool FontSettingsPage::matches(const QString &s) const
+{
+    return d_ptr->m_searchKeywords.contains(s, Qt::CaseInsensitive);
+}
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index e2095a3fce5639f1bed31af63336e68f1dddc048..d9d90272847cebd1a9a9722d29ebd78a2fa7e980 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -97,6 +97,7 @@ public:
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish();
+    virtual bool matches(const QString &) const;
 
     void saveSettings();
 
diff --git a/src/plugins/texteditor/fontsettingspage.ui b/src/plugins/texteditor/fontsettingspage.ui
index 1cd02f47a8dc2768d2cfe4a2fbb8f9e35f82a94e..cb7f5d1fb6a5cf5d2f83dce2934fe3ad7700eede 100644
--- a/src/plugins/texteditor/fontsettingspage.ui
+++ b/src/plugins/texteditor/fontsettingspage.ui
@@ -12,13 +12,13 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="QGroupBox" name="groupBox">
+    <widget class="QGroupBox" name="fontGroupBox">
      <property name="title">
       <string>Font</string>
      </property>
      <layout class="QGridLayout" name="gridLayout">
       <item row="0" column="0">
-       <widget class="QLabel" name="label_5">
+       <widget class="QLabel" name="familyLabel">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
@@ -57,7 +57,7 @@
        </spacer>
       </item>
       <item row="0" column="3">
-       <widget class="QLabel" name="label_6">
+       <widget class="QLabel" name="sizeLabel">
         <property name="sizePolicy">
          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
           <horstretch>0</horstretch>
@@ -103,7 +103,7 @@
     </widget>
    </item>
    <item>
-    <widget class="QGroupBox" name="groupBox_2">
+    <widget class="QGroupBox" name="colorSchemeGroupBox">
      <property name="title">
       <string>Color Scheme</string>
      </property>
diff --git a/src/plugins/vcsbase/vcsbasesettingspage.ui b/src/plugins/vcsbase/vcsbasesettingspage.ui
index a535a107069f547ad6bb7ec070151d3d6c33d9c4..b2db722b00e2a8611a93529ccb4d83327bd0b5c6 100644
--- a/src/plugins/vcsbase/vcsbasesettingspage.ui
+++ b/src/plugins/vcsbase/vcsbasesettingspage.ui
@@ -2,115 +2,78 @@
 <ui version="4.0">
  <class>VCSBaseSettingsPage</class>
  <widget class="QWidget" name="VCSBaseSettingsPage">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>536</width>
-    <height>407</height>
-   </rect>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_3">
+  <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <widget class="QGroupBox" name="groupBox">
-     <property name="title">
-      <string>Common</string>
-     </property>
-     <layout class="QHBoxLayout" name="horizontalLayout_2">
-      <item>
-       <layout class="QVBoxLayout" name="verticalLayout_2">
-        <item>
-         <layout class="QVBoxLayout" name="verticalLayout">
-          <item>
-           <layout class="QHBoxLayout" name="horizontalLayout">
-            <item>
-             <widget class="QCheckBox" name="lineWrapCheckBox">
-              <property name="text">
-               <string>Wrap submit message at:</string>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <widget class="QSpinBox" name="lineWrapSpinBox">
-              <property name="enabled">
-               <bool>false</bool>
-              </property>
-              <property name="minimum">
-               <number>40</number>
-              </property>
-              <property name="maximum">
-               <number>200</number>
-              </property>
-              <property name="value">
-               <number>72</number>
-              </property>
-             </widget>
-            </item>
-            <item>
-             <spacer name="horizontalSpacer_2">
-              <property name="orientation">
-               <enum>Qt::Horizontal</enum>
-              </property>
-              <property name="sizeHint" stdset="0">
-               <size>
-                <width>40</width>
-                <height>20</height>
-               </size>
-              </property>
-             </spacer>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </item>
-        <item>
-         <layout class="QFormLayout" name="formLayout">
-          <property name="rowWrapPolicy">
-           <enum>QFormLayout::WrapLongRows</enum>
-          </property>
-          <item row="0" column="0">
-           <widget class="QLabel" name="submitMessageCheckScriptLabel">
-            <property name="toolTip">
-             <string>An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure.</string>
-            </property>
-            <property name="text">
-             <string>Submit message check script:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="Utils::PathChooser" name="submitMessageCheckScriptChooser" native="true"/>
-          </item>
-          <item row="1" column="0">
-           <widget class="QLabel" name="nickNameMailMapLabel">
-            <property name="toolTip">
-             <string>A file listing user names and email addresses in a 4-column mailmap format:
+    <widget class="QGroupBox" name="commonGroupBox">
+     <layout class="QFormLayout" name="formLayout">
+      <property name="rowWrapPolicy">
+       <enum>QFormLayout::WrapLongRows</enum>
+      </property>
+      <item row="1" column="0">
+       <widget class="QLabel" name="submitMessageCheckScriptLabel">
+        <property name="toolTip">
+         <string>An executable which is called with the submit message in a temporary file as first argument. It should return with an exit != 0 and a message on standard error to indicate failure.</string>
+        </property>
+        <property name="text">
+         <string>Submit message check script:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="1" column="1">
+       <widget class="Utils::PathChooser" name="submitMessageCheckScriptChooser"/>
+      </item>
+      <item row="2" column="0">
+       <widget class="QLabel" name="nickNameMailMapLabel">
+        <property name="toolTip">
+         <string>A file listing user names and email addresses in a 4-column mailmap format:
 name &lt;email&gt; alias &lt;email&gt;</string>
-            </property>
-            <property name="text">
-             <string>User/alias configuration file:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="1">
-           <widget class="Utils::PathChooser" name="nickNameMailMapChooser" native="true"/>
-          </item>
-          <item row="2" column="0">
-           <widget class="QLabel" name="nickNameFieldsFileLabel">
-            <property name="toolTip">
-             <string>A simple file containing lines with field names like &quot;Reviewed-By:&quot; which will be added below the submit editor.</string>
-            </property>
-            <property name="text">
-             <string>User fields configuration file:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="1">
-           <widget class="Utils::PathChooser" name="nickNameFieldsFileChooser" native="true"/>
-          </item>
-         </layout>
-        </item>
-       </layout>
+        </property>
+        <property name="text">
+         <string>User/alias configuration file:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="2" column="1">
+       <widget class="Utils::PathChooser" name="nickNameMailMapChooser"/>
+      </item>
+      <item row="3" column="0">
+       <widget class="QLabel" name="nickNameFieldsFileLabel">
+        <property name="toolTip">
+         <string>A simple file containing lines with field names like &quot;Reviewed-By:&quot; which will be added below the submit editor.</string>
+        </property>
+        <property name="text">
+         <string>User fields configuration file:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="3" column="1">
+       <widget class="Utils::PathChooser" name="nickNameFieldsFileChooser"/>
+      </item>
+      <item row="0" column="0">
+       <widget class="QCheckBox" name="lineWrapCheckBox">
+        <property name="text">
+         <string>Wrap submit message at:</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1">
+       <widget class="QSpinBox" name="lineWrapSpinBox">
+        <property name="enabled">
+         <bool>false</bool>
+        </property>
+        <property name="suffix">
+         <string>characters</string>
+        </property>
+        <property name="minimum">
+         <number>40</number>
+        </property>
+        <property name="maximum">
+         <number>200</number>
+        </property>
+        <property name="value">
+         <number>72</number>
+        </property>
+       </widget>
       </item>
      </layout>
     </widget>
@@ -120,10 +83,13 @@ name &lt;email&gt; alias &lt;email&gt;</string>
      <property name="orientation">
       <enum>Qt::Vertical</enum>
      </property>
+     <property name="sizeType">
+      <enum>QSizePolicy::MinimumExpanding</enum>
+     </property>
      <property name="sizeHint" stdset="0">
       <size>
-       <width>20</width>
-       <height>307</height>
+       <width>0</width>
+       <height>0</height>
       </size>
      </property>
     </spacer>
@@ -139,22 +105,5 @@ name &lt;email&gt; alias &lt;email&gt;</string>
   </customwidget>
  </customwidgets>
  <resources/>
- <connections>
-  <connection>
-   <sender>lineWrapCheckBox</sender>
-   <signal>toggled(bool)</signal>
-   <receiver>lineWrapSpinBox</receiver>
-   <slot>setEnabled(bool)</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>186</x>
-     <y>58</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>225</x>
-     <y>58</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
+ <connections/>
 </ui>