From a8ac34c34770fe329d6f0afbf60e0009fa8bb28e Mon Sep 17 00:00:00 2001
From: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Date: Fri, 27 Nov 2009 16:12:12 +0100
Subject: [PATCH] Options: Sort by category, id.

Separate category and trCategory and introduce sorting characters
to the categories. Same for id/name.
---
 .../cmakeprojectmanager.cpp                   |  2 +-
 src/plugins/coreplugin/coreconstants.h        |  3 ++
 .../coreplugin/dialogs/settingsdialog.cpp     | 19 ++++++++-
 .../coreplugin/dialogs/shortcutsettings.cpp   |  8 ++--
 src/plugins/coreplugin/generalsettings.cpp    |  8 ++--
 src/plugins/cpaster/codepastersettings.cpp    |  8 ++--
 src/plugins/cpaster/cpaster.pro               |  1 +
 src/plugins/cpaster/cpasterconstants.h        | 42 +++++++++++++++++++
 .../cpaster/pastebindotcomsettings.cpp        |  8 ++--
 src/plugins/cpaster/settingspage.cpp          |  8 ++--
 .../cpptools/completionsettingspage.cpp       |  9 ++--
 src/plugins/cpptools/cppfilesettingspage.cpp  |  4 +-
 src/plugins/cpptools/cpptoolsconstants.h      |  6 ++-
 src/plugins/cvs/settingspage.cpp              |  4 +-
 src/plugins/debugger/cdb/cdboptionspage.cpp   |  6 +--
 src/plugins/debugger/debuggerconstants.h      |  6 ++-
 src/plugins/debugger/debuggerplugin.cpp       | 12 +++---
 src/plugins/debugger/gdb/gdboptionspage.cpp   |  8 ++--
 src/plugins/debugger/gdb/trkoptionspage.cpp   |  8 ++--
 src/plugins/designer/cpp/cppsettingspage.cpp  |  6 +--
 src/plugins/designer/designerconstants.h      |  6 ++-
 src/plugins/designer/settingspage.cpp         |  2 +-
 src/plugins/fakevim/fakevimplugin.cpp         |  9 ++--
 src/plugins/git/settingspage.cpp              |  4 +-
 src/plugins/help/docsettingspage.cpp          |  9 ++--
 src/plugins/help/filtersettingspage.cpp       |  9 ++--
 src/plugins/help/generalsettingspage.cpp      |  8 ++--
 src/plugins/help/help.pro                     |  1 +
 src/plugins/help/helpconstants.h              | 42 +++++++++++++++++++
 src/plugins/locator/locatorconstants.h        |  3 +-
 src/plugins/locator/settingspage.cpp          |  4 +-
 src/plugins/mercurial/optionspage.cpp         |  4 +-
 src/plugins/perforce/settingspage.cpp         |  4 +-
 .../projectexplorerconstants.h                |  4 +-
 .../projectexplorersettingspage.cpp           |  6 +--
 .../qt-s60/s60devicespreferencepane.cpp       |  6 +--
 .../qt4projectconfigwidget.cpp                |  2 +-
 .../qt4projectmanagerconstants.h              | 15 ++++---
 .../qt4projectmanager/qtoptionspage.cpp       | 14 ++-----
 src/plugins/qt4projectmanager/qtoptionspage.h |  1 -
 src/plugins/subversion/settingspage.cpp       |  4 +-
 .../texteditor/behaviorsettingspage.cpp       |  2 +-
 src/plugins/texteditor/behaviorsettingspage.h |  1 +
 .../texteditor/displaysettingspage.cpp        |  2 +-
 src/plugins/texteditor/displaysettingspage.h  |  1 +
 src/plugins/texteditor/fontsettingspage.cpp   | 10 ++++-
 src/plugins/texteditor/fontsettingspage.h     |  1 +
 src/plugins/texteditor/texteditorconstants.h  |  4 ++
 src/plugins/texteditor/texteditorsettings.cpp | 19 +++++----
 src/plugins/vcsbase/vcsbaseconstants.h        |  8 ++--
 src/plugins/vcsbase/vcsbasesettingspage.cpp   |  4 +-
 51 files changed, 262 insertions(+), 123 deletions(-)
 create mode 100644 src/plugins/cpaster/cpasterconstants.h
 create mode 100644 src/plugins/help/helpconstants.h

diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index 313f0b8fdf2..65fd5920df4 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -251,7 +251,7 @@ QString CMakeSettingsPage::trName() const
 
 QString CMakeSettingsPage::category() const
 {
-    return QLatin1String("CMake");
+    return QLatin1String("M.CMake");
 }
 
 QString CMakeSettingsPage::trCategory() const
diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h
index 2bc6614326e..e505535a350 100644
--- a/src/plugins/coreplugin/coreconstants.h
+++ b/src/plugins/coreplugin/coreconstants.h
@@ -223,6 +223,9 @@ const char * const ICON_TOGGLE_SIDEBAR   = ":/core/images/sidebaricon.png";
 const char * const WIZARD_CATEGORY_QT = "M.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_TR_CATEGORY_CORE = QT_TRANSLATE_NOOP("Core", "Environment");
+
 } // namespace Constants
 } // namespace Core
 
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index a70aa405dd7..fb69ac3386a 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -189,10 +189,27 @@ static QStandardItemModel *pageModel(const QList<IOptionsPage*> &pages,
     return model;
 }
 
+// ----------- SettingsDialog
+
+// Helpers to sort by category. id
+bool optionsPageLessThan(const IOptionsPage *p1, const IOptionsPage *p2)
+{
+    if (const int cc = p1->category().compare(p2->category()))
+        return cc < 0;
+    return p1->id().compare(p2->id()) < 0;
+}
+
+static inline QList<Core::IOptionsPage*> sortedOptionsPages()
+{
+    QList<Core::IOptionsPage*> rc = ExtensionSystem::PluginManager::instance()->getObjects<IOptionsPage>();
+    qStableSort(rc.begin(), rc.end(), optionsPageLessThan);
+    return rc;
+}
+
 SettingsDialog::SettingsDialog(QWidget *parent, const QString &categoryId,
                                const QString &pageId) :
     QDialog(parent),
-    m_pages(ExtensionSystem::PluginManager::instance()->getObjects<IOptionsPage>()),
+    m_pages(sortedOptionsPages()),
     m_proxyModel(new PageFilterModel),
     m_model(0),
     m_applied(false),
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index 4aad9f573bd..1333c58127c 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -44,6 +44,7 @@
 #include <QtGui/QShortcut>
 #include <QtGui/QHeaderView>
 #include <QtGui/QFileDialog>
+#include <QtCore/QCoreApplication>
 #include <QtDebug>
 
 Q_DECLARE_METATYPE(Core::Internal::ShortcutItem*);
@@ -62,9 +63,10 @@ ShortcutSettings::~ShortcutSettings()
 
 // IOptionsPage
 
