From 2d21060bc97cf7a20dde46e20c3b4a2c6cd50f64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <thorbjorn.lindeijer@nokia.com>
Date: Fri, 26 Mar 2010 17:34:10 +0100
Subject: [PATCH] Added icons to options dialog categories

Some categories do not have icons yet, unfortunately.
---
 src/libs/utils/parameteraction.cpp            |   2 +-
 src/libs/utils/parameteraction.h              |   4 +--
 .../cmakeprojectmanager.cpp                   |   5 +++
 .../cmakeprojectmanager/cmakeprojectmanager.h |   1 +
 .../actionmanager/commandmappings.h           |   6 ----
 src/plugins/coreplugin/core.qrc               |   8 +++++
 src/plugins/coreplugin/coreconstants.h        |   1 +
 src/plugins/coreplugin/dialogs/ioptionspage.h |   2 ++
 .../coreplugin/dialogs/settingsdialog.cpp     |  29 ++++++++++++++++--
 .../coreplugin/dialogs/shortcutsettings.cpp   |   5 +++
 .../coreplugin/dialogs/shortcutsettings.h     |   1 +
 src/plugins/coreplugin/generalsettings.cpp    |   5 +++
 src/plugins/coreplugin/generalsettings.h      |   1 +
 .../coreplugin/images/category_core.png       | Bin 0 -> 930 bytes
 .../coreplugin/images/category_debug.png      | Bin 0 -> 1924 bytes
 .../coreplugin/images/category_design.png     | Bin 0 -> 852 bytes
 .../coreplugin/images/category_help.png       | Bin 0 -> 2173 bytes
 .../coreplugin/images/category_project.png    | Bin 0 -> 1100 bytes
 src/plugins/coreplugin/images/category_qt.png | Bin 0 -> 1496 bytes
 .../coreplugin/images/category_texteditor.png | Bin 0 -> 615 bytes
 src/plugins/cpaster/codepasterprotocol.cpp    |   8 ++---
 src/plugins/cpaster/codepastersettings.cpp    |   5 +++
 src/plugins/cpaster/codepastersettings.h      |   1 +
 .../cpaster/pastebindotcomprotocol.cpp        |   2 +-
 src/plugins/cpaster/pastebindotcomprotocol.h  |   2 +-
 .../cpaster/pastebindotcomsettings.cpp        |   5 +++
 src/plugins/cpaster/pastebindotcomsettings.h  |   1 +
 src/plugins/cpaster/protocol.cpp              |   2 +-
 src/plugins/cpaster/protocol.h                |   2 +-
 src/plugins/cpaster/settingspage.cpp          |   5 +++
 src/plugins/cpaster/settingspage.h            |   1 +
 .../cpptools/completionsettingspage.cpp       |   5 +++
 src/plugins/cpptools/completionsettingspage.h |   1 +
 src/plugins/cpptools/cppfilesettingspage.cpp  |   5 +++
 src/plugins/cpptools/cppfilesettingspage.h    |   1 +
 src/plugins/cvs/settingspage.cpp              |   5 +++
 src/plugins/cvs/settingspage.h                |   1 +
 src/plugins/debugger/debuggerconstants.h      |   2 ++
 src/plugins/debugger/debuggerplugin.cpp       |   3 ++
 src/plugins/debugger/gdb/gdboptionspage.cpp   |   5 +++
 src/plugins/debugger/gdb/gdboptionspage.h     |   1 +
 src/plugins/debugger/gdb/trkoptionspage.cpp   |   5 +++
 src/plugins/debugger/gdb/trkoptionspage.h     |   1 +
 src/plugins/designer/cpp/cppsettingspage.cpp  |   5 +++
 src/plugins/designer/cpp/cppsettingspage.h    |   1 +
 src/plugins/designer/designerconstants.h      |   1 +
 src/plugins/designer/settingspage.cpp         |   5 +++
 src/plugins/designer/settingspage.h           |   1 +
 src/plugins/fakevim/fakevimplugin.cpp         |   2 ++
 src/plugins/git/settingspage.cpp              |   5 +++
 src/plugins/git/settingspage.h                |   1 +
 src/plugins/help/docsettingspage.cpp          |   5 +++
 src/plugins/help/docsettingspage.h            |   1 +
 src/plugins/help/filtersettingspage.cpp       |   5 +++
 src/plugins/help/filtersettingspage.h         |   1 +
 src/plugins/help/generalsettingspage.cpp      |   5 +++
 src/plugins/help/generalsettingspage.h        |   3 +-
 src/plugins/help/helpconstants.h              |   1 +
 src/plugins/locator/settingspage.cpp          |   5 +++
 src/plugins/locator/settingspage.h            |   1 +
 src/plugins/mercurial/optionspage.cpp         |   5 +++
 src/plugins/mercurial/optionspage.h           |   1 +
 src/plugins/perforce/settingspage.cpp         |   5 +++
 src/plugins/perforce/settingspage.h           |   1 +
 .../projectexplorerconstants.h                |   1 +
 .../projectexplorersettingspage.cpp           |   9 ++++--
 .../projectexplorersettingspage.h             |   1 +
 src/plugins/qmldesigner/settingspage.cpp      |   5 +++
 src/plugins/qmldesigner/settingspage.h        |   1 +
 .../qt-maemo/maemosettingspage.cpp            |   5 +++
 .../qt-maemo/maemosettingspage.h              |   1 +
 .../qt-s60/s60devicespreferencepane.cpp       |   7 +++--
 .../qt-s60/s60devicespreferencepane.h         |   4 ++-
 .../qt4projectmanagerconstants.h              |   1 +
 .../qt4projectmanager/qtoptionspage.cpp       |   5 +++
 src/plugins/qt4projectmanager/qtoptionspage.h |   1 +
 src/plugins/subversion/settingspage.cpp       |   5 +++
 src/plugins/subversion/settingspage.h         |   1 +
 .../texteditor/behaviorsettingspage.cpp       |   5 +++
 src/plugins/texteditor/behaviorsettingspage.h |   2 ++
 .../texteditor/displaysettingspage.cpp        |   5 +++
 src/plugins/texteditor/displaysettingspage.h  |   2 ++
 src/plugins/texteditor/fontsettingspage.cpp   |   5 +++
 src/plugins/texteditor/fontsettingspage.h     |   1 +
 src/plugins/texteditor/texteditorconstants.h  |   1 +
 src/plugins/texteditor/texteditorsettings.cpp |   5 ++-
 src/plugins/vcsbase/vcsbasesettingspage.cpp   |   5 +++
 src/plugins/vcsbase/vcsbasesettingspage.h     |   1 +
 88 files changed, 252 insertions(+), 26 deletions(-)
 create mode 100644 src/plugins/coreplugin/images/category_core.png
 create mode 100644 src/plugins/coreplugin/images/category_debug.png
 create mode 100644 src/plugins/coreplugin/images/category_design.png
 create mode 100644 src/plugins/coreplugin/images/category_help.png
 create mode 100644 src/plugins/coreplugin/images/category_project.png
 create mode 100644 src/plugins/coreplugin/images/category_qt.png
 create mode 100644 src/plugins/coreplugin/images/category_texteditor.png

diff --git a/src/libs/utils/parameteraction.cpp b/src/libs/utils/parameteraction.cpp
index 4839d2f19ca..8a6863b596d 100644
--- a/src/libs/utils/parameteraction.cpp
+++ b/src/libs/utils/parameteraction.cpp
@@ -84,4 +84,4 @@ void ParameterAction::setParameter(const QString &p)
         setEnabled(enabled);
 }
 
-}
+} // namespace Utils
diff --git a/src/libs/utils/parameteraction.h b/src/libs/utils/parameteraction.h
index 71fc36f0b6c..c80b7bed2da 100644
--- a/src/libs/utils/parameteraction.h
+++ b/src/libs/utils/parameteraction.h
@@ -58,7 +58,7 @@ public:
     explicit ParameterAction(const QString &emptyText,
                              const QString &parameterText,
                              EnablingMode em = AlwaysEnabled,
-                             QObject* parent = 0);
+                             QObject *parent = 0);
 
     QString emptyText() const;
     void setEmptyText(const QString &);
@@ -78,6 +78,6 @@ private:
     EnablingMode m_enablingMode;
 };
 
-}
+} // namespace Utils
 
 #endif // PARAMETERACTION_H
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index 4ba6a66dee2..b138e8c0dea 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -258,6 +258,11 @@ QString CMakeSettingsPage::displayCategory() const
     return tr("CMake");
 }
 
