diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index fb69ac3386a0044fb9af8ca5c9db1b880a4d172d..d4dd5aae7d39c083922b6fb9af4b3d53c1aad9d7 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -189,6 +189,26 @@ static QStandardItemModel *pageModel(const QList<IOptionsPage*> &pages,
     return model;
 }
 
+// ----------- Pages tree view
+
+/**
+ * Special version of a QTreeView that has the width of the first column as
+ * minimum size.
+ */
+class PageTree : public QTreeView
+{
+public:
+    PageTree(QWidget *parent = 0) : QTreeView(parent)
+    {
+        setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding);
+    }
+
+    virtual QSize sizeHint() const
+    {
+        return QSize(sizeHintForColumn(0) + frameWidth() * 2, 100);
+    }
+};
+
 // ----------- SettingsDialog
 
 // Helpers to sort by category. id
@@ -215,7 +235,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &categoryId,
     m_applied(false),
     m_stackedLayout(new QStackedLayout),
     m_filterLineEdit(new Utils::FilterLineEdit),
-    m_pageTree(new QTreeView),
+    m_pageTree(new PageTree),
     m_headerLabel(new QLabel)
 {
     createGui();
@@ -235,7 +255,7 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &categoryId,
 
     // Create pages with title labels with a larger, bold font, left-aligned
     // with the group boxes of the page.
-    foreach(IOptionsPage *page, m_pages)
+    foreach (IOptionsPage *page, m_pages)
         m_stackedLayout->addWidget(page->createPage(0));
 
     QModelIndex initialIndex;
@@ -251,7 +271,6 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &categoryId,
         const QModelIndex proxyIndex = m_proxyModel->mapFromSource(initialIndex);
         m_pageTree->selectionModel()->setCurrentIndex(proxyIndex, QItemSelectionModel::ClearAndSelect);
     }
-    m_pageTree->resizeColumnToContents(0);
 
     // The order of the slot connection matters here, the filter slot
     // opens the matching page after the model has filtered.
@@ -425,5 +444,13 @@ void SettingsDialog::done(int val)
     QDialog::done(val);
 }
 
+/**
+ * Override to make sure the settings dialog starts up as small as possible.
+ */
+QSize SettingsDialog::sizeHint() const
+{
+    return minimumSize();
+}
+
 }
 }
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h
index 7113b0f3b08980908fe5b0a61460ae3e66d1dd98..cfc57d5f1c4bd7ea33aea82c608112b2f527d9cb 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.h
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.h
@@ -69,6 +69,8 @@ public:
     // at least once
     bool execDialog();
 
+    virtual QSize sizeHint() const;
+
 public slots:
     void done(int);
 
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.ui b/src/plugins/coreplugin/dialogs/settingsdialog.ui
deleted file mode 100644
index e2508cbdf1fcd3f600ac0bf1b8d8619d9eb544e0..0000000000000000000000000000000000000000
--- a/src/plugins/coreplugin/dialogs/settingsdialog.ui
+++ /dev/null
@@ -1,129 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>SettingsDialog</class>
- <widget class="QDialog" name="SettingsDialog">
-  <property name="geometry">
-   <rect>
-    <x>0</x>
-    <y>0</y>
-    <width>697</width>
-    <height>476</height>
-   </rect>
-  </property>
-  <property name="windowTitle">
-   <string>Options</string>
-  </property>
-  <layout class="QVBoxLayout" name="verticalLayout_2">
-   <item>
-    <widget class="QSplitter" name="splitter">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <widget class="QWidget" name="">
-      <layout class="QVBoxLayout" name="verticalLayout">
-       <item>
-        <layout class="QHBoxLayout" name="filterLayout">
-         <item>
-          <widget class="QLineEdit" name="filterLineEdit"/>
-         </item>
-         <item>
-          <widget class="QToolButton" name="filterClearButton">
-           <property name="toolTip">
-            <string>Clear filter</string>
-           </property>
-           <property name="text">
-            <string>Clear</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
-       </item>
-       <item>
-        <widget class="QTreeView" name="pageTree">
-         <property name="sizePolicy">
-          <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
-           <horstretch>0</horstretch>
-           <verstretch>0</verstretch>
-          </sizepolicy>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-     <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">
-          <size>
-           <width>350</width>
-           <height>250</height>
-          </size>
-         </property>
-        </widget>
-       </item>
-       <item>
-        <widget class="Line" name="line">
-         <property name="orientation">
-          <enum>Qt::Horizontal</enum>
-         </property>
-        </widget>
-       </item>
-      </layout>
-     </widget>
-    </widget>
-   </item>
-   <item>
-    <widget class="QDialogButtonBox" name="buttonBox">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-     <property name="standardButtons">
-      <set>QDialogButtonBox::Apply|QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
-     </property>
-    </widget>
-   </item>
-  </layout>
- </widget>
- <resources/>
- <connections>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>accepted()</signal>
-   <receiver>SettingsDialog</receiver>
-   <slot>accept()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>297</x>
-     <y>361</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>297</x>
-     <y>193</y>
-    </hint>
-   </hints>
-  </connection>
-  <connection>
-   <sender>buttonBox</sender>
-   <signal>rejected()</signal>
-   <receiver>SettingsDialog</receiver>
-   <slot>reject()</slot>
-   <hints>
-    <hint type="sourcelabel">
-     <x>297</x>
-     <y>361</y>
-    </hint>
-    <hint type="destinationlabel">
-     <x>297</x>
-     <y>193</y>
-    </hint>
-   </hints>
-  </connection>
- </connections>
-</ui>