+
 QString ShortcutSettings::id() const
 {
-    return QLatin1String("Keyboard");
+    return QLatin1String("D.Keyboard");
 }
 
 QString ShortcutSettings::trName() const
@@ -74,12 +76,12 @@ QString ShortcutSettings::trName() const
 
 QString ShortcutSettings::category() const
 {
-    return QLatin1String("Environment");
+    return QLatin1String(Core::Constants::SETTINGS_CATEGORY_CORE);
 }
 
 QString ShortcutSettings::trCategory() const
 {
-    return tr("Environment");
+    return QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE);
 }
 
 QWidget *ShortcutSettings::createPage(QWidget *parent)
diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp
index 118973ddd2d..21123685cf0 100644
--- a/src/plugins/coreplugin/generalsettings.cpp
+++ b/src/plugins/coreplugin/generalsettings.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "generalsettings.h"
+#include "coreconstants.h"
 
 #include <utils/stylehelper.h>
 #include <utils/qtcolorbutton.h>
@@ -37,6 +38,7 @@
 
 #include <QtGui/QMessageBox>
 
+#include <QtCore/QCoreApplication>
 #include <QtCore/QTextStream>
 
 #include "ui_generalsettings.h"
@@ -51,7 +53,7 @@ GeneralSettings::GeneralSettings():
 
 QString GeneralSettings::id() const
 {
-    return QLatin1String("General");
+    return QLatin1String("A.General");
 }
 
 QString GeneralSettings::trName() const
@@ -61,12 +63,12 @@ QString GeneralSettings::trName() const
 
 QString GeneralSettings::category() const
 {
-    return QLatin1String("Environment");
+    return QLatin1String(Core::Constants::SETTINGS_CATEGORY_CORE);
 }
 
 QString GeneralSettings::trCategory() const
 {
-    return tr("Environment");
+    return QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE);
 }
 
 QWidget *GeneralSettings::createPage(QWidget *parent)
diff --git a/src/plugins/cpaster/codepastersettings.cpp b/src/plugins/cpaster/codepastersettings.cpp
index 6b1e804f280..070907aedae 100644
--- a/src/plugins/cpaster/codepastersettings.cpp
+++ b/src/plugins/cpaster/codepastersettings.cpp
@@ -28,10 +28,12 @@
 **************************************************************************/
 
 #include "codepastersettings.h"
+#include "cpasterconstants.h"
 
 #include <coreplugin/icore.h>
 
 #include <QtCore/QSettings>
+#include <QtCore/QCoreApplication>
 #include <QtGui/QLineEdit>
 #include <QtGui/QFileDialog>
 #include <QtGui/QGroupBox>
@@ -54,7 +56,7 @@ CodePasterSettingsPage::CodePasterSettingsPage()
 
 QString CodePasterSettingsPage::id() const
 {
-    return QLatin1String("CodePaster");
+    return QLatin1String("C.CodePaster");
 }
 
 QString CodePasterSettingsPage::trName() const