+QIcon CMakeSettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Add CMake icon or move this into Projects category
+}
+
 QWidget *CMakeSettingsPage::createPage(QWidget *parent)
 {
     QWidget *outerWidget = new QWidget(parent);
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
index 69cc4b5cbf8..92f2ab01763 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.h
@@ -91,6 +91,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
diff --git a/src/plugins/coreplugin/actionmanager/commandmappings.h b/src/plugins/coreplugin/actionmanager/commandmappings.h
index a040c2f9afd..929618e9c59 100644
--- a/src/plugins/coreplugin/actionmanager/commandmappings.h
+++ b/src/plugins/coreplugin/actionmanager/commandmappings.h
@@ -60,12 +60,6 @@ public:
     CommandMappings(QObject *parent = 0);
     ~CommandMappings();
 
-    // IOptionsPage
-    virtual QString id() const = 0;
-    virtual QString displayName() const = 0;
-    virtual QString category() const = 0;
-    virtual QString displayCategory() const = 0;
-
 protected slots:
     void commandChanged(QTreeWidgetItem *current);
     void filterChanged(const QString &f);
diff --git a/src/plugins/coreplugin/core.qrc b/src/plugins/coreplugin/core.qrc
index 009ec866870..cb606618ee0 100644
--- a/src/plugins/coreplugin/core.qrc
+++ b/src/plugins/coreplugin/core.qrc
@@ -43,6 +43,14 @@
         <file>images/unlocked.png</file>
         <file>images/extension.png</file>
         <file>images/darkclosebutton.png</file>
+        <file>images/category_debug.png</file>
+        <file>images/category_core.png</file>
+        <file>images/category_texteditor.png</file>
+        <file>images/category_help.png</file>
+        <file>images/category_project.png</file>
+        <file>images/category_design.png</file>
+        <file>images/category_qt.png</file>
+
         <file>editormanager/BinFiles.mimetypes.xml</file>
         <file>images/progressbar.png</file>
     </qresource>
diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index 014b9e63954..765c899c2b1 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -227,6 +227,7 @@ const char * const WIZARD_CATEGORY_QT = "R.Qt";
 const char * const WIZARD_TR_CATEGORY_QT = QT_TRANSLATE_NOOP("Core", "Qt");
 
 const char * const SETTINGS_CATEGORY_CORE = "A.Core";
+const char * const SETTINGS_CATEGORY_CORE_ICON = ":/core/images/category_core.png";
 const char * const SETTINGS_TR_CATEGORY_CORE = QT_TRANSLATE_NOOP("Core", "Environment");
 const char * const SETTINGS_ID_ENVIRONMENT = "A.General";
 
diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h
index e2e69b5bedd..7818921e7e1 100644
--- a/src/plugins/coreplugin/dialogs/ioptionspage.h
+++ b/src/plugins/coreplugin/dialogs/ioptionspage.h
@@ -32,6 +32,7 @@
 
 #include <coreplugin/core_global.h>
 
+#include <QtGui/QIcon>
 #include <QtCore/QObject>
 
 QT_BEGIN_NAMESPACE
@@ -51,6 +52,7 @@ public:
     virtual QString displayName() const = 0;
     virtual QString category() const = 0;
     virtual QString displayCategory() const = 0;
+    virtual QIcon categoryIcon() const = 0;
     virtual bool matches(const QString & /* searchKeyWord*/) const { return false; }
 
     virtual QWidget *createPage(QWidget *parent) = 0;
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index 6fd7e708118..7d0f8c4656f 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -43,6 +43,7 @@
 #include <QtGui/QPushButton>
 #include <QtGui/QToolButton>
 #include <QtGui/QToolBar>
+#include <QtGui/QScrollBar>
 #include <QtGui/QSpacerItem>
 #include <QtGui/QStyle>
 #include <QtGui/QStackedLayout>
@@ -52,9 +53,11 @@
 #include <QtGui/QDialogButtonBox>
 #include <QtGui/QListView>
 #include <QtGui/QApplication>
+#include <QtGui/QGroupBox>
 
 static const char categoryKeyC[] = "General/LastPreferenceCategory";
 static const char pageKeyC[] = "General/LastPreferencePage";
+const int categoryIconSize = 32;
 
 namespace Core {
 namespace Internal {
@@ -64,6 +67,7 @@ namespace Internal {
 struct Category {
     QString id;
     QString displayName;
+    QIcon icon;
     QList<IOptionsPage*> pages;
     int index;
     QTabWidget *tabWidget;
@@ -85,11 +89,15 @@ private:
     Category *findCategoryById(const QString &id);
 
     QList<Category*> m_categories;
+    QIcon m_emptyIcon;
 };
 
 CategoryModel::CategoryModel(QObject *parent)
     : QAbstractListModel(parent)
 {
+    QPixmap empty(categoryIconSize, categoryIconSize);
+    empty.fill(Qt::transparent);
+    m_emptyIcon = QIcon(empty);
 }
 
 CategoryModel::~CategoryModel()
@@ -107,6 +115,12 @@ QVariant CategoryModel::data(const QModelIndex &index, int role) const
     switch (role) {
     case Qt::DisplayRole:
         return m_categories.at(index.row())->displayName;
+    case Qt::DecorationRole: {
+            QIcon icon = m_categories.at(index.row())->icon;
+            if (icon.isNull())
+                icon = m_emptyIcon;
+            return icon;
+        }
     }
 
     return QVariant();
@@ -126,6 +140,7 @@ void CategoryModel::setPages(const QList<IOptionsPage*> &pages)
             category = new Category;
             category->id = categoryId;
             category->displayName = page->displayCategory();
+            category->icon = page->categoryIcon();
             category->pages.append(page);
             m_categories.append(category);
         } else {
@@ -198,7 +213,10 @@ public:
 
     virtual QSize sizeHint() const
     {
-        return QSize(sizeHintForColumn(0) + frameWidth() * 2, 100);
+        int width = sizeHintForColumn(0) + frameWidth() * 2 + 5;
+        if (verticalScrollBar()->isVisible())
+            width += verticalScrollBar()->width();
+        return QSize(width, 100);
     }
 };
 
@@ -262,9 +280,14 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &categoryId,
         QTabWidget *tabWidget = new QTabWidget;
         for (int j = 0; j < category->pages.size(); ++j) {
             IOptionsPage *page = category->pages.at(j);
-            tabWidget->addTab(page->createPage(0), page->displayName());
+            QWidget *widget = page->createPage(0);
+            tabWidget->addTab(widget, page->displayName());
             if (initialCategoryIndex == i && page->id() == initialPage)
                 initialPageIndex = j;
+
+            // A hack to remove the borders from all group boxes
+            foreach (QGroupBox *groupBox, qFindChildren<QGroupBox*>(widget))
+                groupBox->setFlat(true);
         }
 
         connect(tabWidget, SIGNAL(currentChanged(int)),
@@ -276,8 +299,10 @@ SettingsDialog::SettingsDialog(QWidget *parent, const QString &categoryId,
 
     m_proxyModel->setSourceModel(m_model);
     m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
+    m_categoryList->setIconSize(QSize(categoryIconSize, categoryIconSize));
     m_categoryList->setModel(m_proxyModel);
     m_categoryList->setSelectionMode(QAbstractItemView::SingleSelection);
+    m_categoryList->setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
 
     connect(m_categoryList->selectionModel(), SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
             this, SLOT(currentChanged(QModelIndex)));
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index b756dd9d51b..51ccb8aca45 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -87,6 +87,11 @@ QString ShortcutSettings::displayCategory() const
     return QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE);
 }
 
+QIcon ShortcutSettings::categoryIcon() const
+{
+    return QIcon(QLatin1String(Core::Constants::SETTINGS_CATEGORY_CORE_ICON));
+}
+
 QWidget *ShortcutSettings::createPage(QWidget *parent)
 {
     m_keyNum = m_key[0] = m_key[1] = m_key[2] = m_key[3] = 0;
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.h b/src/plugins/coreplugin/dialogs/shortcutsettings.h
index 32343f10cb0..ab0933c1e46 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.h
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.h
@@ -68,6 +68,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp
index da2c7d59c70..cd2a4f922ff 100644
--- a/src/plugins/coreplugin/generalsettings.cpp
+++ b/src/plugins/coreplugin/generalsettings.cpp
@@ -77,6 +77,11 @@ QString GeneralSettings::displayCategory() const
     return QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE);
 }
 
+QIcon GeneralSettings::categoryIcon() const
+{
+    return QIcon(QLatin1String(Core::Constants::SETTINGS_CATEGORY_CORE_ICON));
+}
+
 static bool hasQmFilesForLocale(const QString &locale, const QString &creatorTrPath)
 {
     static const QString qtTrPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
diff --git a/src/plugins/coreplugin/generalsettings.h b/src/plugins/coreplugin/generalsettings.h
index ef85249ee38..62b478ec823 100644
--- a/src/plugins/coreplugin/generalsettings.h
+++ b/src/plugins/coreplugin/generalsettings.h
@@ -55,6 +55,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
     QWidget* createPage(QWidget *parent);
     void apply();
     void finish();
diff --git a/src/plugins/coreplugin/images/category_core.png b/src/plugins/coreplugin/images/category_core.png
new file mode 100644
index 0000000000000000000000000000000000000000..89745b3bc7e002866658a9d2951e2c39ba4d59d4
GIT binary patch
literal 930
zcmV;T16}-yP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM~
z5CRIxuy8H_00SaPL_t(o!{wJjODk6xhMyT*i31V42nZMK!a_s{GN{{t`4@KMg$scT
zZrrsi_ipM=2o!HO6$F2Q3->W0i(J%!y0|G9S}s%w-kIZ^Ip=gyCrrjkoyI8?I&e5M
zhs?as_nz-Ne1ZS_WhEb)&E_lME$|w6Rj}4a;2m((YPCK-0cbXxOEWVwAGWr(a9x-A
z`T0WChr=PgUXP253zSk{w_2?MfSvfw+eV{7y<VqWE@O--bd<|w>h(H}MuSI}0r(;T
z@Wyprj4=#{L(b05@H`KtRAxkzgtXQurI1n*MG=-|vAVj-&dv^%N(I+-IX^#t1ALzb
zs5p*;F^1FAQ#{Yh6wMOXTBEf_N{N&bt@UW#7(=hu<Np4h{r!C$#{sBhIWQ6!3<kNP
zjYYyRL`pd(nx3z(uSefcUSj}S>(M+Z+T=%L;Yp&gGs*kh0P%}iLrO^)hED`0iM|*h
zc^`)1NIXx}$+c$zV%y_PPK!$^d3bpEM^UHOayg)s8Up~3QX+)NZS_<RWC0jsP)ZR5
z0ZOT<0g}Ny3lK%on3xb^l<m{lK2;J%Q8da0A;gQKPD12%AO;A6fGCPyBsw*KQtC;`
zJtsOze5xFXqt65IoOmvP<T;S6`8?515{-v#+nMKpopwNL&C=2mLWr@gNY8&al64<L
zRjbv^N=Q2J$@l$AsZ?TndmAAH-EQ|u?dOR&=_bI&#s<5)yJ)QuLI8Zq0{HRf=H|P#
zwKWzN7TDX{E4%?U#>9QbyR0oZ>UO*I`+a=hFT5r5eV=~6Pp8uXIGWTIfAiR{eG4oW
zY`|~8&yQX4FPT*U{0jU4`~-YiFn|R9NbY~SEuXb*ySBNx$@20tb8~Zrss};9?d>g>
zmzQX*-?v(=hqMD<t*@_(TCMi4`~z|vhgz+MF@|=#y#V~42AEx0S@~>P7I$}d93LMS
zUWSW{i&U#s+U@piRu1@&Ei)%4CtO`!VcUNdiEZ0xtw(b#WLZ`wP`a7zbUGXy9B_De
z7`Nq_2hrzPa4;B9DwW1gwJeA<K>9g3JkJ{i^q;!^1av3rZIasfkN^Mx07*qoM6N<$
Ef_|2p;Q#;t

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/category_debug.png b/src/plugins/coreplugin/images/category_debug.png
new file mode 100644
index 0000000000000000000000000000000000000000..f8c040c744c326d42409e7bf8c59740cff483a1a
GIT binary patch
literal 1924
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
KMNUMnLSTZbjF9sH

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/category_design.png b/src/plugins/coreplugin/images/category_design.png
new file mode 100644
index 0000000000000000000000000000000000000000..fb9203565eab34a400d169057798db18582ae28e
GIT binary patch
literal 852
zcmV-a1FQUrP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM~
z5CS8M0_Z{j00PuWL_t(o!|j*fN>ou4#($RAlREyHH%KiqOOtF$8j_ThC<>v1@~-y?
zdW*0~BPgO06^jIIf+R7O%4g6Vr@ZX!y;c|doHGtHqaG*mBG=76Xa8B>+TXX<IvhB#
zeYT2Xlg-V|nn)!6IoQ<HQ~_RPv5kpDg8L7ilWdBSUf$S|b5T&#jp{~GNFA%<{bH7p
zhqsHKt1RU(*%Zqgi<;&*6!qVO=S_C$L=__?T$BtTy}VJHfkXa{?WP+CEcmw%)-JbJ
zGd{mw@(zb~s$a4xhA4C%jo}%^7{L?8s$vwZC{~oz@hYrQjJP=wuxLrYl{*3NY>XiS
z$;KE0oNqjmQ$aN+gE$ttTdEoRnnA3aH^S~2u&PY|_>BNl-+zI^hi_R_m3K?)OfF@a
zSjZv@;|uGE!022CW8BRJFk3`Wk^w7D!(haJR&_K_E@pFDSHReOhThh=+ZR-WC@Q);
z2CS>AP)kLz#yOst&ti?!+~P(f@OEy^?X$VL&{xy|JRi(h!Lu%zjJUGvZmG@#wnnj@
z(tj!*?hBGKU@<xaIJyI807fO$xTmEi1olMfZ;$hGb}hVd5SXfCE^-cRrmv@^1_63c
z#!*%J+G;@I%ISFCnQQHC{YFPE&pxe&4ark2F9}EIGxW9A@MbQ<)wVdVX4eW@Zty&C
zwk`w@=8Q)f0T`$M>o02|Sg@AY`TTJ>y_y#o0Ec%IfUleN%S^<9y!iaHunkvGz{pOm
zbQSnD?5W~;E~BrXsdb6BsRRwVjK7ntj|9HG1b{K170N(I9inivvo6<yi`cyj^*o+g
zEkA&;3UEver&qakuAZkKR~*fzP}`{B+cKb<YbL77lbMw*6Dulsq;Ek~ZOab8`=i@_
zO7}E?yB8Y(80=~&8)UGnfw@N!0~nfKVX&)#q3M;f!ME~Jxz)k{f`OtxCaF|vPjbH4
ekI8}UyZr?&^JacdzG%Jx0000<MNUMnLSTXwhJyG2

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/category_help.png b/src/plugins/coreplugin/images/category_help.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce2497f9ad62f5de989a74161ffbad9fa2ea747b
GIT binary patch
literal 2173
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

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/category_project.png b/src/plugins/coreplugin/images/category_project.png
new file mode 100644
index 0000000000000000000000000000000000000000..18d157e971f0864175274cfcdca540f9a5424e1b
GIT binary patch
literal 1100
zcmV-S1he~zP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM~
z5C#o1xFCrD00YcPL_t(o!|j(%i(Ew%hTn7QR^2<vh$0wtp`Zw3TxBsIIIhgvkAOcy
z7Xb|jF5|+T;6{m%oogWjhWrGZQ5ZxNM$|z}kc`1e(({qY^sRG_i>iBXPxnlEgaibq
z7G1YbQ+1wt&wGm7!14IM4>~9~J3D)kh(A)50~dMkuPiSwzx_yv=H})uy>|Aj{rJn8
z-QM1{+uQeSW9y!6Z0*?Jn>)7l=eoV|);U{PSh(`g6<An!W$E!JpE&o~7nf0;m`3l1
zpT`!QnRy<b3?ICA9yix-Uj4S$d-I_HEG{m7^VF%Q7eD>{65tAa_tUS3E_(TeXK^Ah
zKD_Wg{`h_E-{kB0vix$n*SkChFh4(UUwwTIyV3Cd>f}vdeC`=M<^eOna?C7!q{(uu
zoBMa}tX??(?&`|QO6#AZc@UB9>(_74Z|iqY`ZB<=J1{XbqbMA1{Ivll0ug~Z%|x7H
z`Fr<!ioY~7bGoXk)5H4}L(kKuhOO;wxcd%eC{cKy7Bj;!0{~PNgMp@QD2kL!n`D|`
zlsf<>uqucMYSt=p5CF^+F-C|A>N=uu4!$fAyhkJkGwp+^V;pMDA|=%XLQG)d4vq<C
zI;Q9dfFVW&F~Foy5!5kaj~zl)!g~)Uf-twzwlMVwj1qVRM0Jt^YN#cGjX-GXsZbI`
ziE!)?LO>Bb95aX*lI!h@ZmR}{nc*C#(h!X$9|KS`#3<QRX%QKNK_IpS5+mH6gAXAo
z;uuT}QEg4vz^E!zwS}1oU@%CG&@Az=f!MO_Fo-H*ta0Btlx3Ab8mWn(d5vR+bFPK4
zNhaLd+(IqVC1rwA1Cvk4oJvFlR)fYJ42lBP)KuGUP2GhRERtXxPX;g;qDbmzAaA6t
z;dB@zcLfnaR8hwoWhmi8*_DvHyFpZ;6H8!*I!c$+@`(U2kASoe?_flBQPcyJ)f61N
zu>;toE>O!JXsGjPnX?&*KtpC5RwcDvGGnYGd?*ph(E5V;2p%v)t3Xq4BZ6j0o22b6
zr$fFVf{_ADP$EQ8)OC%rs#41`AFTvYB+E|wWN(scjy19;5Caq1m{O8nG_|cS1A-5e
z+Yn|DQ3#M_rvqhgBvl=Wk?p&BSqVxCk%)mCV6)$Ua0&MLK@EU)Fj;}FMGsdc891xh
zz=$3}0RVBZhfqynR2ega!eGoG0u)IVZCVxvCWBc5(X5{3avCwz^nnW8GP6^!zk23~
z?@~1MNH{q?-G<Uk`E7^Vc)x%5a0OfumOlCT;yaJ{E&P`Ae(Ctn$np43jeh{!4)OMi
SJK#3}0000<MNUMnLSTZ*X65Jr

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/category_qt.png b/src/plugins/coreplugin/images/category_qt.png
new file mode 100644
index 0000000000000000000000000000000000000000..3731d351d4d81761481bb5142f53bc38b3e0b438
GIT binary patch
literal 1496
zcmV;}1t<E6P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM~
z5DPC;b{`-B00me{L_t(o!|j(@Y*bYk$A90s%XHe>sVJqfMg)T_0#V#)OQK=`w`dd<
zV>A*?G$!DN`euzGCO(-Mm&Bk(c`zm}knlhxtr3X?Tp&=kQWjB`Lg_X$ZRakZ5BJV(
zOF=rsH@)*RIrp6N|9}5)z3^Xu<gBYpr#xU(S2SFknN&aPqD;y$Dc}gO4|I<zJAqaa
zIe}^yB7IGb&4qu5z|tvq;fHJH&B@pcZmy=_D=3J>+Z7NLR26(dd{j>Ydl21*%0?Ca
zB^1-~RztI12!RcF;T_AD)KOh&AtFSmXB;UmiN^nn`=q$mq3|d0hlsX<X+w2K)4Z17
zhQryT2q@QJK}DH~?@N$SRYX9G=rLA=U6d&%BvK>Fctq!*=Kfg5oxrSrCNSLGVa6+p
z>saIpSqff&Yuf~&k1;kWD~$?>>Ih*F6-6S=BIf;Pg4tsV69FU2*4<ee>K@|m*$b$x
zuAz7EIJ-JGvh~;+{Gfms3sJ=n72Cv7A|qrPb-OtqyrLKbAFVmWle1Uy(w#3ct#&5W
zWi?!pna#q<&$H}?)kKK`2aadiwD}6&XlUl@adRWrAj4c#A_2=14j#+1XzC-}fBo$M
z^cFgJ_vdF=^3k(+fk!4)!#z`8L}h@ThdP-*y&eQ?%N+`0iAj`7AY~i2v}So_(bJJb
zL})qm89n}9+OjRY`R#`QOuuv<-Q8tWGMNW&oFB(Ql(q?O=?Vz>f=_pEirUQh$fv;3
zzP%t0w@j~L-L@YH!jP0zPTQVIeDK%@Os$;+zyniX<MmtDQsGp`{v4|UIz+fT>yfsq
zNxP|7PRRK^09;(@&^^#a5c&W-+ECA$ZR-+C|Li%yk?#Ej>X)d13^B>}`((<iaEzTW
z3)G7a8zB&%APfPRJ8c@Pep;Pev-$XHK52c90Y7_A1?=;=!1F^Kt7v`1Ok+SJfci;c
za!fgnv4&aakTU5r3f1`(kdeNKf;WQD#5Hop0f~c7Q5l`a=K?=F0UgPv%(dwE@`M^9
zaak6LtPDd1F$w2^pzmxd534~JkcL&|F1`Idc)pid8WkNS48aavtXTHW{-d0eft<bf
z{UZSlm8x=^LG2}17%JnLvKkcV$$3<kWfB5^_3cK?Xpks<b&M_;(P{<9Hq=cBY413a
zyq;J!n?MKHvbTc;GwZR8p%C=b-u(-<ILSWORC2N_z!C@5vBrRmOv6Dh<fdsAtX%tE
zvUY3TVyetUQiU0;T)Yf`{inB*D|C`A^wE>+17P9g<*dAIJ(pEZiDOVp4Z<kUYR9EH
znE#RYzyA^t%AE`^-10daUik{wb{X{ZtZRQ4BWW70b9wfQ6`anW!q+|y=9@X$fB2kk
zw$I;*g)oH2=TBta_IJpyKg!}c4|C=C%K_Naxry)gy-m*R#S)tt6EhU*T6t&leOMNR
z8sJ*xNc<};3v_788Yl$R&l<-G`G%)fy_#&vd%fhm9xUS^BKSdw;F5OJxF$`?uE1c5
zT`?>z2!~~kNK_Rs$&|6bYda^pP62S;goV6()7PY}isXP4=S0z{BMyy=n@a2jarx6?
zRTKsbA@?>`vH0UBIdH0-oY#$Q?4da^>0}BCxPs7y%6ldEf@qwIFN@bERF^YhZa=Gb
zEXB256hF4SI5Ee-krJK2uc$uPG_U2*SO~a7E+_(P(W2t)8EtfIAV4sA;4rF(5%wXp
z0_`Aeh#qTdZ1GCTf=>}%E`EN*PEwEnGypsic7y&7YzEoV)Y#m5p`T`>34GeNf+w!(
y3__lAY<@*`7s76o{Ro{Xr<)pE^8Ek&OV8i8FG~n^(6LSc0000<MNUMnLSTaOwYSm$

literal 0
HcmV?d00001

diff --git a/src/plugins/coreplugin/images/category_texteditor.png b/src/plugins/coreplugin/images/category_texteditor.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4798e04148c1bb1c46fe9958cfc28dd423587cf
GIT binary patch
literal 615
zcmV-t0+{`YP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800001b5ch_0Itp)
z=>Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2igM~
z5Ct_bm&?=u00HMoL_t(o!|hkGs_H-xJ?|pq18gE<=XVHdu!x|QSXu->A=qhQDPk?6
z*ofda=)Z`lzmVOm?!4*-HHo{4%7cf~?d<N%$=Nfr8{ljI*#1O0tJNxfBH3=Y3+2ni
zE#7Xov4Mz4drk-e!!Tf3R^<AO3U!iXQGUi448w?xkx>P2wOUGQ9mhefRtxR-JP%UJ
zr+bwEHk*ys7eCH1#vp`Hg3svEdpI26x~`Vkq?EW`uK<9>V(}gTg+c-A^;)@B2m#OY
zv^12MfnKk7=W8??Xt&!T>QzZoGq75%o}N8pETCT3ex3m!A~=o%B7&4M@I{R|=kR@B
zDbB<U%x1GtDLn@DeIJ~2?Q>5A;4xUz<S#KmMCf!nv777lI&9n42Ac@LFYU|aGB!Bp
zJZLs)l51B15#e||qTlb|0kkX&&1N%o@<bZQ=ku7)=O7{oA%b&P3G`(RJo+w|3m9Ws
z$=;%YZnqmSFc=Kr`+npN_c0Ajr&Hw(_c0CJ2HNlU7!HS8L0#8HE|+@^z%9)}2xPNa
zOePcU7tveGkaLdH>4ec}6xoa_mCEPJkTC`+B}~)Acsx$ku2TcJ?R4k!IRpRzY}-b;
zTu$_u)dFCe=H0khETU8@z5QPy7C_uP{%il8{RKM)xz1>H^)3Ja002ovPDHLkV1f?h
B41NFr

literal 0
HcmV?d00001

diff --git a/src/plugins/cpaster/codepasterprotocol.cpp b/src/plugins/cpaster/codepasterprotocol.cpp
index bb154020a3d..9c82a2adf06 100644
--- a/src/plugins/cpaster/codepasterprotocol.cpp
+++ b/src/plugins/cpaster/codepasterprotocol.cpp
@@ -113,9 +113,9 @@ void CodePasterProtocol::list()
 }
 
 void CodePasterProtocol::paste(const QString &text,
-                       const QString &username,
-                       const QString &comment,
-                       const QString &description)
+                               const QString &username,
+                               const QString &comment,
+                               const QString &description)
 {
     QString hostName = m_page->hostName();
     if (!isValidHostName(hostName))
@@ -139,7 +139,7 @@ bool CodePasterProtocol::hasSettings() const
     return true;
 }
 
-Core::IOptionsPage* CodePasterProtocol::settingsPage()
+Core::IOptionsPage *CodePasterProtocol::settingsPage()
 {
     return m_page;
 }
diff --git a/src/plugins/cpaster/codepastersettings.cpp b/src/plugins/cpaster/codepastersettings.cpp
index b5d310ed31f..f88fecdf506 100644
--- a/src/plugins/cpaster/codepastersettings.cpp
+++ b/src/plugins/cpaster/codepastersettings.cpp
@@ -75,6 +75,11 @@ QString CodePasterSettingsPage::displayCategory() const
     return QCoreApplication::translate("CodePaster", Constants::CPASTER_SETTINGS_TR_CATEGORY);
 }
 
+QIcon CodePasterSettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Add icon for code paster category
+}
+
 QWidget *CodePasterSettingsPage::createPage(QWidget *parent)
 {
     QGroupBox *groupBox = new QGroupBox();
diff --git a/src/plugins/cpaster/codepastersettings.h b/src/plugins/cpaster/codepastersettings.h
index 42c2bdb5a90..82243a155d1 100644
--- a/src/plugins/cpaster/codepastersettings.h
+++ b/src/plugins/cpaster/codepastersettings.h
@@ -49,6 +49,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/cpaster/pastebindotcomprotocol.cpp b/src/plugins/cpaster/pastebindotcomprotocol.cpp
index eb151c23239..bead94988cd 100644
--- a/src/plugins/cpaster/pastebindotcomprotocol.cpp
+++ b/src/plugins/cpaster/pastebindotcomprotocol.cpp
@@ -149,7 +149,7 @@ void PasteBinDotComProtocol::fetchFinished()
     emit fetchDone(title, content, error);
 }
 
-Core::IOptionsPage* PasteBinDotComProtocol::settingsPage()
+Core::IOptionsPage *PasteBinDotComProtocol::settingsPage()
 {
     return settings;
 }
diff --git a/src/plugins/cpaster/pastebindotcomprotocol.h b/src/plugins/cpaster/pastebindotcomprotocol.h
index f7ddc25b714..433c9fc1e2f 100644
--- a/src/plugins/cpaster/pastebindotcomprotocol.h
+++ b/src/plugins/cpaster/pastebindotcomprotocol.h
@@ -48,7 +48,7 @@ public:
 
     virtual unsigned capabilities() const { return 0; }
     bool hasSettings() const { return true; }
-    Core::IOptionsPage* settingsPage();
+    Core::IOptionsPage *settingsPage();
 
     bool canList() const { return false; }
 
diff --git a/src/plugins/cpaster/pastebindotcomsettings.cpp b/src/plugins/cpaster/pastebindotcomsettings.cpp
index 68adfd9f970..7ec1607f2d6 100644
--- a/src/plugins/cpaster/pastebindotcomsettings.cpp
+++ b/src/plugins/cpaster/pastebindotcomsettings.cpp
@@ -66,6 +66,11 @@ QString PasteBinDotComSettings::displayCategory() const
     return QCoreApplication::translate("CodePaster", CodePaster::Constants::CPASTER_SETTINGS_TR_CATEGORY);
 }
 
+QIcon PasteBinDotComSettings::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for CodePaster
+}
+
 QWidget *PasteBinDotComSettings::createPage(QWidget *parent)
 {
     Ui_PasteBinComSettingsWidget ui;
diff --git a/src/plugins/cpaster/pastebindotcomsettings.h b/src/plugins/cpaster/pastebindotcomsettings.h
index ec1fe9bdeb1..b8cf5da2714 100644
--- a/src/plugins/cpaster/pastebindotcomsettings.h
+++ b/src/plugins/cpaster/pastebindotcomsettings.h
@@ -52,6 +52,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/cpaster/protocol.cpp b/src/plugins/cpaster/protocol.cpp
index ffec7caa73e..93c16dfb311 100644
--- a/src/plugins/cpaster/protocol.cpp
+++ b/src/plugins/cpaster/protocol.cpp
@@ -54,7 +54,7 @@ bool Protocol::hasSettings() const
     return false;
 }
 
-Core::IOptionsPage* Protocol::settingsPage()
+Core::IOptionsPage *Protocol::settingsPage()
 {
     return 0;
 }
diff --git a/src/plugins/cpaster/protocol.h b/src/plugins/cpaster/protocol.h
index da8a05153da..eed43167a34 100644
--- a/src/plugins/cpaster/protocol.h
+++ b/src/plugins/cpaster/protocol.h
@@ -57,7 +57,7 @@ public:
 
     virtual unsigned capabilities() const = 0;
     virtual bool hasSettings() const;
-    virtual Core::IOptionsPage* settingsPage();
+    virtual Core::IOptionsPage *settingsPage();
 
     virtual void fetch(const QString &id) = 0;
     virtual void list();
diff --git a/src/plugins/cpaster/settingspage.cpp b/src/plugins/cpaster/settingspage.cpp
index 708e4662c18..2d16327da61 100644
--- a/src/plugins/cpaster/settingspage.cpp
+++ b/src/plugins/cpaster/settingspage.cpp
@@ -104,6 +104,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("CodePaster", Constants::CPASTER_SETTINGS_TR_CATEGORY);
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for CodePaster
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsWidget(m_protocols, parent);
diff --git a/src/plugins/cpaster/settingspage.h b/src/plugins/cpaster/settingspage.h
index 063c372afac..10145ed6bff 100644
--- a/src/plugins/cpaster/settingspage.h
+++ b/src/plugins/cpaster/settingspage.h
@@ -68,6 +68,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp
index f513ac93e28..79729b7215b 100644
--- a/src/plugins/cpptools/completionsettingspage.cpp
+++ b/src/plugins/cpptools/completionsettingspage.cpp
@@ -70,6 +70,11 @@ QString CompletionSettingsPage::displayCategory() const
     return QCoreApplication::translate("Text Editor", TextEditor::Constants::TEXT_EDITOR_SETTINGS_TR_CATEGORY);
 }
 
+QIcon CompletionSettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *CompletionSettingsPage::createPage(QWidget *parent)
 {
     QWidget *w = new QWidget(parent);
diff --git a/src/plugins/cpptools/completionsettingspage.h b/src/plugins/cpptools/completionsettingspage.h
index a3e16da0645..ab41757fe5e 100644
--- a/src/plugins/cpptools/completionsettingspage.h
+++ b/src/plugins/cpptools/completionsettingspage.h
@@ -53,6 +53,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index ae4297cbaeb..34de7008856 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -319,6 +319,11 @@ QString CppFileSettingsPage::displayCategory() const
     return QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_TR_CATEGORY);
 }
 
+QIcon CppFileSettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for C++ or move into category
+}
+
 QWidget *CppFileSettingsPage::createPage(QWidget *parent)
 {
 
diff --git a/src/plugins/cpptools/cppfilesettingspage.h b/src/plugins/cpptools/cppfilesettingspage.h
index 58508cb336c..236cd3abdb6 100644
--- a/src/plugins/cpptools/cppfilesettingspage.h
+++ b/src/plugins/cpptools/cppfilesettingspage.h
@@ -101,6 +101,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp
index 7f9fb6a74ec..2a137e93b28 100644
--- a/src/plugins/cvs/settingspage.cpp
+++ b/src/plugins/cvs/settingspage.cpp
@@ -108,6 +108,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for Version Control
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
diff --git a/src/plugins/cvs/settingspage.h b/src/plugins/cvs/settingspage.h
index 9b230835059..fab22d1c866 100644
--- a/src/plugins/cvs/settingspage.h
+++ b/src/plugins/cvs/settingspage.h
@@ -73,6 +73,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/debugger/debuggerconstants.h b/src/plugins/debugger/debuggerconstants.h
index db6bb35c7b8..3482de3dc05 100644
--- a/src/plugins/debugger/debuggerconstants.h
+++ b/src/plugins/debugger/debuggerconstants.h
@@ -60,6 +60,8 @@ const char * const DEBUGGER_COMMON_SETTINGS_NAME =
 const char * const DEBUGGER_SETTINGS_CATEGORY = "O.Debugger";
 const char * const DEBUGGER_SETTINGS_TR_CATEGORY =
     QT_TRANSLATE_NOOP("Debugger", "Debugger");
+const char * const DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON =
+    ":/core/images/category_debug.png";
 
 namespace Internal {
     enum { debug = 0 };
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 05ff7a6e14a..3c1ffdfbb3a 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -341,6 +341,8 @@ public:
         { return _(DEBUGGER_SETTINGS_CATEGORY);  }
     QString displayCategory() const
         { return QCoreApplication::translate("Debugger", DEBUGGER_SETTINGS_TR_CATEGORY); }
+    QIcon categoryIcon() const
+        { return QIcon(QLatin1String(DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON)); }
 
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(settings()); }
@@ -455,6 +457,7 @@ public:
     QString displayName() const { return tr("Debugging Helper"); }
     QString category() const { return _(DEBUGGER_SETTINGS_CATEGORY); }
     QString displayCategory() const { return QCoreApplication::translate("Debugger", DEBUGGER_SETTINGS_TR_CATEGORY); }
+    QIcon categoryIcon() const { return QIcon(QLatin1String(DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON)); }
 
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(settings()); }
diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp
index e509d176cc9..d32936f4390 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.cpp
+++ b/src/plugins/debugger/gdb/gdboptionspage.cpp
@@ -62,6 +62,11 @@ QString GdbOptionsPage::displayCategory() const
     return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_TR_CATEGORY);
 }
 
+QIcon GdbOptionsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Debugger::Constants::DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *GdbOptionsPage::createPage(QWidget *parent)
 {
     QWidget *w = new QWidget(parent);
diff --git a/src/plugins/debugger/gdb/gdboptionspage.h b/src/plugins/debugger/gdb/gdboptionspage.h
index 7b4b19fa9b2..7fbf855fe37 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.h
+++ b/src/plugins/debugger/gdb/gdboptionspage.h
@@ -48,6 +48,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
diff --git a/src/plugins/debugger/gdb/trkoptionspage.cpp b/src/plugins/debugger/gdb/trkoptionspage.cpp
index f78b90c5e19..fd4c33c6d86 100644
--- a/src/plugins/debugger/gdb/trkoptionspage.cpp
+++ b/src/plugins/debugger/gdb/trkoptionspage.cpp
@@ -69,6 +69,11 @@ QString TrkOptionsPage::displayCategory() const
     return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_TR_CATEGORY);
 }
 
+QIcon TrkOptionsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Debugger::Constants::DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *TrkOptionsPage::createPage(QWidget *parent)
 {
     if (!m_widget)
diff --git a/src/plugins/debugger/gdb/trkoptionspage.h b/src/plugins/debugger/gdb/trkoptionspage.h
index d06fef2954e..8647c34a547 100644
--- a/src/plugins/debugger/gdb/trkoptionspage.h
+++ b/src/plugins/debugger/gdb/trkoptionspage.h
@@ -56,6 +56,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
diff --git a/src/plugins/designer/cpp/cppsettingspage.cpp b/src/plugins/designer/cpp/cppsettingspage.cpp
index 3b059f3c362..5c3706ba5d2 100644
--- a/src/plugins/designer/cpp/cppsettingspage.cpp
+++ b/src/plugins/designer/cpp/cppsettingspage.cpp
@@ -123,6 +123,11 @@ QString CppSettingsPage::displayCategory() const
     return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_TR_CATEGORY);
 }
 
