diff --git a/src/plugins/analyzerbase/analyzersettings.h b/src/plugins/analyzerbase/analyzersettings.h
index 1b7c3eb3c22a7abd5349d8fb8265a5cdb5d11691..1ea1c2e1ac14ea9309570d2ad85269aa43c550ce 100644
--- a/src/plugins/analyzerbase/analyzersettings.h
+++ b/src/plugins/analyzerbase/analyzersettings.h
@@ -36,6 +36,7 @@
 
 #include "analyzerbase_global.h"
 
+#include <coreplugin/id.h>
 #include <projectexplorer/runconfiguration.h>
 
 namespace Analyzer {
@@ -73,7 +74,7 @@ public:
     virtual void fromMap(const QVariantMap &map) = 0;
 
     /// unique ID for this configuration
-    virtual QString id() const = 0;
+    virtual Core::Id id() const = 0;
     /// user readable display name for this configuration
     virtual QString displayName() const = 0;
     /// create a configuration widget for this configuration
diff --git a/src/plugins/android/androidsettingspage.cpp b/src/plugins/android/androidsettingspage.cpp
index 4e44921c65f8dbcecfc870a6c4611a01062935fe..4f94f187484bb04897604e398f5d1d89b0f1dfaa 100644
--- a/src/plugins/android/androidsettingspage.cpp
+++ b/src/plugins/android/androidsettingspage.cpp
@@ -40,7 +40,7 @@ namespace Internal {
 AndroidSettingsPage::AndroidSettingsPage(QObject *parent)
     : Core::IOptionsPage(parent)
 {
-    setId(QLatin1String(Constants::ANDROID_SETTINGS_ID));
+    setId(Constants::ANDROID_SETTINGS_ID);
     setDisplayName(tr("Android Configurations"));
     setCategory(Constants::ANDROID_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Android",
diff --git a/src/plugins/bazaar/optionspage.cpp b/src/plugins/bazaar/optionspage.cpp
index 0a8169034d0d9f725d4155e33e31f8c7676a09cf..657e22c47ce0c4b6589011cf76fcd3dfecbca7fa 100644
--- a/src/plugins/bazaar/optionspage.cpp
+++ b/src/plugins/bazaar/optionspage.cpp
@@ -91,7 +91,7 @@ QString OptionsPageWidget::searchKeywords() const
 
 OptionsPage::OptionsPage()
 {
-    setId(QLatin1String(VcsBase::Constants::VCS_ID_BAZAAR));
+    setId(VcsBase::Constants::VCS_ID_BAZAAR);
     setDisplayName(tr("Bazaar"));
 }
 
diff --git a/src/plugins/clearcase/settingspage.cpp b/src/plugins/clearcase/settingspage.cpp
index 3dd15b21137984d007e671d64e63919c3681fe22..f4fa60ca85d06407c9194abf22fac409542faa63 100644
--- a/src/plugins/clearcase/settingspage.cpp
+++ b/src/plugins/clearcase/settingspage.cpp
@@ -127,7 +127,7 @@ QString SettingsPageWidget::searchKeywords() const
 SettingsPage::SettingsPage() :
     m_widget(0)
 {
-    setId(QLatin1String(ClearCase::Constants::VCS_ID_CLEARCASE));
+    setId(ClearCase::Constants::VCS_ID_CLEARCASE);
     setDisplayName(tr("ClearCase"));
 }
 
diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
index 872d80047b741e57e51c223877ab3bae60f30215..913dc6cb3daa91e0b11f47c46bd6a476dd00a616 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectmanager.cpp
@@ -243,7 +243,7 @@ QString CMakeManager::qtVersionForQMake(const QString &qmakePath)
 CMakeSettingsPage::CMakeSettingsPage()
     :  m_pathchooser(0)
 {
-    setId(QLatin1String("Z.CMake"));
+    setId("Z.CMake");
     setDisplayName(tr("CMake"));
     setCategory(ProjectExplorer::Constants::PROJECTEXPLORER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("ProjectExplorer",
diff --git a/src/plugins/coreplugin/dialogs/ioptionspage.h b/src/plugins/coreplugin/dialogs/ioptionspage.h
index ed3d1a5886f8fe427cafaa1cec4221583cfafd4d..fd20e7857b9b01ad554803cae1b199e7c471fb35 100644
--- a/src/plugins/coreplugin/dialogs/ioptionspage.h
+++ b/src/plugins/coreplugin/dialogs/ioptionspage.h
@@ -44,9 +44,9 @@ class CORE_EXPORT IOptionsPage : public QObject
 public:
     IOptionsPage(QObject *parent = 0) : QObject(parent) {}
 
-    QString id() const { return m_id; }
+    Id id() const { return m_id; }
     QString displayName() const { return m_displayName; }
-    Core::Id category() const { return m_category; }
+    Id category() const { return m_category; }
     QString displayCategory() const { return m_displayCategory; }
     QIcon categoryIcon() const { return QIcon(m_categoryIcon); }
 
@@ -56,15 +56,15 @@ public:
     virtual void finish() = 0;
 
 protected:
-    void setId(const QString &id) { m_id = id; }
+    void setId(Id id) { m_id = id; }
     void setDisplayName(const QString &displayName) { m_displayName = displayName; }
     void setCategory(Id category) { m_category = category; }
     void setDisplayCategory(const QString &displayCategory) { m_displayCategory = displayCategory; }
     void setCategoryIcon(const QString &categoryIcon) { m_categoryIcon = categoryIcon; }
 
-    QString m_id;
+    Id m_id;
     QString m_displayName;
-    Core::Id m_category;
+    Id m_category;
     QString m_displayCategory;
     QString m_categoryIcon;
 };
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.cpp b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
index 0400407f99897f7a1b8f1ae5779a0cd8daabb0d3..9274613aabba35feb802c1fc977adcd233f18c07 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.cpp
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.cpp
@@ -272,7 +272,7 @@ bool optionsPageLessThan(const IOptionsPage *p1, const IOptionsPage *p2)
 {
     if (const int cc = p1->category().toString().compare(p2->category().toString()))
         return cc < 0;
-    return p1->id().compare(p2->id()) < 0;
+    return p1->id().toString().compare(p2->id().toString()) < 0;
 }
 
 static inline QList<Core::IOptionsPage*> sortedOptionsPages()
@@ -331,11 +331,11 @@ void SettingsDialog::showPage(Id categoryId, Id pageId)
 {
     // handle the case of "show last page"
     Id initialCategory = categoryId;
-    QString initialPage = pageId.toString();
-    if (!initialCategory.isValid() && initialPage.isEmpty()) {
+    Id initialPage = pageId;
+    if (!initialCategory.isValid() && !initialPage.isValid()) {
         QSettings *settings = ICore::settings();
         initialCategory = Id::fromSetting(settings->value(QLatin1String(categoryKeyC)));
-        initialPage = settings->value(QLatin1String(pageKeyC), QVariant(QString())).toString();
+        initialPage = Id::fromSetting(settings->value(QLatin1String(pageKeyC)));
     }
 
     int initialCategoryIndex = -1;
@@ -542,8 +542,8 @@ void SettingsDialog::apply()
 void SettingsDialog::done(int val)
 {
     QSettings *settings = ICore::settings();
-    settings->setValue(QLatin1String(categoryKeyC), m_currentCategory.toString());
-    settings->setValue(QLatin1String(pageKeyC), m_currentPage);
+    settings->setValue(QLatin1String(categoryKeyC), m_currentCategory.toSetting());
+    settings->setValue(QLatin1String(pageKeyC), m_currentPage.toSetting());
 
     ICore::saveSettings(); // save all settings
 
diff --git a/src/plugins/coreplugin/dialogs/settingsdialog.h b/src/plugins/coreplugin/dialogs/settingsdialog.h
index ec833581213794531a1ec89077cc1da8a114dd89..e4cfdbc0b94e8c697ca991914b98ed797c651f0e 100644
--- a/src/plugins/coreplugin/dialogs/settingsdialog.h
+++ b/src/plugins/coreplugin/dialogs/settingsdialog.h
@@ -93,13 +93,13 @@ private:
     void ensureCategoryWidget(Category *category);
     void disconnectTabWidgets();
 
-    const QList<Core::IOptionsPage*> m_pages;
+    const QList<IOptionsPage *> m_pages;
 
-    QSet<Core::IOptionsPage*> m_visitedPages;
+    QSet<IOptionsPage *> m_visitedPages;
     QSortFilterProxyModel *m_proxyModel;
     CategoryModel *m_model;
-    Core::Id m_currentCategory;
-    QString m_currentPage;
+    Id m_currentCategory;
+    Id m_currentPage;
     QStackedLayout *m_stackedLayout;
     Utils::FilterLineEdit *m_filterLineEdit;
     QListView *m_categoryList;
diff --git a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
index 9ae7ef99fd38845281db50aa785854a4f3abff2b..8c4b352cb95c05d7a76dabee9ff511c7114ddf4d 100644
--- a/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
+++ b/src/plugins/coreplugin/dialogs/shortcutsettings.cpp
@@ -60,7 +60,7 @@ ShortcutSettings::ShortcutSettings(QObject *parent)
 {
     connect(ActionManager::instance(), SIGNAL(commandListChanged()), this, SLOT(initialize()));
 
-    setId(QLatin1String(Core::Constants::SETTINGS_ID_SHORTCUTS));
+    setId(Core::Constants::SETTINGS_ID_SHORTCUTS);
     setDisplayName(tr("Keyboard"));
     setCategory(Core::Constants::SETTINGS_CATEGORY_CORE);
     setDisplayCategory(QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE));
diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp
index 386a305fcd9765a43cfe1c21a8925c795b4af3b9..fe4ad823e8926fbe0b3f7459d446a9f1deaa99dd 100644
--- a/src/plugins/coreplugin/generalsettings.cpp
+++ b/src/plugins/coreplugin/generalsettings.cpp
@@ -55,7 +55,7 @@ using namespace Core::Internal;
 GeneralSettings::GeneralSettings():
     m_page(0), m_dialog(0)
 {
-    setId(QLatin1String(Core::Constants::SETTINGS_ID_ENVIRONMENT));
+    setId(Core::Constants::SETTINGS_ID_ENVIRONMENT);
     setDisplayName(tr("General"));
     setCategory(Core::Constants::SETTINGS_CATEGORY_CORE);
     setDisplayCategory(QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE));
diff --git a/src/plugins/coreplugin/mimetypesettings.cpp b/src/plugins/coreplugin/mimetypesettings.cpp
index f3e7d8d5e98f4744bc145cdada80f6ab5dc32fec..75858f274da336fe51897fbd26c2f2117858eb97 100644
--- a/src/plugins/coreplugin/mimetypesettings.cpp
+++ b/src/plugins/coreplugin/mimetypesettings.cpp
@@ -547,7 +547,7 @@ void MimeTypeSettingsPrivate::resetMimeTypes()
 void MimeTypeSettingsPrivate::updateMagicHeaderButtons()
 {
     const QModelIndex &modelIndex = m_ui.magicHeadersTableWidget->selectionModel()->currentIndex();
-    const bool enabled(modelIndex.isValid());
+    const bool enabled = modelIndex.isValid();
 
     m_ui.removeMagicButton->setEnabled(enabled);
     m_ui.editMagicButton->setEnabled(enabled);
@@ -558,7 +558,7 @@ MimeTypeSettings::MimeTypeSettings(QObject *parent)
     : IOptionsPage(parent)
     , d(new MimeTypeSettingsPrivate)
 {
-    setId(QLatin1String(Core::Constants::SETTINGS_ID_MIMETYPES));
+    setId(Core::Constants::SETTINGS_ID_MIMETYPES);
     setDisplayName(tr("MIME Types"));
     setCategory(Core::Constants::SETTINGS_CATEGORY_CORE);
     setDisplayCategory(QCoreApplication::translate("Core",
diff --git a/src/plugins/coreplugin/toolsettings.cpp b/src/plugins/coreplugin/toolsettings.cpp
index a00ea33f78df7f25d40761659852a9d9474039e3..77d1a27677d3e0217a93b42b8f11a6f1a361130a 100644
--- a/src/plugins/coreplugin/toolsettings.cpp
+++ b/src/plugins/coreplugin/toolsettings.cpp
@@ -50,7 +50,7 @@ using namespace Core::Internal;
 ToolSettings::ToolSettings(QObject *parent) :
     IOptionsPage(parent)
 {
-    setId(QLatin1String(Core::Constants::SETTINGS_ID_TOOLS));
+    setId(Core::Constants::SETTINGS_ID_TOOLS);
     setDisplayName(tr("External Tools"));
     setCategory(Core::Constants::SETTINGS_CATEGORY_CORE);
     setDisplayCategory(QCoreApplication::translate("Core", Constants::SETTINGS_TR_CATEGORY_CORE));
diff --git a/src/plugins/cpaster/codepastersettings.cpp b/src/plugins/cpaster/codepastersettings.cpp
index dcca2e56ab4c93359b307862595b63f9676b4dfc..049221d9405a43454a13bbeddd098202b4085611 100644
--- a/src/plugins/cpaster/codepastersettings.cpp
+++ b/src/plugins/cpaster/codepastersettings.cpp
@@ -51,7 +51,7 @@ namespace CodePaster {
 
 CodePasterSettingsPage::CodePasterSettingsPage()
 {
-    setId(QLatin1String("C.CodePaster"));
+    setId("C.CodePaster");
     setDisplayName(tr("CodePaster"));
     setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("CodePaster",
diff --git a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
index 99845981696ee771f87c4adcf24c8f901722af67..75e3dd36c93a2048b25983d08e59ce915e39f193 100644
--- a/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
+++ b/src/plugins/cpaster/fileshareprotocolsettingspage.cpp
@@ -98,7 +98,7 @@ FileShareProtocolSettingsPage::FileShareProtocolSettingsPage(const QSharedPointe
                                                              QObject *parent) :
     Core::IOptionsPage(parent), m_settings(s), m_widget(0)
 {
-    setId(QLatin1String("X.FileSharePaster"));
+    setId("X.FileSharePaster");
     setDisplayName(tr("Fileshare"));
     setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("CodePaster", Constants::CPASTER_SETTINGS_TR_CATEGORY));
diff --git a/src/plugins/cpaster/protocol.cpp b/src/plugins/cpaster/protocol.cpp
index 200d522aeca4fef214f2aaf5ff47f6d490763ba2..f092ef09d1afa4c776e6c82b3363667585f9895c 100644
--- a/src/plugins/cpaster/protocol.cpp
+++ b/src/plugins/cpaster/protocol.cpp
@@ -168,9 +168,8 @@ bool Protocol::showConfigurationError(const Protocol *p,
     mb.exec();
     bool rc = false;
     if (mb.clickedButton() == settingsButton)
-        rc = Core::ICore::showOptionsDialog(Core::Id(p->settingsPage()->category()),
-                                            Core::Id::fromString(p->settingsPage()->id()),
-                                                        parent);
+        rc = Core::ICore::showOptionsDialog(p->settingsPage()->category(),
+                                            p->settingsPage()->id(), parent);
     return rc;
 }
 
diff --git a/src/plugins/cpaster/settingspage.cpp b/src/plugins/cpaster/settingspage.cpp
index 1cf06ebd9f45b6f15ec680b7fca0c84ccc0e4971..4e3a5546f50c083a37a2e4839da9b4553e10d0ea 100644
--- a/src/plugins/cpaster/settingspage.cpp
+++ b/src/plugins/cpaster/settingspage.cpp
@@ -78,7 +78,7 @@ Settings SettingsWidget::settings()
 SettingsPage::SettingsPage(const QSharedPointer<Settings> &settings) :
     m_settings(settings), m_widget(0)
 {
-    setId(QLatin1String("A.General"));
+    setId("A.General");
     setDisplayName(tr("General"));
     setCategory(Constants::CPASTER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("CodePaster",
diff --git a/src/plugins/cpptools/completionsettingspage.cpp b/src/plugins/cpptools/completionsettingspage.cpp
index e1c28039d648c77618276b07e25a670cc0a9da28..7770218915a8b80600c10825bb752942feb808d6 100644
--- a/src/plugins/cpptools/completionsettingspage.cpp
+++ b/src/plugins/cpptools/completionsettingspage.cpp
@@ -48,7 +48,7 @@ CompletionSettingsPage::CompletionSettingsPage(QObject *parent)
 {
     m_commentsSettings.fromSettings(QLatin1String(CPPTOOLS_SETTINGSGROUP), Core::ICore::settings());
 
-    setId(QLatin1String("P.Completion"));
+    setId("P.Completion");
     setDisplayName(tr("Completion"));
 }
 
diff --git a/src/plugins/cpptools/cppcodestylesettingspage.cpp b/src/plugins/cpptools/cppcodestylesettingspage.cpp
index bcde28930733b1b3f504e823deeccfbabb89efe7..5272fdda94f194e2dfefaf7cb01283c49047d086 100644
--- a/src/plugins/cpptools/cppcodestylesettingspage.cpp
+++ b/src/plugins/cpptools/cppcodestylesettingspage.cpp
@@ -479,7 +479,7 @@ CppCodeStyleSettingsPage::CppCodeStyleSettingsPage(QWidget *parent) :
     Core::IOptionsPage(parent),
     m_pageCppCodeStylePreferences(0)
 {
-    setId(QLatin1String(Constants::CPP_CODE_STYLE_SETTINGS_ID));
+    setId(Constants::CPP_CODE_STYLE_SETTINGS_ID);
     setDisplayName(QCoreApplication::translate("CppTools", Constants::CPP_CODE_STYLE_SETTINGS_NAME));
     setCategory(Constants::CPP_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_TR_CATEGORY));
diff --git a/src/plugins/cpptools/cppfilesettingspage.cpp b/src/plugins/cpptools/cppfilesettingspage.cpp
index 42faae0f0fd3bd49fdd1e4c8f583bdc3b030ad3b..a1fd78c930a5c4926c069365afa3061140dfc527 100644
--- a/src/plugins/cpptools/cppfilesettingspage.cpp
+++ b/src/plugins/cpptools/cppfilesettingspage.cpp
@@ -319,7 +319,7 @@ CppFileSettingsPage::CppFileSettingsPage(QSharedPointer<CppFileSettings> &settin
     Core::IOptionsPage(parent),
     m_settings(settings)
 {
-    setId(QLatin1String(Constants::CPP_FILE_SETTINGS_ID));
+    setId(Constants::CPP_FILE_SETTINGS_ID);
     setDisplayName(QCoreApplication::translate("CppTools", Constants::CPP_FILE_SETTINGS_NAME));
     setCategory(Constants::CPP_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("CppTools", Constants::CPP_SETTINGS_TR_CATEGORY));
diff --git a/src/plugins/cvs/settingspage.cpp b/src/plugins/cvs/settingspage.cpp
index a80f233efa7bd56ffa916328ad0f740573a6040b..4118d91b06bd0c51fa211ba42e932edeaecee96b 100644
--- a/src/plugins/cvs/settingspage.cpp
+++ b/src/plugins/cvs/settingspage.cpp
@@ -94,7 +94,7 @@ QString SettingsPageWidget::searchKeywords() const
 
 SettingsPage::SettingsPage()
 {
-    setId(QLatin1String(VcsBase::Constants::VCS_ID_CVS));
+    setId(VcsBase::Constants::VCS_ID_CVS);
     setDisplayName(tr("CVS"));
 }
 
diff --git a/src/plugins/debugger/cdb/cdboptionspage.cpp b/src/plugins/debugger/cdb/cdboptionspage.cpp
index 249c3995422be7e93ae8016cbc7a319a4508d671..2a837717e931da6abfded731d3d391d99e5313b9 100644
--- a/src/plugins/debugger/cdb/cdboptionspage.cpp
+++ b/src/plugins/debugger/cdb/cdboptionspage.cpp
@@ -322,7 +322,7 @@ CdbOptionsPage::CdbOptionsPage() :
     CdbOptionsPage::m_instance = this;
     m_options->fromSettings(Core::ICore::settings());
 
-    setId(CdbOptionsPage::settingsId());
+    setId("F.Cda");
     setDisplayName(tr("CDB"));
     setCategory(Debugger::Constants::DEBUGGER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Debugger",
@@ -330,11 +330,6 @@ CdbOptionsPage::CdbOptionsPage() :
     setCategoryIcon(QLatin1String(Constants::DEBUGGER_COMMON_SETTINGS_CATEGORY_ICON));
 }
 
-QString CdbOptionsPage::settingsId()
-{
-    return QLatin1String("F.Cda");
-}
-
 CdbOptionsPage::~CdbOptionsPage()
 {
     CdbOptionsPage::m_instance = 0;
diff --git a/src/plugins/debugger/cdb/cdboptionspage.h b/src/plugins/debugger/cdb/cdboptionspage.h
index 24505eb7922395d8bb0010fec5983f7eee963997..4bf5c7c04d1b0e16559b6812d0a6e3b4b8fdc529 100644
--- a/src/plugins/debugger/cdb/cdboptionspage.h
+++ b/src/plugins/debugger/cdb/cdboptionspage.h
@@ -128,7 +128,6 @@ public:
     virtual ~CdbOptionsPage();
 
     static CdbOptionsPage *instance();
-    static QString settingsId();
 
     // IOptionsPage
     QWidget *createPage(QWidget *parent);
diff --git a/src/plugins/debugger/commonoptionspage.cpp b/src/plugins/debugger/commonoptionspage.cpp
index d070db422e915eb08eb5d97c8a52eb17bd2eeb32..b9554985de96cdabc428316b7efb06c23d08b27a 100644
--- a/src/plugins/debugger/commonoptionspage.cpp
+++ b/src/plugins/debugger/commonoptionspage.cpp
@@ -236,7 +236,7 @@ void CommonOptionsPageWidget::setGlobalOptions(const GlobalDebuggerOptions &go)
 CommonOptionsPage::CommonOptionsPage(const QSharedPointer<GlobalDebuggerOptions> &go) :
     m_options(go)
 {
-    setId(QLatin1String(DEBUGGER_COMMON_SETTINGS_ID));
+    setId(DEBUGGER_COMMON_SETTINGS_ID);
     setDisplayName(QCoreApplication::translate("Debugger", "General"));
     setCategory(DEBUGGER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Debugger", DEBUGGER_SETTINGS_TR_CATEGORY));
@@ -309,7 +309,7 @@ QString CommonOptionsPage::msgSetBreakpointAtFunctionToolTip(const char *functio
 
 LocalsAndExpressionsOptionsPage::LocalsAndExpressionsOptionsPage()
 {
-    setId(QLatin1String("Z.LocalsAndExpressions"));
+    setId("Z.LocalsAndExpressions");
     //: '&&' will appear as one (one is marking keyboard shortcut)
     setDisplayName(QCoreApplication::translate("Debugger", "Locals && Expressions"));
     setCategory(DEBUGGER_SETTINGS_CATEGORY);
diff --git a/src/plugins/debugger/gdb/gdboptionspage.cpp b/src/plugins/debugger/gdb/gdboptionspage.cpp
index 1df23cf73d4e244ad4a9c39b8c13ff796ea3d3d8..1ec9ab9e2ed8ca62c9e815563e2be5e92110969e 100644
--- a/src/plugins/debugger/gdb/gdboptionspage.cpp
+++ b/src/plugins/debugger/gdb/gdboptionspage.cpp
@@ -380,7 +380,7 @@ GdbOptionsPageWidget::GdbOptionsPageWidget(QWidget *parent)
 
 GdbOptionsPage::GdbOptionsPage()
 {
-    setId(QLatin1String("M.Gdb"));
+    setId("M.Gdb");
     setDisplayName(tr("GDB"));
     setCategory(Constants::DEBUGGER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Debugger", Constants::DEBUGGER_SETTINGS_TR_CATEGORY));
diff --git a/src/plugins/designer/cpp/cppsettingspage.cpp b/src/plugins/designer/cpp/cppsettingspage.cpp
index 1dbb478083627b176682bd1a930edefef5a77f40..d1744ae9bf27de417ecddc8b0297730fafa7c633 100644
--- a/src/plugins/designer/cpp/cppsettingspage.cpp
+++ b/src/plugins/designer/cpp/cppsettingspage.cpp
@@ -105,7 +105,7 @@ QString CppSettingsPageWidget::searchKeywords() const
 CppSettingsPage::CppSettingsPage(QObject *parent) : Core::IOptionsPage(parent)
 {
     m_parameters.fromSettings(Core::ICore::settings());
-    setId(QLatin1String(Designer::Constants::SETTINGS_CPP_SETTINGS_ID));
+    setId(Designer::Constants::SETTINGS_CPP_SETTINGS_ID);
     setDisplayName(QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_CPP_SETTINGS_NAME));
     setCategory(Designer::Constants::SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Designer", Designer::Constants::SETTINGS_TR_CATEGORY));
diff --git a/src/plugins/designer/settingspage.cpp b/src/plugins/designer/settingspage.cpp
index fa4a72567426b9990aff2478d83feeaa55d9abe5..050d0e239dd50c5f8c388f7d17b5ff584d0ca1fc 100644
--- a/src/plugins/designer/settingspage.cpp
+++ b/src/plugins/designer/settingspage.cpp
@@ -46,7 +46,7 @@ using namespace Designer::Internal;
 SettingsPage::SettingsPage(QDesignerOptionsPageInterface *designerPage) :
     m_designerPage(designerPage), m_initialized(false)
 {
-    setId(m_designerPage->name());
+    setId(Core::Id::fromString(m_designerPage->name()));
     setDisplayName(m_designerPage->name());
     setCategory(Designer::Constants::SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Designer",
diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp
index 2196614c111fbf2b30c73e26417b043eec7afdc7..f15c0b54dfe9a6cbe168e8ef1538c4a3b550f17f 100644
--- a/src/plugins/fakevim/fakevimplugin.cpp
+++ b/src/plugins/fakevim/fakevimplugin.cpp
@@ -238,7 +238,7 @@ class FakeVimOptionPage : public IOptionsPage
 public:
     FakeVimOptionPage()
     {
-        setId(_(SETTINGS_ID));
+        setId(SETTINGS_ID);
         setDisplayName(tr("General"));
         setCategory(SETTINGS_CATEGORY);
         setDisplayCategory(tr("FakeVim"));
@@ -405,7 +405,7 @@ public:
     FakeVimExCommandsPage(FakeVimPluginPrivate *q)
         : m_q(q)
     {
-        setId(_(SETTINGS_EX_CMDS_ID));
+        setId(SETTINGS_EX_CMDS_ID);
         setDisplayName(tr("Ex Command Mapping"));
         setCategory(SETTINGS_CATEGORY);
         setDisplayCategory(tr("FakeVim"));
@@ -627,7 +627,7 @@ public:
     FakeVimUserCommandsPage(FakeVimPluginPrivate *q)
         : m_q(q)
     {
-        setId(_(SETTINGS_USER_CMDS_ID));
+        setId(SETTINGS_USER_CMDS_ID);
         setDisplayName(tr("User Command Mapping"));
         setCategory(SETTINGS_CATEGORY);
         setDisplayCategory(tr("FakeVim"));
diff --git a/src/plugins/git/gerrit/gerritoptionspage.cpp b/src/plugins/git/gerrit/gerritoptionspage.cpp
index 9941af2c9a8f5d8bb847b78fb1ee6f792af02a14..98b2c49ea90618860e0cc138f9d175696e78c499 100644
--- a/src/plugins/git/gerrit/gerritoptionspage.cpp
+++ b/src/plugins/git/gerrit/gerritoptionspage.cpp
@@ -47,7 +47,7 @@ GerritOptionsPage::GerritOptionsPage(const QSharedPointer<GerritParameters> &p,
     : VcsBase::VcsBaseOptionsPage(parent)
     , m_parameters(p)
 {
-    setId(QLatin1String("Gerrit"));
+    setId("Gerrit");
     setDisplayName(tr("Gerrit"));
 }
 
diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp
index cc1fca2943fc10c54e624a3e31f1f800aa4004bf..932c580b06fddf224e03f6b1977564184d7c14ca 100644
--- a/src/plugins/git/settingspage.cpp
+++ b/src/plugins/git/settingspage.cpp
@@ -119,7 +119,7 @@ QString SettingsPageWidget::searchKeywords() const
 SettingsPage::SettingsPage() :
     m_widget(0)
 {
-    setId(QLatin1String(VcsBase::Constants::VCS_ID_GIT));
+    setId(VcsBase::Constants::VCS_ID_GIT);
     setDisplayName(tr("Git"));
 }
 
diff --git a/src/plugins/git/settingspage.h b/src/plugins/git/settingspage.h
index 4c51a326fb4c14b5fae9407e4312b59282ba11e2..e33d95e8d49bc5d72a79be571a640a57cc76b97c 100644
--- a/src/plugins/git/settingspage.h
+++ b/src/plugins/git/settingspage.h
@@ -67,9 +67,6 @@ class SettingsPage : public VcsBase::VcsBaseOptionsPage
 public:
     SettingsPage();
 
-    QString id() const;
-    QString displayName() const;
-
     QWidget *createPage(QWidget *parent);
     void apply();
     void finish() { }
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp
index 95ce1a7bd1046dab2389ed3c7aeca7b38022c022..0968c7640ed418448bbeee2270413c8a6fc9a157 100644
--- a/src/plugins/help/docsettingspage.cpp
+++ b/src/plugins/help/docsettingspage.cpp
@@ -42,7 +42,7 @@ using namespace Help::Internal;
 
 DocSettingsPage::DocSettingsPage()
 {
-    setId(QLatin1String("B.Documentation"));
+    setId("B.Documentation");
     setDisplayName(tr("Documentation"));
     setCategory(Help::Constants::HELP_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY));
diff --git a/src/plugins/help/filtersettingspage.cpp b/src/plugins/help/filtersettingspage.cpp
index dc4e29d7785455831673436cf82b2e679add5f77..4e063a86359657645d96d3ec5eb515afba3aad1e 100644
--- a/src/plugins/help/filtersettingspage.cpp
+++ b/src/plugins/help/filtersettingspage.cpp
@@ -43,7 +43,7 @@ using namespace Help::Internal;
 
 FilterSettingsPage::FilterSettingsPage()
 {
-    setId(QLatin1String("D.Filters"));
+    setId("D.Filters");
     setDisplayName(tr("Filters"));
     setCategory(Help::Constants::HELP_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY));
diff --git a/src/plugins/help/generalsettingspage.cpp b/src/plugins/help/generalsettingspage.cpp
index 5f8a42bd805f826eea7c6c5de789ad0827092331..816ac72020f6e1ed77ba9648622978420903f23c 100644
--- a/src/plugins/help/generalsettingspage.cpp
+++ b/src/plugins/help/generalsettingspage.cpp
@@ -63,7 +63,7 @@ GeneralSettingsPage::GeneralSettingsPage()
     QWebSettings* webSettings = QWebSettings::globalSettings();
     m_font.setPointSize(webSettings->fontSize(QWebSettings::DefaultFontSize));
 #endif
-    setId(QLatin1String("A.General settings"));
+    setId("A.General settings");
     setDisplayName(tr("General"));
     setCategory(Help::Constants::HELP_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("Help", Help::Constants::HELP_TR_CATEGORY));
diff --git a/src/plugins/locator/settingspage.cpp b/src/plugins/locator/settingspage.cpp
index 4772d728d88f7c79ce8d366efc2cc5fd4d6bf7f7..073f5be162e10ffa8416dcfb63af4b67f1768e78 100644
--- a/src/plugins/locator/settingspage.cpp
+++ b/src/plugins/locator/settingspage.cpp
@@ -48,7 +48,7 @@ using namespace Locator::Internal;
 SettingsPage::SettingsPage(LocatorPlugin *plugin)
     : m_plugin(plugin), m_page(0)
 {
-    setId(QLatin1String(Constants::FILTER_OPTIONS_PAGE));
+    setId(Constants::FILTER_OPTIONS_PAGE);
     setDisplayName(QCoreApplication::translate("Locator", Locator::Constants::FILTER_OPTIONS_PAGE));
     setCategory(Core::Constants::SETTINGS_CATEGORY_CORE);
     setDisplayCategory(QCoreApplication::translate("Core", Core::Constants::SETTINGS_TR_CATEGORY_CORE));
diff --git a/src/plugins/macros/macrooptionspage.cpp b/src/plugins/macros/macrooptionspage.cpp
index 8fe4c4e8ae4b88982dc00c8f9a0ea815768f4590..04f3ea850779bbf8d711140123fed23e50952b83 100644
--- a/src/plugins/macros/macrooptionspage.cpp
+++ b/src/plugins/macros/macrooptionspage.cpp
@@ -46,7 +46,7 @@ using namespace Macros::Internal;
 MacroOptionsPage::MacroOptionsPage(QObject *parent)
     : Core::IOptionsPage(parent)
 {
-    setId(QLatin1String(Constants::M_OPTIONS_PAGE));
+    setId(Constants::M_OPTIONS_PAGE);
     setDisplayName(QCoreApplication::translate("Macros", Constants::M_OPTIONS_TR_PAGE));
     setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("TextEditor",
diff --git a/src/plugins/madde/maemosettingspages.cpp b/src/plugins/madde/maemosettingspages.cpp
index 12d742eff5116a7edd9d4b1aa4f54a3e1c7f8ef5..530a118f932884fb88cf57f8c08a86abd40b5626 100644
--- a/src/plugins/madde/maemosettingspages.cpp
+++ b/src/plugins/madde/maemosettingspages.cpp
@@ -92,7 +92,7 @@ private:
     Q_SLOT void showSettingsPage()
     {
         Core::ICore::showOptionsDialog(MaemoQemuSettingsPage::pageCategory(),
-            Core::Id(MaemoQemuSettingsPage::pageId()));
+            MaemoQemuSettingsPage::pageId());
         accept();
     }
 };
@@ -136,9 +136,9 @@ void MaemoQemuSettingsPage::showQemuCrashDialog()
     dlg.exec();
 }
 
-QString MaemoQemuSettingsPage::pageId()
+Core::Id MaemoQemuSettingsPage::pageId()
 {
-    return QLatin1String("ZZ.Qemu Settings");
+    return "ZZ.Qemu Settings";
 }
 
 Core::Id MaemoQemuSettingsPage::pageCategory()
diff --git a/src/plugins/madde/maemosettingspages.h b/src/plugins/madde/maemosettingspages.h
index a652a96ad920ac4bef80c2ab0dc78057e766e6d6..bfa6a27ce30f4ae8ad32c49b049186026e711a9e 100644
--- a/src/plugins/madde/maemosettingspages.h
+++ b/src/plugins/madde/maemosettingspages.h
@@ -50,7 +50,7 @@ public:
     void finish();
 
     static void showQemuCrashDialog();
-    static QString pageId();
+    static Core::Id pageId();
     static Core::Id pageCategory();
 
 private:
diff --git a/src/plugins/mercurial/optionspage.cpp b/src/plugins/mercurial/optionspage.cpp
index bf4d587148e6ef1f4ea0bc6c26c35285e37e5788..b05ab373ab1f8570c10a89430d9c82ba196f9c08 100644
--- a/src/plugins/mercurial/optionspage.cpp
+++ b/src/plugins/mercurial/optionspage.cpp
@@ -91,7 +91,7 @@ QString OptionsPageWidget::searchKeywords() const
 
 OptionsPage::OptionsPage()
 {
-    setId(QLatin1String(VcsBase::Constants::VCS_ID_MERCURIAL));
+    setId(VcsBase::Constants::VCS_ID_MERCURIAL);
     setDisplayName(tr("Mercurial"));
 }
 
diff --git a/src/plugins/mercurial/optionspage.h b/src/plugins/mercurial/optionspage.h
index 60fee43a1737569caf5c360f8edd027c224863cc..3213692b87546a8fbc98ca7f5c476733028b10c1 100644
--- a/src/plugins/mercurial/optionspage.h
+++ b/src/plugins/mercurial/optionspage.h
@@ -64,8 +64,6 @@ class OptionsPage : public VcsBase::VcsBaseOptionsPage
 
 public:
     OptionsPage();
-    QString id() const;
-    QString displayName() const;
 
     QWidget *createPage(QWidget *parent);
     void apply();
diff --git a/src/plugins/perforce/settingspage.cpp b/src/plugins/perforce/settingspage.cpp
index c3550e894c81df3f6a52263adbe3bbaf8ee5064a..a584b01cdafeb40daadfe5a1db2b146ad1bc7eaf 100644
--- a/src/plugins/perforce/settingspage.cpp
+++ b/src/plugins/perforce/settingspage.cpp
@@ -138,7 +138,7 @@ QString SettingsPageWidget::searchKeywords() const
 
 SettingsPage::SettingsPage()
 {
-    setId(QLatin1String(VcsBase::Constants::VCS_ID_PERFORCE));
+    setId(VcsBase::Constants::VCS_ID_PERFORCE);
     setDisplayName(tr("Perforce"));
 }
 
diff --git a/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp b/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp
index f6280a72eecf4e3b037578e8d43cafad73223061..80af84ef4c04ed30d7846edcbc4a35f661513d29 100644
--- a/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp
+++ b/src/plugins/projectexplorer/devicesupport/devicesettingspage.cpp
@@ -42,7 +42,7 @@ namespace Internal {
 DeviceSettingsPage::DeviceSettingsPage(QObject *parent)
     : Core::IOptionsPage(parent)
 {
-    setId(QLatin1String(Constants::DEVICE_SETTINGS_PAGE_ID));
+    setId(Constants::DEVICE_SETTINGS_PAGE_ID);
     setDisplayName(tr("Devices"));
     setCategory(Constants::DEVICE_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("ProjectExplorer", "Devices"));
diff --git a/src/plugins/projectexplorer/kitoptionspage.cpp b/src/plugins/projectexplorer/kitoptionspage.cpp
index 4e253ab998659f715d392952abacb9a7fe42794c..ac6c446cb5696905b9151173b46802882577e4c6 100644
--- a/src/plugins/projectexplorer/kitoptionspage.cpp
+++ b/src/plugins/projectexplorer/kitoptionspage.cpp
@@ -55,7 +55,7 @@ namespace ProjectExplorer {
 KitOptionsPage::KitOptionsPage() :
     m_model(0), m_selectionModel(0), m_currentWidget(0), m_toShow(0)
 {
-    setId(QLatin1String(Constants::KITS_SETTINGS_PAGE_ID));
+    setId(Constants::KITS_SETTINGS_PAGE_ID);
     setDisplayName(tr("Kits"));
     setCategory(Constants::PROJECTEXPLORER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("ProjectExplorer",
diff --git a/src/plugins/projectexplorer/projectexplorersettingspage.cpp b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
index 894fd3bbbeca8bc16533d6b74c3ee55f70021827..0408c2ae8206d0b3f0a8d22ab0806a33c5e3392a 100644
--- a/src/plugins/projectexplorer/projectexplorersettingspage.cpp
+++ b/src/plugins/projectexplorer/projectexplorersettingspage.cpp
@@ -175,7 +175,7 @@ QString ProjectExplorerSettingsWidget::searchKeywords() const
 // ------------------ ProjectExplorerSettingsPage
 ProjectExplorerSettingsPage::ProjectExplorerSettingsPage()
 {
-    setId(QLatin1String(Constants::PROJECTEXPLORER_SETTINGS_ID));
+    setId(Constants::PROJECTEXPLORER_SETTINGS_ID);
     setDisplayName(tr("General"));
     setCategory(Constants::PROJECTEXPLORER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("ProjectExplorer",
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp
index 991ad2c551b54a580a30ba046bf22047bfef20ad..914283ea276e19ab99c74d61707b2956a27c4f47 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.cpp
+++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp
@@ -445,7 +445,7 @@ ToolChainOptionsPage::ToolChainOptionsPage() :
     m_model(0), m_selectionModel(0), m_toolChainView(0), m_container(0),
     m_addButton(0), m_cloneButton(0), m_delButton(0)
 {
-    setId(QLatin1String(Constants::TOOLCHAIN_SETTINGS_PAGE_ID));
+    setId(Constants::TOOLCHAIN_SETTINGS_PAGE_ID);
     setDisplayName(tr("Compilers"));
     setCategory(Constants::PROJECTEXPLORER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("ProjectExplorer",
diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp
index 4e5e2f5d8d8d13c149d55cfd8da9cc7fe0e0b3ff..d103a80b375d966abaee1278300b6d07d8649da7 100644
--- a/src/plugins/qmldesigner/settingspage.cpp
+++ b/src/plugins/qmldesigner/settingspage.cpp
@@ -84,7 +84,7 @@ QString SettingsPageWidget::searchKeywords() const
 SettingsPage::SettingsPage() :
     m_widget(0)
 {
-    setId(QLatin1String("B.QmlDesigner"));
+    setId("B.QmlDesigner");
     setDisplayName(tr("Qt Quick Designer"));
     setCategory(QmlJSEditor::Constants::SETTINGS_CATEGORY_QML);
     setDisplayCategory(QCoreApplication::translate("QmlJSEditor",
diff --git a/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp b/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp
index 4acb89232d4f51b011337192bc92c821052b2683..246a3748dd704498b2b90400a67e5a9363a00438 100644
--- a/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp
+++ b/src/plugins/qmljseditor/quicktoolbarsettingspage.cpp
@@ -121,7 +121,7 @@ QuickToolBarSettings QuickToolBarSettings::get()
 QuickToolBarSettingsPage::QuickToolBarSettingsPage() :
     m_widget(0)
 {
-    setId(QLatin1String("C.QmlToolbar"));
+    setId("C.QmlToolbar");
     setDisplayName(tr("Qt Quick ToolBar"));
     setCategory(Constants::SETTINGS_CATEGORY_QML);
     setDisplayCategory(QCoreApplication::translate("QmlJSEditor",
diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
index 63ada182946911f573cabd189e87dddfc5c2bfcb..7c765e849ffbeff56f4987a614acaf5f0cb20517 100644
--- a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
+++ b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp
@@ -166,7 +166,7 @@ QmlJSCodeStyleSettingsPage::QmlJSCodeStyleSettingsPage(/*QSharedPointer<CppFileS
     Core::IOptionsPage(parent),
     m_pageTabPreferences(0)
 {
-    setId(QLatin1String(Constants::QML_JS_CODE_STYLE_SETTINGS_ID));
+    setId(Constants::QML_JS_CODE_STYLE_SETTINGS_ID);
     setDisplayName(QCoreApplication::translate("QmlJSTools", Constants::QML_JS_CODE_STYLE_SETTINGS_NAME));
     setCategory(QmlJSEditor::Constants::SETTINGS_CATEGORY_QML);
     setDisplayCategory(QCoreApplication::translate("QmlJSEditor", QmlJSEditor::Constants::SETTINGS_TR_CATEGORY_QML));
diff --git a/src/plugins/qnx/blackberrysettingspage.cpp b/src/plugins/qnx/blackberrysettingspage.cpp
index beb3bc14b01bdec64daa164c5ffefafa073cbf53..ab54bb0b9f0989caedbb2b8239af621cf747590b 100644
--- a/src/plugins/qnx/blackberrysettingspage.cpp
+++ b/src/plugins/qnx/blackberrysettingspage.cpp
@@ -43,7 +43,7 @@ namespace Internal {
 BlackBerrySettingsPage::BlackBerrySettingsPage(QObject *parent) :
     Core::IOptionsPage(parent)
 {
-    setId(QLatin1String(Constants::QNX_SETTINGS_ID));
+    setId(Constants::QNX_SETTINGS_ID);
     setDisplayName(tr("BlackBerry"));
     setCategory(ProjectExplorer::Constants::PROJECTEXPLORER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("BlackBerry",
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp
index 3203e298b23defe7c8049cc596042deeb1cf898b..b4eb8120be532f34d877b6dd1ccd69b4bcd416b5 100644
--- a/src/plugins/qtsupport/qtoptionspage.cpp
+++ b/src/plugins/qtsupport/qtoptionspage.cpp
@@ -71,7 +71,7 @@ using namespace Utils;
 QtOptionsPage::QtOptionsPage()
     : m_widget(0)
 {
-    setId(QLatin1String(Constants::QTVERSION_SETTINGS_PAGE_ID));
+    setId(Constants::QTVERSION_SETTINGS_PAGE_ID);
     setDisplayName(QCoreApplication::translate("Qt4ProjectManager", Constants::QTVERSION_SETTINGS_PAGE_NAME));
     setCategory(ProjectExplorer::Constants::PROJECTEXPLORER_SETTINGS_CATEGORY);
     setDisplayCategory(QCoreApplication::translate("ProjectExplorer",
diff --git a/src/plugins/subversion/settingspage.cpp b/src/plugins/subversion/settingspage.cpp
index 5207b22b4140ed212b3dcef41b8794de74885ced..4b6c6c6993af6351f4509130b84e7a6b18c5ef7d 100644
--- a/src/plugins/subversion/settingspage.cpp
+++ b/src/plugins/subversion/settingspage.cpp
@@ -103,7 +103,7 @@ QString SettingsPageWidget::searchKeywords() const
 SettingsPage::SettingsPage() :
     m_widget(0)
 {
-    setId(QLatin1String(VcsBase::Constants::VCS_ID_SUBVERSION));
+    setId(VcsBase::Constants::VCS_ID_SUBVERSION);
     setDisplayName(tr("Subversion"));
 }
 
diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h
index d57d95327e2ad475f672a4e79691b954cbe5a2b3..69d17ec270f31cdf7274a3262bd0974c7e6f7025 100644
--- a/src/plugins/texteditor/behaviorsettingspage.h
+++ b/src/plugins/texteditor/behaviorsettingspage.h
@@ -47,7 +47,7 @@ class CodeStylePool;
 class BehaviorSettingsPageParameters
 {
 public:
-    QString id;
+    Core::Id id;
     QString displayName;
     QString settingsPrefix;
 };
diff --git a/src/plugins/texteditor/displaysettingspage.h b/src/plugins/texteditor/displaysettingspage.h
index ac0185c2ed4596145d362d49df7c22e754c4201d..1cf5daa0311173bb6529a0f5189a9545facd8d90 100644
--- a/src/plugins/texteditor/displaysettingspage.h
+++ b/src/plugins/texteditor/displaysettingspage.h
@@ -41,7 +41,7 @@ class DisplaySettings;
 class DisplaySettingsPageParameters
 {
 public:
-    QString id;
+    Core::Id id;
     QString displayName;
     QString settingsPrefix;
 };
diff --git a/src/plugins/texteditor/fontsettingspage.cpp b/src/plugins/texteditor/fontsettingspage.cpp
index 69a02ba73dbc33cbc72374039c924977aec1c470..cbe3fec29c8159433b6d5a607fcbc66d4c2b46bb 100644
--- a/src/plugins/texteditor/fontsettingspage.cpp
+++ b/src/plugins/texteditor/fontsettingspage.cpp
@@ -117,13 +117,13 @@ class FontSettingsPagePrivate
 {
 public:
     FontSettingsPagePrivate(const TextEditor::FormatDescriptions &fd,
-                            const QString &id,
+                            Core::Id id,
                             const QString &displayName,
                             const QString &category);
     ~FontSettingsPagePrivate();
 
 public:
-    const QString m_id;
+    const Core::Id m_id;
     const QString m_displayName;
     const QString m_settingsGroup;
 
@@ -174,7 +174,7 @@ static QString createColorSchemeFileName(const QString &pattern)
 
 // ------- FontSettingsPagePrivate
 FontSettingsPagePrivate::FontSettingsPagePrivate(const TextEditor::FormatDescriptions &fd,
-                                                 const QString &id,
+                                                 Core::Id id,
                                                  const QString &displayName,
                                                  const QString &category) :
     m_id(id),
@@ -313,7 +313,7 @@ QColor FormatDescription::background() const
 
 //  ------------ FontSettingsPage
 FontSettingsPage::FontSettingsPage(const FormatDescriptions &fd,
-                                   const QString &id,
+                                   Core::Id id,
                                    QObject *parent) :
     TextEditorOptionsPage(parent),
     d_ptr(new FontSettingsPagePrivate(fd, id, tr("Font && Colors"), category().toString()))
diff --git a/src/plugins/texteditor/fontsettingspage.h b/src/plugins/texteditor/fontsettingspage.h
index b15357821c49ab98439f460d214ed85d7dc6d789..baff774a592d654bb858235ad3750ac63b1c9c63 100644
--- a/src/plugins/texteditor/fontsettingspage.h
+++ b/src/plugins/texteditor/fontsettingspage.h
@@ -88,9 +88,7 @@ class TEXTEDITOR_EXPORT FontSettingsPage : public TextEditorOptionsPage
     Q_OBJECT
 
 public:
-    FontSettingsPage(const FormatDescriptions &fd,
-                     const QString &id,
-                     QObject *parent = 0);
+    FontSettingsPage(const FormatDescriptions &fd, Core::Id id, QObject *parent = 0);
 
     ~FontSettingsPage();
 
diff --git a/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp b/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp
index d526bd8795cfba6664fdcc8895cd9a75994438ad..577bce58306104d6760a1d080bf538ac83574c31 100644
--- a/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp
+++ b/src/plugins/texteditor/generichighlighter/highlightersettingspage.cpp
@@ -43,11 +43,11 @@ using namespace Internal;
 
 struct HighlighterSettingsPage::HighlighterSettingsPagePrivate
 {
-    explicit HighlighterSettingsPagePrivate(const QString &id);
+    explicit HighlighterSettingsPagePrivate(Core::Id id);
     void ensureInitialized();
 
     bool m_initialized;
-    const QString m_id;
+    const Core::Id m_id;
     const QString m_displayName;
     const QString m_settingsPrefix;
 
@@ -59,7 +59,7 @@ struct HighlighterSettingsPage::HighlighterSettingsPagePrivate
 };
 
 HighlighterSettingsPage::HighlighterSettingsPagePrivate::
-HighlighterSettingsPagePrivate(const QString &id) :
+HighlighterSettingsPagePrivate(Core::Id id) :
     m_initialized(false),
     m_id(id),
     m_displayName(tr("Generic Highlighter")),
@@ -75,7 +75,7 @@ void HighlighterSettingsPage::HighlighterSettingsPagePrivate::ensureInitialized(
     m_settings.fromSettings(m_settingsPrefix, Core::ICore::settings());
 }
 
-HighlighterSettingsPage::HighlighterSettingsPage(const QString &id, QObject *parent) :
+HighlighterSettingsPage::HighlighterSettingsPage(Core::Id id, QObject *parent) :
     TextEditorOptionsPage(parent),
     m_requestMimeTypeRegistration(false),
     m_d(new HighlighterSettingsPagePrivate(id))
diff --git a/src/plugins/texteditor/generichighlighter/highlightersettingspage.h b/src/plugins/texteditor/generichighlighter/highlightersettingspage.h
index 682a6bcd8340bb1a9a0efb20212460664b1c1313..7f2c237f4314908aad44118af9eaef9ee6cfc96f 100644
--- a/src/plugins/texteditor/generichighlighter/highlightersettingspage.h
+++ b/src/plugins/texteditor/generichighlighter/highlightersettingspage.h
@@ -49,7 +49,7 @@ class HighlighterSettingsPage : public TextEditorOptionsPage
     Q_OBJECT
 
 public:
-    HighlighterSettingsPage(const QString &id, QObject *parent);
+    HighlighterSettingsPage(Core::Id id, QObject *parent);
     ~HighlighterSettingsPage();
 
     QWidget *createPage(QWidget *parent);
diff --git a/src/plugins/texteditor/snippets/snippetssettingspage.cpp b/src/plugins/texteditor/snippets/snippetssettingspage.cpp
index f8ad8cdf2ddec4ae7239ae6de1f324f09df39956..3d9f55fe58f5736c799f9ebaa5240286cdc12a40 100644
--- a/src/plugins/texteditor/snippets/snippetssettingspage.cpp
+++ b/src/plugins/texteditor/snippets/snippetssettingspage.cpp
@@ -268,10 +268,10 @@ class SnippetsSettingsPagePrivate : public QObject
 {
     Q_OBJECT
 public:
-    SnippetsSettingsPagePrivate(const QString &id);
+    SnippetsSettingsPagePrivate(Core::Id id);
     ~SnippetsSettingsPagePrivate() { delete m_model; }
 
-    const QString &id() const { return m_id; }
+    Core::Id id() const { return m_id; }
     const QString &displayName() const { return m_displayName; }
     bool isKeyword(const QString &s) const { return m_keywords.contains(s, Qt::CaseInsensitive); }
     void configureUi(QWidget *parent);
@@ -301,7 +301,7 @@ private:
     bool settingsChanged() const;
     void writeSettings();
 
-    const QString m_id;
+    const Core::Id m_id;
     const QString m_displayName;
     const QString m_settingsPrefix;
     SnippetsTableModel *m_model;
@@ -311,7 +311,7 @@ private:
     Ui::SnippetsSettingsPage m_ui;
 };
 
-SnippetsSettingsPagePrivate::SnippetsSettingsPagePrivate(const QString &id) :
+SnippetsSettingsPagePrivate::SnippetsSettingsPagePrivate(Core::Id id) :
     m_id(id),
     m_displayName(tr("Snippets")),
     m_settingsPrefix(QLatin1String("Text")),
@@ -557,7 +557,7 @@ void SnippetsSettingsPagePrivate::decorateEditors(const TextEditor::FontSettings
 }
 
 // SnippetsSettingsPage
-SnippetsSettingsPage::SnippetsSettingsPage(const QString &id, QObject *parent) :
+SnippetsSettingsPage::SnippetsSettingsPage(Core::Id id, QObject *parent) :
     TextEditorOptionsPage(parent),
     d(new SnippetsSettingsPagePrivate(id))
 {
diff --git a/src/plugins/texteditor/snippets/snippetssettingspage.h b/src/plugins/texteditor/snippets/snippetssettingspage.h
index 24667488d05f6f262cd65f97a4ede7c940d38cbc..c3398e1a7cf33fc7640afe627f49b35fe33f2dd8 100644
--- a/src/plugins/texteditor/snippets/snippetssettingspage.h
+++ b/src/plugins/texteditor/snippets/snippetssettingspage.h
@@ -42,7 +42,7 @@ class SnippetsSettingsPage : public TextEditorOptionsPage
     Q_OBJECT
 
 public:
-    SnippetsSettingsPage(const QString &id, QObject *parent);
+    SnippetsSettingsPage(Core::Id id, QObject *parent);
     ~SnippetsSettingsPage();
 
     bool matches(const QString &s) const;
diff --git a/src/plugins/texteditor/texteditorsettings.cpp b/src/plugins/texteditor/texteditorsettings.cpp
index e761795d35f77a92454c15de943a5ec6065d89ae..a4c506e706b4a4e7199928225fb6b55f92f35610 100644
--- a/src/plugins/texteditor/texteditorsettings.cpp
+++ b/src/plugins/texteditor/texteditorsettings.cpp
@@ -256,31 +256,31 @@ TextEditorSettings::TextEditorSettings(QObject *parent)
                                             "(in diff editor)."), Qt::blue));
 
     m_d->m_fontSettingsPage = new FontSettingsPage(formatDescr,
-                                                   QLatin1String(Constants::TEXT_EDITOR_FONT_SETTINGS),
+                                                   Constants::TEXT_EDITOR_FONT_SETTINGS,
                                                    this);
     ExtensionSystem::PluginManager::addObject(m_d->m_fontSettingsPage);
 
     // Add the GUI used to configure the tab, storage and interaction settings
     TextEditor::BehaviorSettingsPageParameters behaviorSettingsPageParameters;
-    behaviorSettingsPageParameters.id = QLatin1String(Constants::TEXT_EDITOR_BEHAVIOR_SETTINGS);
+    behaviorSettingsPageParameters.id = Constants::TEXT_EDITOR_BEHAVIOR_SETTINGS;
     behaviorSettingsPageParameters.displayName = tr("Behavior");
     behaviorSettingsPageParameters.settingsPrefix = QLatin1String("text");
     m_d->m_behaviorSettingsPage = new BehaviorSettingsPage(behaviorSettingsPageParameters, this);
     ExtensionSystem::PluginManager::addObject(m_d->m_behaviorSettingsPage);
 
     TextEditor::DisplaySettingsPageParameters displaySettingsPageParameters;
-    displaySettingsPageParameters.id = QLatin1String(Constants::TEXT_EDITOR_DISPLAY_SETTINGS),
+    displaySettingsPageParameters.id = Constants::TEXT_EDITOR_DISPLAY_SETTINGS;
     displaySettingsPageParameters.displayName = tr("Display");
     displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
     m_d->m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
     ExtensionSystem::PluginManager::addObject(m_d->m_displaySettingsPage);
 
     m_d->m_highlighterSettingsPage =
-        new HighlighterSettingsPage(QLatin1String(Constants::TEXT_EDITOR_HIGHLIGHTER_SETTINGS), this);
+        new HighlighterSettingsPage(Constants::TEXT_EDITOR_HIGHLIGHTER_SETTINGS, this);
     ExtensionSystem::PluginManager::addObject(m_d->m_highlighterSettingsPage);
 
     m_d->m_snippetsSettingsPage =
-        new SnippetsSettingsPage(QLatin1String(Constants::TEXT_EDITOR_SNIPPETS_SETTINGS), this);
+        new SnippetsSettingsPage(Constants::TEXT_EDITOR_SNIPPETS_SETTINGS, this);
     ExtensionSystem::PluginManager::addObject(m_d->m_snippetsSettingsPage);
 
     connect(m_d->m_fontSettingsPage, SIGNAL(changed(TextEditor::FontSettings)),
diff --git a/src/plugins/todo/optionspage.cpp b/src/plugins/todo/optionspage.cpp
index 5f5b433fb2cc0bab96805ae0ab3151931a383964..75d6a462bf191c347630bc45c28a1be4ef0cc69f 100644
--- a/src/plugins/todo/optionspage.cpp
+++ b/src/plugins/todo/optionspage.cpp
@@ -49,7 +49,7 @@ OptionsPage::OptionsPage(const Settings &settings, QObject *parent) :
 {
     setSettings(settings);
 
-    setId(QLatin1String("TodoSettings"));
+    setId("TodoSettings");
     setDisplayName(tr("To-Do"));
     setCategory("To-Do");
     setDisplayCategory(tr("To-Do"));
diff --git a/src/plugins/valgrind/valgrindsettings.cpp b/src/plugins/valgrind/valgrindsettings.cpp
index 97acb9bd22afb421d01bc904e1ab89aa05f5dd9a..7d66e2dbee155efb6493f813a55f593f664f07af 100644
--- a/src/plugins/valgrind/valgrindsettings.cpp
+++ b/src/plugins/valgrind/valgrindsettings.cpp
@@ -172,9 +172,9 @@ QString ValgrindBaseSettings::valgrindExecutable() const
     return m_valgrindExecutable;
 }
 
-QString ValgrindBaseSettings::id() const
+Core::Id ValgrindBaseSettings::id() const
 {
-    return QLatin1String("Analyzer.Valgrind.Settings");
+    return "Analyzer.Valgrind.Settings";
 }
 
 QString ValgrindBaseSettings::displayName() const
diff --git a/src/plugins/valgrind/valgrindsettings.h b/src/plugins/valgrind/valgrindsettings.h
index feb1881feadd32a9eaa68856e59e96a02ee4c342..b306dff5643c7108efd0d3946e288454b1a092fd 100644
--- a/src/plugins/valgrind/valgrindsettings.h
+++ b/src/plugins/valgrind/valgrindsettings.h
@@ -55,7 +55,7 @@ public:
     virtual QVariantMap defaults() const;
     virtual void fromMap(const QVariantMap &map);
 
-    virtual QString id() const;
+    virtual Core::Id id() const;
     virtual QString displayName() const;
 
 signals:
diff --git a/src/plugins/vcsbase/commonsettingspage.cpp b/src/plugins/vcsbase/commonsettingspage.cpp
index e47d198240d15871c3f1eb1e487bf6c6ff0a3fbd..6e6aea601327854c8145b23c1ed103cf3dad14da 100644
--- a/src/plugins/vcsbase/commonsettingspage.cpp
+++ b/src/plugins/vcsbase/commonsettingspage.cpp
@@ -109,7 +109,7 @@ CommonOptionsPage::CommonOptionsPage(QObject *parent) :
 {
     m_settings.fromSettings(Core::ICore::settings());
 
-    setId(QLatin1String(Constants::VCS_COMMON_SETTINGS_ID));
+    setId(Constants::VCS_COMMON_SETTINGS_ID);
     setDisplayName(QCoreApplication::translate("VcsBase", Constants::VCS_COMMON_SETTINGS_NAME));
 }