@@ -64,12 +66,12 @@ QString CodePasterSettingsPage::trName() const
 
 QString CodePasterSettingsPage::category() const
 {
-    return QLatin1String("CodePaster");
+    return QLatin1String(Constants::CPASTER_SETTINGS_CATEGORY);
 }
 
 QString CodePasterSettingsPage::trCategory() const
 {
-    return tr("Code Pasting");
+    return QCoreApplication::translate("CodePaster", Constants::CPASTER_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *CodePasterSettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/cpaster/cpaster.pro b/src/plugins/cpaster/cpaster.pro
index d201e667788..d5d59b87dac 100644
--- a/src/plugins/cpaster/cpaster.pro
+++ b/src/plugins/cpaster/cpaster.pro
@@ -8,6 +8,7 @@ HEADERS += cpasterplugin.h \
     protocol.h \
     codepasterprotocol.h \
     pasteview.h \
+    cpasterconstants.h \
     codepastersettings.h \
     pastebindotcomprotocol.h \
     pastebindotcomsettings.h \
diff --git a/src/plugins/cpaster/cpasterconstants.h b/src/plugins/cpaster/cpasterconstants.h
new file mode 100644
index 00000000000..38d4807f634
--- /dev/null
+++ b/src/plugins/cpaster/cpasterconstants.h
@@ -0,0 +1,42 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#ifndef CPASTERCONSTANTS_H
+#define CPASTERCONSTANTS_H
+
+#include <QtCore/QtGlobal>
+
+namespace CodePaster {
+namespace Constants {
+const char * const CPASTER_SETTINGS_CATEGORY = "X.CPaster";
+const char * const CPASTER_SETTINGS_TR_CATEGORY = QT_TRANSLATE_NOOP("CodePaster", "Code Pasting");
+}
+}
+
+#endif // CPASTERCONSTANTS_H
diff --git a/src/plugins/cpaster/pastebindotcomsettings.cpp b/src/plugins/cpaster/pastebindotcomsettings.cpp
index 3823524c0b7..2775e9892ed 100644
--- a/src/plugins/cpaster/pastebindotcomsettings.cpp
+++ b/src/plugins/cpaster/pastebindotcomsettings.cpp
@@ -28,10 +28,12 @@
 **************************************************************************/
 
 #include "pastebindotcomsettings.h"
+#include "cpasterconstants.h"
 #include "ui_pastebindotcomsettings.h"
 
 #include <coreplugin/icore.h>
 #include <QtCore/QSettings>
+#include <QtCore/QCoreApplication>
 
 PasteBinDotComSettings::PasteBinDotComSettings()
 {
@@ -45,7 +47,7 @@ PasteBinDotComSettings::PasteBinDotComSettings()
 
 QString PasteBinDotComSettings::id() const
 {
-    return QLatin1String("Pastebin.com");
+    return QLatin1String("B.Pastebin.com");
 }
 
 QString PasteBinDotComSettings::trName() const
@@ -55,12 +57,12 @@ QString PasteBinDotComSettings::trName() const
 
 QString PasteBinDotComSettings::category() const
 {
-    return QLatin1String("CodePaster");
+    return QLatin1String(CodePaster::Constants::CPASTER_SETTINGS_CATEGORY);
 }
 
 QString PasteBinDotComSettings::trCategory() const
 {
-    return tr("Code Pasting");
+    return QCoreApplication::translate("CodePaster", CodePaster::Constants::CPASTER_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *PasteBinDotComSettings::createPage(QWidget *parent)
diff --git a/src/plugins/cpaster/settingspage.cpp b/src/plugins/cpaster/settingspage.cpp
index b1db4f3e415..32a3b75c3e4 100644
--- a/src/plugins/cpaster/settingspage.cpp
+++ b/src/plugins/cpaster/settingspage.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "settingspage.h"
+#include "cpasterconstants.h"
 
 #include <coreplugin/icore.h>
 
@@ -38,6 +39,7 @@
 #include <QtCore/QVariant>
 #include <QtCore/QSettings>
 #include <QtCore/QTextStream>
+#include <QtCore/QCoreApplication>
 
 using namespace CodePaster;
 
@@ -61,7 +63,7 @@ SettingsPage::SettingsPage()
 
 QString SettingsPage::id() const
 {
-    return QLatin1String("General");
+    return QLatin1String("A.General");
 }
 
 QString SettingsPage::trName() const
@@ -71,12 +73,12 @@ QString SettingsPage::trName() const
 
 QString SettingsPage::category() const
 {
-    return QLatin1String("CodePaster");
+    return QLatin1String(Constants::CPASTER_SETTINGS_CATEGORY);
 }
 
 QString SettingsPage::trCategory() const
 {
-    return tr("Code Pasting");
+    return QCoreApplication::translate("CodePaster", Constants::CPASTER_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *SettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp
index d74cec00ea7..8c5e7ba2a49 100644
--- a/src/plugins/cpptools/completionsettingspage.cpp
+++ b/src/plugins/cpptools/completionsettingspage.cpp
@@ -32,9 +32,11 @@
 #include "ui_completionsettingspage.h"
 
 #include <coreplugin/icore.h>
+#include <texteditor/texteditorconstants.h>
 #include <extensionsystem/pluginmanager.h>
 
 #include <QtCore/QTextStream>
+#include <QtCore/QCoreApplication>
 
 using namespace CppTools::Internal;
 
@@ -51,7 +53,7 @@ CompletionSettingsPage::~CompletionSettingsPage()
 
 QString CompletionSettingsPage::id() const
 {
-    return QLatin1String("Completion");
+    return QLatin1String("P.Completion");
 }
 
 QString CompletionSettingsPage::trName() const
@@ -61,12 +63,13 @@ QString CompletionSettingsPage::trName() const
 
 QString CompletionSettingsPage::category() const
 {
-    return QLatin1String("TextEditor");
+
+    return QLatin1String(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
 }
 
 QString CompletionSettingsPage::trCategory() const
 {
-    return tr("Text Editor");
+    return QCoreApplication::translate("Text Editor", TextEditor::Constants::TEXT_EDITOR_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *CompletionSettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index f1b7cce8697..017c35cdf0e 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -306,7 +306,7 @@ QString CppFileSettingsPage::id() const
 
 QString CppFileSettingsPage::trName() const
 {
-    return QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_ID);
+    return QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_NAME);
 }
 
 QString CppFileSettingsPage::category() const
@@ -316,7 +316,7 @@ QString CppFileSettingsPage::category() const
 
 QString CppFileSettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *CppFileSettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/cpptools/cpptoolsconstants.h b/src/plugins/cpptools/cpptoolsconstants.h
index cb61027bd45..1fb65cc11e2 100644
--- a/src/plugins/cpptools/cpptoolsconstants.h
+++ b/src/plugins/cpptools/cpptoolsconstants.h
@@ -50,8 +50,10 @@ const char * const CPPTOOLS_SETTINGSGROUP = "CppTools";
 const char * const LOWERCASE_CPPFILES_KEY = "LowerCaseFiles";
 enum { lowerCaseFilesDefault = 1 };
 
-const char * const CPP_SETTINGS_ID = QT_TRANSLATE_NOOP("CppTools", "File Naming");
-const char * const CPP_SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("CppTools", "C++");
+const char * const CPP_SETTINGS_ID = "File Naming";
+const char * const CPP_SETTINGS_NAME = QT_TRANSLATE_NOOP("CppTools", "File Naming");
+const char * const CPP_SETTINGS_CATEGORY = "I.C++";
+const char * const CPP_SETTINGS_TR_CATEGORY = QT_TRANSLATE_NOOP("CppTools", "C++");
 
 } // namespace Constants
 } // namespace CppTools
diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp
index ae1d9112158..3d29a88325b 100644
--- a/src/plugins/cvs/settingspage.cpp
+++ b/src/plugins/cvs/settingspage.cpp
@@ -88,7 +88,7 @@ SettingsPage::SettingsPage()
 
 QString SettingsPage::id() const
 {
-    return QLatin1String("CVS");
+    return QLatin1String(VCSBase::Constants::VCS_ID_CVS);
 }
 
 QString SettingsPage::trName() const
@@ -103,7 +103,7 @@ QString SettingsPage::category() const
 
 QString SettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *SettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/debugger/cdb/cdboptionspage.cpp b/src/plugins/debugger/cdb/cdboptionspage.cpp
index 03967535261..06b62fd9ef3 100644
--- a/src/plugins/debugger/cdb/cdboptionspage.cpp
+++ b/src/plugins/debugger/cdb/cdboptionspage.cpp
@@ -39,8 +39,6 @@
 #include <QtGui/QMessageBox>
 #include <QtGui/QDesktopServices>
 
-const char * const CDB_SETTINGS_ID = QT_TRANSLATE_NOOP("Debugger::Internal::CdbOptionsPageWidget", "Cdb");
-
 static const char *dgbToolsDownloadLink32C = "http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx";
 static const char *dgbToolsDownloadLink64C = "http://www.microsoft.com/whdc/devtools/debugging/install64bit.Mspx";
 
@@ -160,12 +158,12 @@ QString CdbOptionsPage::trName() const
 
 QString CdbOptionsPage::category() const
 {
-    return QLatin1String(Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY);
+    return QLatin1String("P.Cdb");
 }
 
 QString CdbOptionsPage::trCategory() const
 {
-    return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY);
+    return tr("Cdb");
 }
 
 QWidget *CdbOptionsPage::createPage(QWidget *parent)
diff --git a/src/plugins/debugger/debuggerconstants.h b/src/plugins/debugger/debuggerconstants.h
index 6640b4033d5..a556054e480 100644
--- a/src/plugins/debugger/debuggerconstants.h
+++ b/src/plugins/debugger/debuggerconstants.h
@@ -52,8 +52,10 @@ const char * const M_DEBUG_VIEWS        = "Debugger.Menu.View.Debug";
 const char * const C_GDBDEBUGGER        = "Gdb Debugger";
 const char * const GDBRUNNING           = "Gdb.Running";
 
-const char * const DEBUGGER_COMMON_SETTINGS_PAGE = QT_TRANSLATE_NOOP("Debugger", "Common");
-const char * const DEBUGGER_SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("Debugger", "Debugger");
+const char * const DEBUGGER_COMMON_SETTINGS_ID = "A.Common";
+const char * const DEBUGGER_COMMON_SETTINGS_NAME = QT_TRANSLATE_NOOP("Debugger", "Common");
+const char * const DEBUGGER_SETTINGS_CATEGORY = "O.Debugger";
+const char * const DEBUGGER_SETTINGS_TR_CATEGORY = QT_TRANSLATE_NOOP("Debugger", "Debugger");
 
 namespace Internal {
     enum { debug = 0 };
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 585cc3f03bc..4616f68cf4f 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -318,13 +318,13 @@ public:
 
     // IOptionsPage
     QString id() const
-        { return QLatin1String(Debugger::Constants::DEBUGGER_COMMON_SETTINGS_PAGE); }
+        { return QLatin1String(Debugger::Constants::DEBUGGER_COMMON_SETTINGS_ID); }
     QString trName() const
-        { return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_COMMON_SETTINGS_PAGE); }
+        { return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_COMMON_SETTINGS_NAME); }
     QString category() const
         { return QLatin1String(Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY);  }
     QString trCategory() const
-        { return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY); }
+        { return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_TR_CATEGORY); }
 
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(settings()); }
@@ -416,10 +416,10 @@ public:
     DebuggingHelperOptionPage() {}
 
     // IOptionsPage
-    QString id() const { return QLatin1String("DebuggingHelper"); }
+    QString id() const { return QLatin1String("B.DebuggingHelper"); }
     QString trName() const { return tr("Debugging Helper"); }
     QString category() const { return QLatin1String(Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY); }
-    QString trCategory() const { return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY); }
+    QString trCategory() const { return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_TR_CATEGORY); }
 
     QWidget *createPage(QWidget *parent);
     void apply() { m_group.apply(settings()); }