+QIcon CppSettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Designer::Constants::SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *CppSettingsPage::createPage(QWidget *parent)
 {
     m_widget = new CppSettingsPageWidget(parent);
diff --git a/src/plugins/designer/cpp/cppsettingspage.h b/src/plugins/designer/cpp/cppsettingspage.h
index d6b71f60b8b..ecb6d977d7d 100644
--- a/src/plugins/designer/cpp/cppsettingspage.h
+++ b/src/plugins/designer/cpp/cppsettingspage.h
@@ -67,6 +67,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
diff --git a/src/plugins/designer/designerconstants.h b/src/plugins/designer/designerconstants.h
index 8348ed83e92..7c2166eca8f 100644
--- a/src/plugins/designer/designerconstants.h
+++ b/src/plugins/designer/designerconstants.h
@@ -42,6 +42,7 @@ const char * const DESIGNER_XML_EDITOR_ID ="DesignerXmlEditor";
 const char * const C_DESIGNER_XML_DISPLAY_NAME  = QT_TRANSLATE_NOOP("Designer", "Xml Editor");
 
 const char * const SETTINGS_CATEGORY = "P.Designer";
+const char * const SETTINGS_CATEGORY_ICON = ":/core/images/category_design.png";
 const char * const SETTINGS_TR_CATEGORY = QT_TRANSLATE_NOOP("Designer", "Designer");
 const char * const SETTINGS_CPP_SETTINGS_ID = "Class Generation";
 const char * const SETTINGS_CPP_SETTINGS_NAME = QT_TRANSLATE_NOOP("Designer", "Class Generation");
diff --git a/src/plugins/designer/settingspage.cpp b/src/plugins/designer/settingspage.cpp
index 1127321bfea..f316a6e78cb 100644
--- a/src/plugins/designer/settingspage.cpp
+++ b/src/plugins/designer/settingspage.cpp
@@ -65,6 +65,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_TR_CATEGORY);
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Designer::Constants::SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
     return m_designerPage->createPage(parent);
