diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index b4a8c2b8ea6e70a3992dba085d401f859cde9d7d..e2865bf183021486d1cb0833ea88aae8f2640b25 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -47,6 +47,8 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &initialCategory,
     setupUi(this);
     buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
 
+    connect(buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(apply()));
+
     splitter->setCollapsible(1, false);
     pageTree->header()->setVisible(false);
 
@@ -135,3 +137,9 @@ void SettingsDialog::reject()
         page->finished(false);
     done(QDialog::Rejected);
 }
+
+void SettingsDialog::apply()
+{
+    foreach (IOptionsPage *page, m_pages)
+        page->finished(true);
+}
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h
index c277c8526717b221aeb81b417dc3b1ae7e337370..6dd8a2a37da81f6dcb75878934179b37854f910a 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.h
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.h
@@ -57,6 +57,7 @@ private slots:
     void pageSelected(QTreeWidgetItem *cat);
     void accept();
     void reject();
+    void apply();
 
 private:
     QList<Core::IOptionsPage*> m_pages;
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.ui b/src/plugins/coreplugin/dialogs/settingsdialog.ui
index 9d2475536c0e64dbe39cb593d2036fe9674aed3e..aad114f848cb3606311d0615c01b8469190a2d8e 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.ui
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.ui
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
  <class>SettingsDialog</class>
- <widget class="QDialog" name="SettingsDialog" >
-  <property name="geometry" >
+ <widget class="QDialog" name="SettingsDialog">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
@@ -9,50 +10,48 @@
     <height>476</height>
    </rect>
   </property>
-  <property name="windowTitle" >
+  <property name="windowTitle">
    <string>Options</string>
   </property>
-  <layout class="QVBoxLayout" >
-   <property name="margin" >
-    <number>9</number>
-   </property>
-   <property name="spacing" >
+  <layout class="QVBoxLayout">
+   <property name="spacing">
     <number>6</number>
    </property>
+   <property name="margin">
+    <number>9</number>
+   </property>
    <item>
-    <widget class="QSplitter" name="splitter" >
-     <property name="orientation" >
+    <widget class="QSplitter" name="splitter">
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <widget class="QTreeWidget" name="pageTree" >
-      <property name="sizePolicy" >
-       <sizepolicy>
-        <hsizetype>7</hsizetype>
-        <vsizetype>7</vsizetype>
+     <widget class="QTreeWidget" name="pageTree">
+      <property name="sizePolicy">
+       <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
         <horstretch>0</horstretch>
         <verstretch>0</verstretch>
        </sizepolicy>
       </property>
-      <property name="columnCount" >
+      <property name="columnCount">
        <number>1</number>
       </property>
       <column>
-       <property name="text" >
+       <property name="text">
         <string>0</string>
        </property>
       </column>
      </widget>
-     <widget class="QWidget" name="layoutWidget" >
-      <layout class="QVBoxLayout" >
-       <property name="margin" >
-        <number>0</number>
-       </property>
-       <property name="spacing" >
+     <widget class="QWidget" name="layoutWidget">
+      <layout class="QVBoxLayout">
+       <property name="spacing">
         <number>6</number>
        </property>
+       <property name="margin">
+        <number>0</number>
+       </property>
        <item>
-        <widget class="QStackedWidget" name="stackedPages" >
-         <property name="minimumSize" >
+        <widget class="QStackedWidget" name="stackedPages">
+         <property name="minimumSize">
           <size>
            <width>350</width>
            <height>250</height>
@@ -61,8 +60,8 @@
         </widget>
        </item>
        <item>
-        <widget class="Line" name="line" >
-         <property name="orientation" >
+        <widget class="Line" name="line">
+         <property name="orientation">
           <enum>Qt::Horizontal</enum>
          </property>
         </widget>
@@ -72,12 +71,12 @@
     </widget>
    </item>
    <item>
-    <widget class="QDialogButtonBox" name="buttonBox" >
-     <property name="orientation" >
+    <widget class="QDialogButtonBox" name="buttonBox">
+     <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
-     <property name="standardButtons" >
-      <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
+     <property name="standardButtons">
+      <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
      </property>
     </widget>
    </item>
@@ -91,11 +90,11 @@
    <receiver>SettingsDialog</receiver>
    <slot>accept()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>297</x>
      <y>361</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>297</x>
      <y>193</y>
     </hint>
@@ -107,11 +106,11 @@
    <receiver>SettingsDialog</receiver>
    <slot>reject()</slot>
    <hints>
-    <hint type="sourcelabel" >
+    <hint type="sourcelabel">
      <x>297</x>
      <y>361</y>
     </hint>
-    <hint type="destinationlabel" >
+    <hint type="destinationlabel">
      <x>297</x>
      <y>193</y>
     </hint>