@@ -1257,7 +1257,7 @@ void DebuggerPlugin::showSettingsDialog()
 {
     Core::ICore::instance()->showOptionsDialog(
         QLatin1String(Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY),
-        QLatin1String(Debugger::Constants::DEBUGGER_COMMON_SETTINGS_PAGE));
+        QLatin1String(Debugger::Constants::DEBUGGER_COMMON_SETTINGS_ID));
 }
 
 void DebuggerPlugin::startExternalApplication()
diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp
index 6683a6bad65..e08c01e1625 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.cpp
+++ b/src/plugins/debugger/gdb/gdboptionspage.cpp
@@ -6,8 +6,6 @@
 #include <QtCore/QCoreApplication>
 #include <QtCore/QTextStream>
 
-const char * const GDB_SETTINGS_ID = QT_TRANSLATE_NOOP("Debugger::Internal::GdbOptionsPage", "Gdb");
-
 namespace Debugger {
 namespace Internal {
 
@@ -17,12 +15,12 @@ GdbOptionsPage::GdbOptionsPage()
 
 QString GdbOptionsPage::settingsId()
 {
-    return QLatin1String(GDB_SETTINGS_ID);
+    return QLatin1String("M.Gdb");
 }
 
 QString GdbOptionsPage::trName() const
 {
-    return tr(GDB_SETTINGS_ID);
+    return tr("Gdb");
 }
 
 QString GdbOptionsPage::category() const
@@ -32,7 +30,7 @@ QString GdbOptionsPage::category() const
 
 QString GdbOptionsPage::trCategory() const
 {
-    return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *GdbOptionsPage::createPage(QWidget *parent)
diff --git a/src/plugins/debugger/gdb/trkoptionspage.cpp b/src/plugins/debugger/gdb/trkoptionspage.cpp
index 5a5501903c1..97d4ebe610c 100644
--- a/src/plugins/debugger/gdb/trkoptionspage.cpp
+++ b/src/plugins/debugger/gdb/trkoptionspage.cpp
@@ -40,8 +40,6 @@
 namespace Debugger {
 namespace Internal {
 
-const char * const TRK_SETTINGS_ID = QT_TRANSLATE_NOOP("Debugger::Internal::TrkOptionsPage", "Symbian TRK");
-
 TrkOptionsPage::TrkOptionsPage(const TrkOptionsPtr &options) :
     m_options(options)
 {
@@ -53,12 +51,12 @@ TrkOptionsPage::~TrkOptionsPage()
 
 QString TrkOptionsPage::settingsId()
 {
-    return QLatin1String(TRK_SETTINGS_ID);
+    return QLatin1String("S.Trk");
 }
 
 QString TrkOptionsPage::trName() const
 {
-    return tr(TRK_SETTINGS_ID);
+    return tr("Symbian TRK");
 }
 
 QString TrkOptionsPage::category() const
@@ -68,7 +66,7 @@ QString TrkOptionsPage::category() const
 
 QString TrkOptionsPage::trCategory() const
 {
-    return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("Debugger", Debugger::Constants::DEBUGGER_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *TrkOptionsPage::createPage(QWidget *parent)
diff --git a/src/plugins/designer/cpp/cppsettingspage.cpp b/src/plugins/designer/cpp/cppsettingspage.cpp
index 66122e7f69e..1a7ad1db9b9 100644
--- a/src/plugins/designer/cpp/cppsettingspage.cpp
+++ b/src/plugins/designer/cpp/cppsettingspage.cpp
@@ -105,12 +105,12 @@ CppSettingsPage::CppSettingsPage(QObject *parent) : Core::IOptionsPage(parent)
 
 QString CppSettingsPage::id() const
 {
-    return QLatin1String(Designer::Constants::SETTINGS_CPP_SETTINGS);
+    return QLatin1String(Designer::Constants::SETTINGS_CPP_SETTINGS_ID);
 }
 
 QString CppSettingsPage::trName() const
 {
-    return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_CPP_SETTINGS);
+    return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_CPP_SETTINGS_NAME);
 }
 
 QString CppSettingsPage::category() const
@@ -120,7 +120,7 @@ QString CppSettingsPage::category() const
 
 QString CppSettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_CATEGORY);
+    return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_TR_CATEGORY);
 }
 
 QWidget *CppSettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/designer/designerconstants.h b/src/plugins/designer/designerconstants.h
index f8b0ff860dc..e155f28cf58 100644
--- a/src/plugins/designer/designerconstants.h
+++ b/src/plugins/designer/designerconstants.h
@@ -35,8 +35,10 @@
 namespace Designer {
 namespace Constants {
 
-const char * const SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("Designer", "Designer");
-const char * const SETTINGS_CPP_SETTINGS = QT_TRANSLATE_NOOP("Designer", "Class Generation");
+const char * const SETTINGS_CATEGORY = "P.Designer";
+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");
 
 // context
 const char * const C_FORMEDITOR         = "FormEditor";
diff --git a/src/plugins/designer/settingspage.cpp b/src/plugins/designer/settingspage.cpp
index befd00248dc..0115656f906 100644
--- a/src/plugins/designer/settingspage.cpp
+++ b/src/plugins/designer/settingspage.cpp
@@ -62,7 +62,7 @@ QString SettingsPage::category() const
 
 QString SettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_CATEGORY);
+    return QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_TR_CATEGORY);
 }
 
 QWidget *SettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index a81fb767872..87200860d59 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -89,6 +89,8 @@ namespace Constants {
 const char * const INSTALL_HANDLER        = "TextEditor.FakeVimHandler";
 const char * const MINI_BUFFER            = "TextEditor.FakeVimMiniBuffer";
 const char * const INSTALL_KEY            = "Alt+V,Alt+V";
+const char * const SETTINGS_CATEGORY      = "D.FakeVim";
+const char * const SETTINGS_ID            = "General";
 
 } // namespace Constants
 } // namespace FakeVim
@@ -111,9 +113,9 @@ public:
     FakeVimOptionPage() {}
 
     // IOptionsPage
-    QString id() const { return QLatin1String("General"); }
+    QString id() const { return QLatin1String(Constants::SETTINGS_ID); }
     QString trName() const { return tr("General"); }
-    QString category() const { return QLatin1String("FakeVim"); }
+    QString category() const { return QLatin1String(Constants::SETTINGS_CATEGORY); }
     QString trCategory() const { return tr("FakeVim"); }
 
     QWidget *createPage(QWidget *parent);
@@ -350,7 +352,8 @@ bool FakeVimPluginPrivate::initialize()
 
 void FakeVimPluginPrivate::showSettingsDialog()
 {
-    Core::ICore::instance()->showOptionsDialog("FakeVim", "General");
+    Core::ICore::instance()->showOptionsDialog(QLatin1String(Constants::SETTINGS_CATEGORY),
+                                               QLatin1String(Constants::SETTINGS_ID));
 }
 
 void FakeVimPluginPrivate::triggerAction(const QString& code)
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index 56094f39943..27abea353cf 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -96,7 +96,7 @@ SettingsPage::SettingsPage() :
 
 QString SettingsPage::id() const
 {
-    return QLatin1String("Git");
+    return QLatin1String(VCSBase::Constants::VCS_ID_GIT);
 }
 
 QString SettingsPage::trName() const
@@ -111,7 +111,7 @@ QString SettingsPage::category() const
 
 QString SettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *SettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp
index 78c0a552447..b5d82de9793 100644
--- a/src/plugins/help/docsettingspage.cpp
+++ b/src/plugins/help/docsettingspage.cpp
@@ -28,9 +28,11 @@
 **************************************************************************/
 
 #include "docsettingspage.h"
+#include "helpconstants.h"
 
 #include <QtGui/QFileDialog>
 #include <QtGui/QMessageBox>
+#include <QtCore/QCoreApplication>
 #include <QtHelp/QHelpEngine>
 
 using namespace Help::Internal;
@@ -43,7 +45,7 @@ DocSettingsPage::DocSettingsPage(QHelpEngine *helpEngine)
 
 QString DocSettingsPage::id() const
 {
-    return QLatin1String("Documentation");
+    return QLatin1String("B.Documentation");
 }
 
 QString DocSettingsPage::trName() const
@@ -51,15 +53,14 @@ QString DocSettingsPage::trName() const
     return tr("Documentation");
 }
 