diff --git a/src/plugins/designer/settingspage.h b/src/plugins/designer/settingspage.h
index 71570e211dd..0732e386fac 100644
--- a/src/plugins/designer/settingspage.h
+++ b/src/plugins/designer/settingspage.h
@@ -53,6 +53,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index 2958b7bac81..01a4afc779f 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -131,6 +131,7 @@ public:
     QString displayName() const { return tr("General"); }
     QString category() const { return QLatin1String(Constants::SETTINGS_CATEGORY); }
     QString displayCategory() const { return tr("FakeVim"); }
+    QIcon categoryIcon() const { return QIcon(); } // TODO: Add an icon or move into another category
 
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(ICore::instance()->settings()); }
@@ -289,6 +290,7 @@ public:
     QString displayName() const { return tr("Ex Command Mapping"); }
     QString category() const { return QLatin1String(Constants::SETTINGS_CATEGORY); }
     QString displayCategory() const { return tr("FakeVim"); }
+    QIcon categoryIcon() const { return QIcon(); } // TODO: Icon for FakeVim
 
     QWidget *createPage(QWidget *parent);
     void initialize();
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index 11edb065ce3..4c50a1581ab 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -122,6 +122,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for Version Control
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h
index 203c4ce483c..7d10c032932 100644
--- a/src/plugins/git/settingspage.h
+++ b/src/plugins/git/settingspage.h
@@ -74,6 +74,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp
index 5f1938bc802..4933f53dd4e 100644
--- a/src/plugins/help/docsettingspage.cpp
+++ b/src/plugins/help/docsettingspage.cpp
@@ -65,6 +65,11 @@ QString DocSettingsPage::displayCategory() const
     return QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY);
 }
 