-
 QString DocSettingsPage::category() const
 {
-    return QLatin1String("Help");
+    return QLatin1String(Help::Constants::HELP_CATEGORY);
 }
 
 QString DocSettingsPage::trCategory() const
 {
-    return tr("Help");
+    return QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY);
 }
 
 QWidget *DocSettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp
index 1e1e9605729..fd69f92b8b8 100644
--- a/src/plugins/help/filtersettingspage.cpp
+++ b/src/plugins/help/filtersettingspage.cpp
@@ -28,10 +28,13 @@
 **************************************************************************/
 
 #include "filtersettingspage.h"
+#include "helpconstants.h"
 #include "filternamedialog.h"
 
 #include <QtGui/QFileDialog>
 #include <QtGui/QMessageBox>
+#include <QtCore/QCoreApplication>
+
 #include <QtHelp/QHelpEngine>
 
 using namespace Help::Internal;
@@ -43,7 +46,7 @@ FilterSettingsPage::FilterSettingsPage(QHelpEngine *helpEngine) :
 
 QString FilterSettingsPage::id() const
 {
-    return QLatin1String("Filters");
+    return QLatin1String("D.Filters");
 }
 
 QString FilterSettingsPage::trName() const
@@ -53,12 +56,12 @@ QString FilterSettingsPage::trName() const
 
 QString FilterSettingsPage::category() const
 {
-    return QLatin1String("Help");
+    return QLatin1String(Help::Constants::HELP_CATEGORY);
 }
 
 QString FilterSettingsPage::trCategory() const
 {
-    return tr("Help");
+    return QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY);
 }
 
 QWidget *FilterSettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 3c0257c8e7c..8702b563bd1 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "generalsettingspage.h"
+#include "helpconstants.h"
 
 #include "bookmarkmanager.h"
 #include "centralwidget.h"
@@ -40,6 +41,7 @@
 #include <QtWebKit/QWebSettings>
 #endif
 
+#include <QtCore/QCoreApplication>
 #include <QtCore/QDebug>
 #include <QtGui/QFileDialog>
 #include <QtHelp/QHelpEngine>
@@ -66,7 +68,7 @@ GeneralSettingsPage::GeneralSettingsPage(QHelpEngine *helpEngine,
 
 QString GeneralSettingsPage::id() const
 {
-    return QLatin1String("General settings");
+    return QLatin1String("A.General settings");
 }
 
 QString GeneralSettingsPage::trName() const
@@ -76,12 +78,12 @@ QString GeneralSettingsPage::trName() const
 
 QString GeneralSettingsPage::category() const
 {
-    return QLatin1String("Help");
+    return QLatin1String(Help::Constants::HELP_CATEGORY);
 }
 
 QString GeneralSettingsPage::trCategory() const
 {
-    return tr("Help");
+    return QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY);
 }
 
 QWidget *GeneralSettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/help/help.pro b/src/plugins/help/help.pro
index 5375420fb31..525be8b2943 100644
--- a/src/plugins/help/help.pro
+++ b/src/plugins/help/help.pro
@@ -11,6 +11,7 @@ DEFINES += QT_CLUCENE_SUPPORT \
 HEADERS += helpplugin.h \
     docsettingspage.h \
     filtersettingspage.h \
+    helpconstants.h \
     helpmode.h \
     centralwidget.h \
     searchwidget.h \