+QIcon DocSettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Help::Constants::HELP_CATEGORY_ICON));
+}
+
 QWidget *DocSettingsPage::createPage(QWidget *parent)
 {
     QWidget *widget = new QWidget(parent);
diff --git a/src/plugins/help/docsettingspage.h b/src/plugins/help/docsettingspage.h
index 80c1bc67a79..66de3ac8ae3 100644
--- a/src/plugins/help/docsettingspage.h
+++ b/src/plugins/help/docsettingspage.h
@@ -48,6 +48,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp
index e73e882fe3d..8577b42960e 100644
--- a/src/plugins/help/filtersettingspage.cpp
+++ b/src/plugins/help/filtersettingspage.cpp
@@ -66,6 +66,11 @@ QString FilterSettingsPage::displayCategory() const
     return QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY);
 }
 
+QIcon FilterSettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Help::Constants::HELP_CATEGORY_ICON));
+}
+
 QWidget *FilterSettingsPage::createPage(QWidget *parent)
 {
     QWidget *widget = new QWidget(parent);
diff --git a/src/plugins/help/filtersettingspage.h b/src/plugins/help/filtersettingspage.h
index 74398e51c53..b8f74d5359d 100644
--- a/src/plugins/help/filtersettingspage.h
+++ b/src/plugins/help/filtersettingspage.h
@@ -48,6 +48,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index bb62461df05..0df4288670e 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -83,6 +83,11 @@ QString GeneralSettingsPage::displayCategory() const
     return QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY);
 }
 