diff --git a/src/plugins/help/helpconstants.h b/src/plugins/help/helpconstants.h
new file mode 100644
index 00000000000..0628cf8767a
--- /dev/null
+++ b/src/plugins/help/helpconstants.h
@@ -0,0 +1,42 @@
+/**************************************************************************
+**
+** This file is part of Qt Creator
+**
+** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+**
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** Commercial Usage
+**
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Nokia.
+**
+** GNU Lesser General Public License Usage
+**
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file.  Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** If you are unsure which license is appropriate for your use, please
+** contact the sales department at http://qt.nokia.com/contact.
+**
+**************************************************************************/
+
+#ifndef HELPCONSTANTS_H
+#define HELPCONSTANTS_H
+
+#include <QtCore/QtGlobal>
+
+namespace Help {
+namespace Constants {
+const char * const HELP_CATEGORY = "H.Help";
+const char * const HELP_TR_CATEGORY = QT_TRANSLATE_NOOP("Help", "Help");
+}
+}
+
+#endif // HELPCONSTANTS_H
diff --git a/src/plugins/locator/locatorconstants.h b/src/plugins/locator/locatorconstants.h
index 4a78341f79e..a236e403c06 100644
--- a/src/plugins/locator/locatorconstants.h
+++ b/src/plugins/locator/locatorconstants.h
@@ -36,7 +36,8 @@ namespace Locator {
 namespace Constants {
 
 const char * const FILTER_OPTIONS_PAGE = QT_TRANSLATE_NOOP("Locator", "Filters");
-const char * const LOCATOR_CATEGORY = QT_TRANSLATE_NOOP("Locator", "Locator");
+const char * const LOCATOR_CATEGORY = "G.Locator";
+const char * const LOCATOR_TR_CATEGORY = QT_TRANSLATE_NOOP("Locator", "Locator");
 const char * const TASK_INDEX = "Locator.Task.Index";
 
 } // namespace Constants
diff --git a/src/plugins/locator/settingspage.cpp b/src/plugins/locator/settingspage.cpp
index 6697fd8603f..c82065d3d85 100644
--- a/src/plugins/locator/settingspage.cpp
+++ b/src/plugins/locator/settingspage.cpp
@@ -61,12 +61,12 @@ QString SettingsPage::trName() const
 
 QString SettingsPage::category() const
 {
-    return Constants::LOCATOR_CATEGORY;
+    return QLatin1String(Constants::LOCATOR_CATEGORY);
 }
 
 QString SettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("Locator", Locator::Constants::LOCATOR_CATEGORY);
+    return QCoreApplication::translate("Locator", Locator::Constants::LOCATOR_TR_CATEGORY);
 }
 
 QWidget *SettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/mercurial/optionspage.cpp b/src/plugins/mercurial/optionspage.cpp
index e4c50d68910..f5414958100 100644
--- a/src/plugins/mercurial/optionspage.cpp
+++ b/src/plugins/mercurial/optionspage.cpp
@@ -89,7 +89,7 @@ OptionsPage::OptionsPage()
 
 QString OptionsPage::id() const
 {
-    return QLatin1String("Mercurial");
+    return QLatin1String(VCSBase::Constants::VCS_ID_MERCURIAL);
 }
 
 QString OptionsPage::trName() const