+QIcon GeneralSettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Help::Constants::HELP_CATEGORY_ICON));
+}
+
 QWidget *GeneralSettingsPage::createPage(QWidget *parent)
 {
     QWidget *widget = new QWidget(parent);
diff --git a/src/plugins/help/generalsettingspage.h b/src/plugins/help/generalsettingspage.h
index f37ab2de26f..dbfc97e39b3 100644
--- a/src/plugins/help/generalsettingspage.h
+++ b/src/plugins/help/generalsettingspage.h
@@ -46,9 +46,10 @@ public:
     GeneralSettingsPage();
 
     QString id() const;
-    virtual QString displayName() const;
+    QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/help/helpconstants.h b/src/plugins/help/helpconstants.h
index 36195359dbc..e9910e830f9 100644
--- a/src/plugins/help/helpconstants.h
+++ b/src/plugins/help/helpconstants.h
@@ -38,6 +38,7 @@ namespace Help {
 const int          P_MODE_HELP    = 70;
 const char * const ID_MODE_HELP   = "Help";
 const char * const HELP_CATEGORY = "H.Help";
+const char * const HELP_CATEGORY_ICON = ":/core/images/category_help.png";
 const char * const HELP_TR_CATEGORY = QT_TRANSLATE_NOOP("Help", "Help");
 
 const char * const C_MODE_HELP    = "Help Mode";
diff --git a/src/plugins/locator/settingspage.cpp b/src/plugins/locator/settingspage.cpp
index f0c7b0e214a..0dcfdb5cf9c 100644
--- a/src/plugins/locator/settingspage.cpp
+++ b/src/plugins/locator/settingspage.cpp
@@ -69,6 +69,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("Locator", Locator::Constants::LOCATOR_TR_CATEGORY);
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for Locator
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
 
diff --git a/src/plugins/locator/settingspage.h b/src/plugins/locator/settingspage.h
index 26d44e8b519..e89b044edb7 100644
--- a/src/plugins/locator/settingspage.h
+++ b/src/plugins/locator/settingspage.h
@@ -59,6 +59,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/mercurial/optionspage.cpp b/src/plugins/mercurial/optionspage.cpp
index 118c7bb60f9..8702830a900 100644
--- a/src/plugins/mercurial/optionspage.cpp
+++ b/src/plugins/mercurial/optionspage.cpp
@@ -107,6 +107,11 @@ QString OptionsPage::displayCategory() const
     return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
+QIcon OptionsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for Version Control
+}
+
 QWidget *OptionsPage::createPage(QWidget *parent)
 {
     if (!optionsPageWidget)
diff --git a/src/plugins/mercurial/optionspage.h b/src/plugins/mercurial/optionspage.h
index 8f0fcd3b86d..821fa13703c 100644
--- a/src/plugins/mercurial/optionspage.h
+++ b/src/plugins/mercurial/optionspage.h
@@ -67,6 +67,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp
index 7eea709afa3..bb3d6dfdab8 100644
--- a/src/plugins/perforce/settingspage.cpp
+++ b/src/plugins/perforce/settingspage.cpp
@@ -146,6 +146,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for Version Control
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
diff --git a/src/plugins/perforce/settingspage.h b/src/plugins/perforce/settingspage.h
index f49c933ec60..6d10556c68e 100644
--- a/src/plugins/perforce/settingspage.h
+++ b/src/plugins/perforce/settingspage.h
@@ -77,6 +77,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index 1dd417d7145..fa57502a13a 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -187,6 +187,7 @@ const char * const RESOURCE_MIMETYPE = "application/vnd.nokia.xml.qt.resource";
 
 // settings page
 const char * const PROJECTEXPLORER_SETTINGS_CATEGORY  = "K.ProjectExplorer";
+const char * const PROJECTEXPLORER_SETTINGS_CATEGORY_ICON  = ":/core/images/category_project.png";
 const char * const PROJECTEXPLORER_SETTINGS_ID = "ProjectExplorer.ProjectExplorer";
 
 // task categories
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
index d7fc674585a..32000e80642 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
@@ -137,6 +137,11 @@ QString ProjectExplorerSettingsPage::displayCategory() const
     return tr("Projects");
 }
 
+QIcon ProjectExplorerSettingsPage::categoryIcon() const
+{
+    return QIcon(Constants::PROJECTEXPLORER_SETTINGS_CATEGORY_ICON);
+}
+
 QWidget *ProjectExplorerSettingsPage::createPage(QWidget *parent)
 {
     m_widget = new ProjectExplorerSettingsWidget(parent);
@@ -169,6 +174,6 @@ bool ProjectExplorerSettingsPage::matches(const QString &s) const
     return m_searchKeywords.contains(s, Qt::CaseInsensitive);
 }
 
-}
-}
+} // namespace Internal
+} // namespace ProjectExplorer
 
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.h b/src/plugins/projectexplorer/projectexplorersettingspage.h
index 417873c4596..7026a8f8ceb 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.h
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.h
@@ -75,6 +75,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp
index b10dbf88581..3ee1744fece 100644
--- a/src/plugins/qmldesigner/settingspage.cpp
+++ b/src/plugins/qmldesigner/settingspage.cpp
@@ -102,6 +102,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("QML", "QML");
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for QML or move into other category (Designer?)
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
diff --git a/src/plugins/qmldesigner/settingspage.h b/src/plugins/qmldesigner/settingspage.h
index 369d8f03d39..66fa5da9d59 100644
--- a/src/plugins/qmldesigner/settingspage.h
+++ b/src/plugins/qmldesigner/settingspage.h
@@ -74,6 +74,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.cpp
index 253ae22ab28..404e8c86ed3 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.cpp
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.cpp
@@ -80,6 +80,11 @@ QString MaemoSettingsPage::displayCategory() const
         Constants::QT_SETTINGS_CATEGORY);
 }
 
+QIcon MaemoSettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Constants::QT_SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *MaemoSettingsPage::createPage(QWidget *parent)
 {
     m_widget = new MaemoSettingsWidget(parent);
diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.h b/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.h
index d834a8049be..e325134d3cb 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/maemosettingspage.h
@@ -60,6 +60,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
     virtual void finish();
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp
index b04bedcebe2..db5b54c1d50 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp
@@ -129,6 +129,11 @@ QString S60DevicesPreferencePane::displayCategory() const
     return QCoreApplication::translate("Qt4ProjectManager", Constants::QT_SETTINGS_CATEGORY);
 }
 
+QIcon S60DevicesPreferencePane::categoryIcon() const
+{
+    return QIcon(Constants::QT_SETTINGS_CATEGORY_ICON);
+}
+
 QWidget *S60DevicesPreferencePane::createPage(QWidget *parent)
 {
     if (m_widget)
@@ -144,5 +149,3 @@ void S60DevicesPreferencePane::apply()
 void S60DevicesPreferencePane::finish()
 {
 }
-
-
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.h b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.h
index b1bb9496c7b..312c1efb906 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.h
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.h
@@ -62,7 +62,8 @@ private:
     S60Devices *m_devices;
 };
 
-class S60DevicesPreferencePane : public Core::IOptionsPage {
+class S60DevicesPreferencePane : public Core::IOptionsPage
+{
     Q_OBJECT
 public:
     S60DevicesPreferencePane(S60Devices *devices, QObject *parent = 0);
@@ -72,6 +73,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index ef8cc3a0672..5e84afd49e8 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -76,6 +76,7 @@ const char * const DEPLOYHELPERRUNSTEP = "trolltech.qt4projectmanager.deployhelp
 
 //Qt4 settings pages
 const char * const QT_SETTINGS_CATEGORY       = "L.Qt4";
+const char * const QT_SETTINGS_CATEGORY_ICON  = ":/core/images/category_qt.png";
 const char * const QT_SETTINGS_TR_CATEGORY    = QT_TRANSLATE_NOOP("Qt4ProjectManager", "Qt4");
 const char * const QTVERSION_SETTINGS_PAGE_ID = "Qt Versions";
 const char * const QTVERSION_SETTINGS_PAGE_NAME = QT_TRANSLATE_NOOP("Qt4ProjectManager", "Qt Versions");
diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp
index b620910c5f2..9d316c639e9 100644
--- a/src/plugins/qt4projectmanager/qtoptionspage.cpp
+++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp
@@ -106,6 +106,11 @@ QString QtOptionsPage::displayCategory() const
     return QCoreApplication::translate("Qt4ProjectManager", Constants::QT_SETTINGS_TR_CATEGORY);
 }
 
+QIcon QtOptionsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Constants::QT_SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *QtOptionsPage::createPage(QWidget *parent)
 {
     QtVersionManager *vm = QtVersionManager::instance();
diff --git a/src/plugins/qt4projectmanager/qtoptionspage.h b/src/plugins/qt4projectmanager/qtoptionspage.h
index 3965e7b4247..517d0a28524 100644
--- a/src/plugins/qt4projectmanager/qtoptionspage.h
+++ b/src/plugins/qt4projectmanager/qtoptionspage.h
@@ -135,6 +135,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp
index 98f45069b69..36145ccb5a7 100644
--- a/src/plugins/subversion/settingspage.cpp
+++ b/src/plugins/subversion/settingspage.cpp
@@ -116,6 +116,11 @@ QString SettingsPage::displayCategory() const
     return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
+QIcon SettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for Version Control
+}
+
 QWidget *SettingsPage::createPage(QWidget *parent)
 {
     m_widget = new SettingsPageWidget(parent);
diff --git a/src/plugins/subversion/settingspage.h b/src/plugins/subversion/settingspage.h
index 72aaa8e8287..cdbf809536d 100644
--- a/src/plugins/subversion/settingspage.h
+++ b/src/plugins/subversion/settingspage.h
@@ -73,6 +73,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp
index 71113551057..f49abc713d2 100644
--- a/src/plugins/texteditor/behaviorsettingspage.cpp
+++ b/src/plugins/texteditor/behaviorsettingspage.cpp
@@ -98,6 +98,11 @@ QString BehaviorSettingsPage::displayCategory() const
     return m_d->m_parameters.displayCategory;
 }
 
+QIcon BehaviorSettingsPage::categoryIcon() const
+{
+    return m_d->m_parameters.categoryIcon;
+}
+
 QWidget *BehaviorSettingsPage::createPage(QWidget *parent)
 {
     QWidget *w = new QWidget(parent);
diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h
index 53a46a2ef43..71c9c6a5ec6 100644
--- a/src/plugins/texteditor/behaviorsettingspage.h
+++ b/src/plugins/texteditor/behaviorsettingspage.h
@@ -48,6 +48,7 @@ struct BehaviorSettingsPageParameters
     QString displayName;
     QString category;
     QString displayCategory;
+    QIcon categoryIcon;
     QString settingsPrefix;
 };
 
@@ -64,6 +65,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp
index 6d002a857b4..86551c337d3 100644
--- a/src/plugins/texteditor/displaysettingspage.cpp
+++ b/src/plugins/texteditor/displaysettingspage.cpp
@@ -89,6 +89,11 @@ QString DisplaySettingsPage::displayCategory() const
     return m_d->m_parameters.displayCategory;
 }
 