@@ -104,7 +104,7 @@ QString OptionsPage::category() const
 
 QString OptionsPage::trCategory() const
 {
-    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *OptionsPage::createPage(QWidget *parent)
diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp
index dd772e14228..41a5239bc3f 100644
--- a/src/plugins/perforce/settingspage.cpp
+++ b/src/plugins/perforce/settingspage.cpp
@@ -110,7 +110,7 @@ SettingsPage::SettingsPage()
 
 QString SettingsPage::id() const
 {
-    return QLatin1String("Perforce");
+    return QLatin1String(VCSBase::Constants::VCS_ID_PERFORCE);
 }
 
 QString SettingsPage::trName() const
@@ -125,7 +125,7 @@ QString SettingsPage::category() const
 
 QString SettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *SettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/projectexplorer/projectexplorerconstants.h b/src/plugins/projectexplorer/projectexplorerconstants.h
index 4e45278d501..262cc513675 100644
--- a/src/plugins/projectexplorer/projectexplorerconstants.h
+++ b/src/plugins/projectexplorer/projectexplorerconstants.h
@@ -189,8 +189,8 @@ const char * const BUILD_PARSER_ABLD_WINSCW = "BuildParser.ABLD.Winscw";
 const char * const BUILD_PARSER_ABLD_RVCT   = "BuildParser.ABLD.Rvct";
 
 // settings page
-const char * const PROJECTEXPLORER_CATEGORY            = "ProjectExplorer";
-const char * const PROJECTEXPLORER_PAGE                = "ProjectExplorer.ProjectExplorer";
+const char * const PROJECTEXPLORER_SETTINGS_CATEGORY  = "K.ProjectExplorer";
+const char * const PROJECTEXPLORER_SETTINGS_ID = "ProjectExplorer.ProjectExplorer";
 
 // task categories
 const char * const TASK_CATEGORY_COMPILE = "Task.Category.Compile";
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
index 833a91a6390..1a3a22831e4 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
@@ -117,11 +117,9 @@ ProjectExplorerSettingsPage::ProjectExplorerSettingsPage()
 {
 }
 
-
-
 QString ProjectExplorerSettingsPage::id() const
 {
-    return QLatin1String(Constants::PROJECTEXPLORER_PAGE);
+    return QLatin1String(Constants::PROJECTEXPLORER_SETTINGS_ID);
 }
 
 QString ProjectExplorerSettingsPage::trName() const
@@ -131,7 +129,7 @@ QString ProjectExplorerSettingsPage::trName() const
 
 QString ProjectExplorerSettingsPage::category() const
 {
-    return QLatin1String(Constants::PROJECTEXPLORER_PAGE);
+    return QLatin1String(Constants::PROJECTEXPLORER_SETTINGS_CATEGORY);
 }
 
 QString ProjectExplorerSettingsPage::trCategory() const
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp
index c1b616eb772..9c6e4830ecc 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60devicespreferencepane.cpp
@@ -106,7 +106,7 @@ S60DevicesPreferencePane::~S60DevicesPreferencePane()
 
 QString S60DevicesPreferencePane::id() const
 {
-    return QLatin1String("S60 SDKs");
+    return QLatin1String("Z.S60 SDKs");
 }
 
 QString S60DevicesPreferencePane::trName() const
@@ -116,12 +116,12 @@ QString S60DevicesPreferencePane::trName() const
 
 QString S60DevicesPreferencePane::category() const
 {
-    return Constants::QT_CATEGORY;
+    return QLatin1String(Constants::QT_SETTINGS_CATEGORY);
 }
 
 QString S60DevicesPreferencePane::trCategory() const
 {
-    return tr(Constants::QT_CATEGORY);
+    return QCoreApplication::translate("Qt4ProjectManager", Constants::QT_SETTINGS_CATEGORY);
 }
 
 QWidget *S60DevicesPreferencePane::createPage(QWidget *parent)
diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
index 334708784e0..a309cc7e628 100644
--- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp
@@ -133,7 +133,7 @@ void Qt4ProjectConfigWidget::updateDetails()
 void Qt4ProjectConfigWidget::manageQtVersions()
 {
     Core::ICore *core = Core::ICore::instance();
-    core->showOptionsDialog(Constants::QT_CATEGORY, Constants::QTVERSION_PAGE);
+    core->showOptionsDialog(Constants::QT_SETTINGS_CATEGORY, Constants::QTVERSION_SETTINGS_PAGE_ID);
 }
 
 
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index b52f296f271..19c033a0eee 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -30,6 +30,8 @@
 #ifndef QT4PROJECTMANAGERCONSTANTS_H
 #define QT4PROJECTMANAGERCONSTANTS_H
 
+#include <QtCore/QtGlobal>
+
 namespace Qt4ProjectManager {
 namespace Constants {
 
@@ -70,16 +72,13 @@ const char * const MAKESTEP   = "trolltech.qt4projectmanager.make";
 const char * const QT4RUNSTEP = "trolltech.qt4projectmanager.qt4runstep";
 const char * const DEPLOYHELPERRUNSTEP = "trolltech.qt4projectmanager.deployhelperrunstep";
 
-// views
-const char * const VIEW_DETAILED        = "Qt4.View.Detailed";
-const char * const VIEW_PROFILESONLY    = "Qt4.View.ProjectHierarchy";
-
 //Qt4 settings pages
-const char * const QT_CATEGORY            = "Qt4";
-const char * const QTVERSION_PAGE         = "Qt Versions";
-const char * const BUILD_ENVIRONMENT_PAGE = "Build Environments";
-
+const char * const QT_SETTINGS_CATEGORY       = "L.Qt4";
+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");
 } // namespace Constants
 } // namespace Qt4ProjectManager
 
 #endif // QT4PROJECTMANAGERCONSTANTS_H
+
diff --git a/src/plugins/qt4projectmanager/qtoptionspage.cpp b/src/plugins/qt4projectmanager/qtoptionspage.cpp
index af029059849..f7e9655f9e7 100644
--- a/src/plugins/qt4projectmanager/qtoptionspage.cpp
+++ b/src/plugins/qt4projectmanager/qtoptionspage.cpp
@@ -53,32 +53,26 @@ void DebuggingHelperBuildTask::run(QFutureInterface<void> &future)
 
 QtOptionsPage::QtOptionsPage()
 {
-
-}
-
-QtOptionsPage::~QtOptionsPage()
-{
-
 }
 
 QString QtOptionsPage::id() const
 {
-    return QLatin1String(Constants::QTVERSION_PAGE);
+    return QLatin1String(Constants::QTVERSION_SETTINGS_PAGE_ID);
 }
 
 QString QtOptionsPage::trName() const
 {
-    return tr(Constants::QTVERSION_PAGE);
+    return QCoreApplication::translate("Qt4ProjectManager", Constants::QTVERSION_SETTINGS_PAGE_NAME);
 }
 
 QString QtOptionsPage::category() const
 {
-    return Constants::QT_CATEGORY;
+    return QLatin1String(Constants::QT_SETTINGS_CATEGORY);
 }
 
 QString QtOptionsPage::trCategory() const
 {
-    return tr(Constants::QT_CATEGORY);
+    return QCoreApplication::translate("Qt4ProjectManager", Constants::QT_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *QtOptionsPage::createPage(QWidget *parent)
diff --git a/src/plugins/qt4projectmanager/qtoptionspage.h b/src/plugins/qt4projectmanager/qtoptionspage.h
index 7fc3ffaf710..b6c6d038d60 100644
--- a/src/plugins/qt4projectmanager/qtoptionspage.h
+++ b/src/plugins/qt4projectmanager/qtoptionspage.h
@@ -135,7 +135,6 @@ class QtOptionsPage : public Core::IOptionsPage
     Q_OBJECT
 public:
     QtOptionsPage();
-    ~QtOptionsPage();
     QString id() const;
     QString trName() const;
     QString category() const;
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp
index 85ed2e7bfbc..e1aabc22c85 100644
--- a/src/plugins/subversion/settingspage.cpp
+++ b/src/plugins/subversion/settingspage.cpp
@@ -91,7 +91,7 @@ SettingsPage::SettingsPage() :
 
 QString SettingsPage::id() const
 {
-    return QLatin1String("Subversion");
+    return QLatin1String(VCSBase::Constants::VCS_ID_SUBVERSION);
 }
 
 QString SettingsPage::trName() const
@@ -106,7 +106,7 @@ QString SettingsPage::category() const
 
 QString SettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("VCSBase", VCSBase::Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *SettingsPage::createPage(QWidget *parent)
diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp
index 86b7acac5df..f68a8c917c5 100644
--- a/src/plugins/texteditor/behaviorsettingspage.cpp
+++ b/src/plugins/texteditor/behaviorsettingspage.cpp
@@ -74,7 +74,7 @@ BehaviorSettingsPage::~BehaviorSettingsPage()
 
 QString BehaviorSettingsPage::id() const
 {
-    return m_d->m_parameters.name;
+    return m_d->m_parameters.id;
 }
 
 QString BehaviorSettingsPage::trName() const
diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h
index 007c11a303e..98e7025bcf8 100644
--- a/src/plugins/texteditor/behaviorsettingspage.h
+++ b/src/plugins/texteditor/behaviorsettingspage.h
@@ -43,6 +43,7 @@ struct StorageSettings;
 
 struct BehaviorSettingsPageParameters
 {
+    QString id;
     QString name;
     QString category;
     QString trCategory;
diff --git a/src/plugins/texteditor/displaysettingspage.cpp b/src/plugins/texteditor/displaysettingspage.cpp
index ceb011a50c7..ecfa4c2d546 100644
--- a/src/plugins/texteditor/displaysettingspage.cpp
+++ b/src/plugins/texteditor/displaysettingspage.cpp
@@ -71,7 +71,7 @@ DisplaySettingsPage::~DisplaySettingsPage()
 
 QString DisplaySettingsPage::id() const
 {
-    return m_d->m_parameters.name;
+    return m_d->m_parameters.id;
 }
 
 QString DisplaySettingsPage::trName() const
diff --git a/src/plugins/texteditor/displaysettingspage.h b/src/plugins/texteditor/displaysettingspage.h
index 902e984a57e..0554aa5149d 100644
--- a/src/plugins/texteditor/displaysettingspage.h
+++ b/src/plugins/texteditor/displaysettingspage.h
@@ -42,6 +42,7 @@ struct DisplaySettings;
 
 struct DisplaySettingsPageParameters
 {
+    QString id;
     QString name;
     QString category;
     QString trCategory;
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index 3c7fd6cd0bb..18880da65f6 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -68,6 +68,7 @@ struct ColorSchemeEntry
 
     QString fileName;
     QString name;
+    QString id;
     bool readOnly;
 };
 
@@ -116,12 +117,14 @@ class FontSettingsPagePrivate
 {
 public:
     FontSettingsPagePrivate(const TextEditor::FormatDescriptions &fd,
+                            const QString &id,
                             const QString &name,
                             const QString &category,
                             const QString &trCategory);
     ~FontSettingsPagePrivate();
 
 public:
+    const QString m_id;
     const QString m_name;
     const QString m_settingsGroup;
     const QString m_category;
@@ -174,9 +177,11 @@ static QString createColorSchemeFileName(const QString &pattern)
 
 // ------- FontSettingsPagePrivate
 FontSettingsPagePrivate::FontSettingsPagePrivate(const TextEditor::FormatDescriptions &fd,
+                                                 const QString &id,
                                                  const QString &name,
                                                  const QString &category,
                                                  const QString &trCategory) :
+    m_id(id),
     m_name(name),
     m_settingsGroup(Utils::settingsKey(category)),
     m_category(category),
@@ -308,11 +313,12 @@ QColor FormatDescription::background() const
 
 //  ------------ FontSettingsPage
 FontSettingsPage::FontSettingsPage(const FormatDescriptions &fd,
+                                   const QString &id,
                                    const QString &category,
                                    const QString &trCategory,
                                    QObject *parent) :
     Core::IOptionsPage(parent),
-    d_ptr(new FontSettingsPagePrivate(fd, tr("Font & Colors"), category, trCategory))
+    d_ptr(new FontSettingsPagePrivate(fd, id, tr("Font & Colors"), category, trCategory))
 {
 }
 
@@ -323,7 +329,7 @@ FontSettingsPage::~FontSettingsPage()
 
 QString FontSettingsPage::id() const
 {
-    return d_ptr->m_name;
+    return d_ptr->m_id;
 }
 
 QString FontSettingsPage::trName() const
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index d9d90272847..89f4522fbdb 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -83,6 +83,7 @@ class TEXTEDITOR_EXPORT FontSettingsPage : public Core::IOptionsPage
 
 public:
     FontSettingsPage(const FormatDescriptions &fd,
+                     const QString &id,
                      const QString &category,
                      const QString &trCategory,
                      QObject *parent = 0);
diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h
index 14e30ded054..c2818dd21f9 100644
--- a/src/plugins/texteditor/texteditorconstants.h
+++ b/src/plugins/texteditor/texteditorconstants.h
@@ -30,6 +30,8 @@
 #ifndef TEXTEDITORCONSTANTS_H
 #define TEXTEDITORCONSTANTS_H
 
+#include <QtCore/QtGlobal>
+
 namespace TextEditor {
 namespace Constants {
 
@@ -102,6 +104,8 @@ const char * const C_REMOVED_LINE        = "RemovedLine";
 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_TR_CATEGORY = QT_TRANSLATE_NOOP("TextEditor", "Text Editor");
 
 } // namespace Constants
 } // namespace TextEditor
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index 1e6f2c65ade..66e71706a7a 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -28,6 +28,7 @@
 **************************************************************************/
 
 #include "texteditorsettings.h"
+#include "texteditorconstants.h"
 
 #include "basetexteditor.h"
 #include "behaviorsettingspage.h"
@@ -101,25 +102,29 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
     formatDescriptions.append(FormatDescription(QLatin1String(C_DIFF_FILE), tr("Diff File"), Qt::darkBlue));
     formatDescriptions.append(FormatDescription(QLatin1String(C_DIFF_LOCATION), tr("Diff Location"), Qt::blue));
 
+    const QString category = QLatin1String(Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
+    const QString trCategory = QCoreApplication::translate("TextEditor", Constants::TEXT_EDITOR_SETTINGS_TR_CATEGORY);
+
     m_fontSettingsPage = new FontSettingsPage(formatDescriptions,
-                                              QLatin1String("TextEditor"),
-                                              tr("Text Editor"),
-                                              this);
+                                              QLatin1String("A.FontSettings"),
+                                              category, trCategory, this);
     pm->addObject(m_fontSettingsPage);
 
     // Add the GUI used to configure the tab, storage and interaction settings
     TextEditor::BehaviorSettingsPageParameters behaviorSettingsPageParameters;
+    behaviorSettingsPageParameters.id = QLatin1String("B.BehaviourSettings");
     behaviorSettingsPageParameters.name = tr("Behavior");
-    behaviorSettingsPageParameters.category = QLatin1String("TextEditor");
-    behaviorSettingsPageParameters.trCategory = tr("Text Editor");
+    behaviorSettingsPageParameters.category = category;
+    behaviorSettingsPageParameters.trCategory = trCategory;
     behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text");
     m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
     pm->addObject(m_behaviorSettingsPage);
 
     TextEditor::DisplaySettingsPageParameters displaySettingsPageParameters;
+    displaySettingsPageParameters.id = QLatin1String("D.DisplaySettings"),
     displaySettingsPageParameters.name = tr("Display");
-    displaySettingsPageParameters.category = QLatin1String("TextEditor");
-    displaySettingsPageParameters.trCategory = tr("Text Editor");
+    displaySettingsPageParameters.category = category;;
+    displaySettingsPageParameters.trCategory = trCategory;
     displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
     m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
     pm->addObject(m_displaySettingsPage);
diff --git a/src/plugins/vcsbase/vcsbaseconstants.h b/src/plugins/vcsbase/vcsbaseconstants.h
index 452390d8f11..5fab54b7969 100644
--- a/src/plugins/vcsbase/vcsbaseconstants.h
+++ b/src/plugins/vcsbase/vcsbaseconstants.h
@@ -35,13 +35,15 @@
 namespace VCSBase {
 namespace Constants {
 
-const char * const VCS_SETTINGS_CATEGORY = QT_TRANSLATE_NOOP("VCSBase", "Version Control");
-const char * const VCS_COMMON_SETTINGS_ID = QT_TRANSLATE_NOOP("VCSBase", "Common");
+const char * const VCS_SETTINGS_CATEGORY = "V.Version Control";
+const char * const VCS_SETTINGS_TR_CATEGORY = QT_TRANSLATE_NOOP("VCSBase", "Version Control");
+const char * const VCS_COMMON_SETTINGS_ID = "A.Common";
+const char * const VCS_COMMON_SETTINGS_NAME = QT_TRANSLATE_NOOP("VCSBase", "Common");
 
 const char * const VCS_WIZARD_TR_CATEGORY = QT_TRANSLATE_NOOP("VCSBase", "Version Control");
 const char * const VCS_WIZARD_CATEGORY = "Z.Version Control";
 
-// Ids for sort order
+// Ids for sort order (wizards and preferences)
 const char * const VCS_ID_GIT = "G.Git";
 const char * const VCS_ID_MERCURIAL = "H.Mercurial";
 const char * const VCS_ID_SUBVERSION = "J.Subversion";
diff --git a/src/plugins/vcsbase/vcsbasesettingspage.cpp b/src/plugins/vcsbase/vcsbasesettingspage.cpp
index 5d9fcb0a83a..e4591f41338 100644
--- a/src/plugins/vcsbase/vcsbasesettingspage.cpp
+++ b/src/plugins/vcsbase/vcsbasesettingspage.cpp
@@ -114,7 +114,7 @@ QString VCSBaseSettingsPage::id() const
 
 QString VCSBaseSettingsPage::trName() const
 {
-    return QCoreApplication::translate("VCSBase", Constants::VCS_COMMON_SETTINGS_ID);
+    return QCoreApplication::translate("VCSBase", Constants::VCS_COMMON_SETTINGS_NAME);
 }
 
 QString VCSBaseSettingsPage::category() const
@@ -124,7 +124,7 @@ QString VCSBaseSettingsPage::category() const
 
 QString VCSBaseSettingsPage::trCategory() const
 {
-    return QCoreApplication::translate("VCSBase", Constants::VCS_SETTINGS_CATEGORY);
+    return QCoreApplication::translate("VCSBase", Constants::VCS_SETTINGS_TR_CATEGORY);
 }
 
 QWidget *VCSBaseSettingsPage::createPage(QWidget *parent)
-- 
GitLab