+QIcon DisplaySettingsPage::categoryIcon() const
+{
+    return m_d->m_parameters.categoryIcon;
+}
+
 QWidget *DisplaySettingsPage::createPage(QWidget *parent)
 {
     QWidget *w = new QWidget(parent);
diff --git a/src/plugins/texteditor/displaysettingspage.h b/src/plugins/texteditor/displaysettingspage.h
index b1099ea79f7..dce289ad10b 100644
--- a/src/plugins/texteditor/displaysettingspage.h
+++ b/src/plugins/texteditor/displaysettingspage.h
@@ -46,6 +46,7 @@ struct DisplaySettingsPageParameters
     QString displayName;
     QString category;
     QString displayCategory;
+    QIcon categoryIcon;
     QString settingsPrefix;
 };
 
@@ -62,6 +63,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index d046592632f..63dd9292cc8 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -346,6 +346,11 @@ QString FontSettingsPage::displayCategory() const
     return d_ptr->m_displayCategory;
 }
 
+QIcon FontSettingsPage::categoryIcon() const
+{
+    return QIcon(QLatin1String(Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON));
+}
+
 QWidget *FontSettingsPage::createPage(QWidget *parent)
 {
     QWidget *w = new QWidget(parent);
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index 0735e774443..9f84a0c9ecf 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -94,6 +94,7 @@ public:
     QString displayName() const;
     QString category() const;
     QString displayCategory() const;
+    QIcon categoryIcon() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h
index e101842fd56..7fc41a9f888 100644
--- a/src/plugins/texteditor/texteditorconstants.h
+++ b/src/plugins/texteditor/texteditorconstants.h
@@ -107,6 +107,7 @@ const char * const C_DIFF_FILE           = "DiffFile";
 const char * const C_DIFF_LOCATION       = "DiffLocation";
 
 const char * const TEXT_EDITOR_SETTINGS_CATEGORY = "C.TextEditor";
+const char * const TEXT_EDITOR_SETTINGS_CATEGORY_ICON = ":/core/images/category_texteditor.png";
 const char * const TEXT_EDITOR_SETTINGS_TR_CATEGORY = QT_TRANSLATE_NOOP("TextEditor", "Text Editor");
 
 } // namespace Constants
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index 44316736daf..3ca0410e33a 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -104,6 +104,7 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
 
     const QString category = QLatin1String(Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
     const QString displayCategory = QCoreApplication::translate("TextEditor", Constants::TEXT_EDITOR_SETTINGS_TR_CATEGORY);
+    const QIcon categoryIcon = QIcon(QLatin1String(Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON));
 
     m_fontSettingsPage = new FontSettingsPage(formatDescriptions,
                                               QLatin1String("A.FontSettings"),
@@ -116,6 +117,7 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
     behaviorSettingsPageParameters.displayName = tr("Behavior");
     behaviorSettingsPageParameters.category = category;
     behaviorSettingsPageParameters.displayCategory = displayCategory;
+    behaviorSettingsPageParameters.categoryIcon = categoryIcon;
     behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text");
     m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
     pm->addObject(m_behaviorSettingsPage);
@@ -123,8 +125,9 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
     TextEditor::DisplaySettingsPageParameters displaySettingsPageParameters;
     displaySettingsPageParameters.id = QLatin1String("D.DisplaySettings"),
     displaySettingsPageParameters.displayName = tr("Display");
-    displaySettingsPageParameters.category = category;;
+    displaySettingsPageParameters.category = category;
     displaySettingsPageParameters.displayCategory = displayCategory;
+    displaySettingsPageParameters.categoryIcon = categoryIcon;
     displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
     m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
     pm->addObject(m_displaySettingsPage);
diff --git a/src/plugins/vcsbase/vcsbasesettingspage.cpp b/src/plugins/vcsbase/vcsbasesettingspage.cpp
index 1c038926ccc..5b52fbe20e3 100644
--- a/src/plugins/vcsbase/vcsbasesettingspage.cpp
+++ b/src/plugins/vcsbase/vcsbasesettingspage.cpp
@@ -127,6 +127,11 @@ QString VCSBaseSettingsPage::displayCategory() const
     return QCoreApplication::translate("VCSBase", Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
+QIcon VCSBaseSettingsPage::categoryIcon() const
+{
+    return QIcon(); // TODO: Icon for Version Control
+}
+
 QWidget *VCSBaseSettingsPage::createPage(QWidget *parent)
 {
     m_widget = new VCSBaseSettingsWidget(parent);
diff --git a/src/plugins/vcsbase/vcsbasesettingspage.h b/src/plugins/vcsbase/vcsbasesettingspage.h
index af47f60d1fc..5828b5bf884 100644
--- a/src/plugins/vcsbase/vcsbasesettingspage.h
+++ b/src/plugins/vcsbase/vcsbasesettingspage.h
@@ -70,6 +70,7 @@ public:
     virtual QString displayName() const;
     virtual QString category() const;
     virtual QString displayCategory() const;
+    virtual QIcon categoryIcon() const;
 
     virtual QWidget *createPage(QWidget *parent);
     virtual void apply();
-- 
GitLab