From ff0ac20a42236b37e3e7d5fcbbc8b329b9638de0 Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Fri, 10 Sep 2010 14:13:19 +0200
Subject: [PATCH] coreplugin: use Core::Id is some places

---
 src/plugins/bookmarks/bookmarksplugin.cpp     | 11 ++--
 .../actionmanager/actionmanager.cpp           | 14 ++---
 .../coreplugin/actionmanager/actionmanager.h  | 13 ++--
 .../actionmanager/actionmanager_p.h           | 14 ++---
 .../editormanager/editormanager.cpp           |  5 +-
 src/plugins/coreplugin/editortoolbar.cpp      |  1 +
 src/plugins/coreplugin/icore.h                |  1 +
 src/plugins/coreplugin/mainwindow.cpp         |  2 +-
 src/plugins/coreplugin/navigationwidget.cpp   |  5 +-
 src/plugins/coreplugin/outputpane.cpp         |  3 +-
 src/plugins/cpaster/cpasterplugin.cpp         |  2 +-
 src/plugins/cppeditor/cppplugin.cpp           |  6 +-
 src/plugins/cvs/cvsplugin.cpp                 |  3 +-
 src/plugins/debugger/debuggeruiswitcher.cpp   | 18 +++---
 src/plugins/designer/formeditorw.cpp          |  6 +-
 src/plugins/find/findplugin.cpp               |  7 ++-
 src/plugins/find/findtoolbar.cpp              |  3 +-
 src/plugins/find/searchresultwindow.cpp       |  3 +-
 src/plugins/git/gitplugin.cpp                 | 16 ++---
 src/plugins/help/helpplugin.cpp               | 37 ++++++-----
 .../imageviewer/imagevieweractionhandler.cpp  |  1 +
 src/plugins/locator/locatorplugin.cpp         |  5 +-
 src/plugins/mercurial/mercurialplugin.cpp     | 62 +++++++++----------
 src/plugins/mercurial/mercurialplugin.h       |  3 +-
 src/plugins/perforce/perforceplugin.cpp       |  2 +-
 .../projectexplorer/projectexplorer.cpp       | 18 +++---
 src/plugins/subversion/subversionplugin.cpp   |  2 +-
 src/plugins/texteditor/texteditorplugin.cpp   |  2 +-
 28 files changed, 136 insertions(+), 129 deletions(-)

diff --git a/src/plugins/bookmarks/bookmarksplugin.cpp b/src/plugins/bookmarks/bookmarksplugin.cpp
index f889ae2b81e..975e573d30b 100644
--- a/src/plugins/bookmarks/bookmarksplugin.cpp
+++ b/src/plugins/bookmarks/bookmarksplugin.cpp
@@ -71,11 +71,8 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *)
     Core::Context textcontext(TextEditor::Constants::C_TEXTEDITOR);
     Core::Context globalcontext(Core::Constants::C_GLOBAL);
 
-    Core::ActionContainer *mtools =
-        am->actionContainer(Core::Constants::M_TOOLS);
-
-    Core::ActionContainer *mbm =
-        am->createMenu(QLatin1String(BOOKMARKS_MENU));
+    Core::ActionContainer *mtools = am->actionContainer(Core::Constants::M_TOOLS);
+    Core::ActionContainer *mbm = am->createMenu(Core::Id(BOOKMARKS_MENU));
     mbm->menu()->setTitle(tr("&Bookmarks"));
     mtools->addMenu(mbm);
 
@@ -92,7 +89,7 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *)
 
     QAction *sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("Bookmarks.Sep.Toggle"), textcontext);
+    cmd = am->registerAction(sep, Core::Id("Bookmarks.Sep.Toggle"), textcontext);
     mbm->addAction(cmd);
 
     //Previous
@@ -117,7 +114,7 @@ bool BookmarksPlugin::initialize(const QStringList & /*arguments*/, QString *)
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("Bookmarks.Sep.DirNavigation"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("Bookmarks.Sep.DirNavigation"), globalcontext);
     mbm->addAction(cmd);
 
     //Previous Doc
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.cpp b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
index 5944876d3bf..993555d20dd 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager.cpp
+++ b/src/plugins/coreplugin/actionmanager/actionmanager.cpp
@@ -294,7 +294,7 @@ bool ActionManagerPrivate::hasContext(const Context &context) const
     return false;
 }
 
-ActionContainer *ActionManagerPrivate::createMenu(const QString &id)
+ActionContainer *ActionManagerPrivate::createMenu(const Id &id)
 {
     const int uid = UniqueIDManager::instance()->uniqueIdentifier(id);
     const IdContainerMap::const_iterator it = m_idContainerMap.constFind(uid);
@@ -312,7 +312,7 @@ ActionContainer *ActionManagerPrivate::createMenu(const QString &id)
     return mc;
 }
 
-ActionContainer *ActionManagerPrivate::createMenuBar(const QString &id)
+ActionContainer *ActionManagerPrivate::createMenuBar(const Id &id)
 {
     const int uid = UniqueIDManager::instance()->uniqueIdentifier(id);
     const IdContainerMap::const_iterator it = m_idContainerMap.constFind(uid);
@@ -330,7 +330,7 @@ ActionContainer *ActionManagerPrivate::createMenuBar(const QString &id)
     return mbc;
 }
 
-Command *ActionManagerPrivate::registerAction(QAction *action, const QString &id, const Context &context)
+Command *ActionManagerPrivate::registerAction(QAction *action, const Id &id, const Context &context)
 {
     Action *a = 0;
     Command *c = registerOverridableAction(action, id, false);
@@ -340,7 +340,7 @@ Command *ActionManagerPrivate::registerAction(QAction *action, const QString &id
     return a;
 }
 
-Command *ActionManagerPrivate::registerOverridableAction(QAction *action, const QString &id, bool checkUnique)
+Command *ActionManagerPrivate::registerOverridableAction(QAction *action, const Id &id, bool checkUnique)
 {
     Action *a = 0;
     const int uid = UniqueIDManager::instance()->uniqueIdentifier(id);
@@ -386,7 +386,7 @@ Command *ActionManagerPrivate::registerOverridableAction(QAction *action, const
     return a;
 }
 
-Command *ActionManagerPrivate::registerShortcut(QShortcut *shortcut, const QString &id, const Context &context)
+Command *ActionManagerPrivate::registerShortcut(QShortcut *shortcut, const Id &id, const Context &context)
 {
     Shortcut *sc = 0;
     int uid = UniqueIDManager::instance()->uniqueIdentifier(id);
@@ -423,7 +423,7 @@ Command *ActionManagerPrivate::registerShortcut(QShortcut *shortcut, const QStri
     return sc;
 }
 
-Command *ActionManagerPrivate::command(const QString &id) const
+Command *ActionManagerPrivate::command(const Id &id) const
 {
     const int uid = UniqueIDManager::instance()->uniqueIdentifier(id);
     const IdCmdMap::const_iterator it = m_idCmdMap.constFind(uid);
@@ -435,7 +435,7 @@ Command *ActionManagerPrivate::command(const QString &id) const
     return it.value();
 }
 
-ActionContainer *ActionManagerPrivate::actionContainer(const QString &id) const
+ActionContainer *ActionManagerPrivate::actionContainer(const Id &id) const
 {
     const int uid = UniqueIDManager::instance()->uniqueIdentifier(id);
     const IdContainerMap::const_iterator it = m_idContainerMap.constFind(uid);
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager.h b/src/plugins/coreplugin/actionmanager/actionmanager.h
index 05f4f782e8e..58f83160b02 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager.h
+++ b/src/plugins/coreplugin/actionmanager/actionmanager.h
@@ -46,6 +46,7 @@ namespace Core {
 class ActionContainer;
 class Command;
 class Context;
+class Id;
 
 class CORE_EXPORT ActionManager : public QObject
 {
@@ -54,14 +55,14 @@ public:
     ActionManager(QObject *parent = 0) : QObject(parent) {}
     virtual ~ActionManager() {}
 
-    virtual ActionContainer *createMenu(const QString &id) = 0;
-    virtual ActionContainer *createMenuBar(const QString &id) = 0;
+    virtual ActionContainer *createMenu(const Id &id) = 0;
+    virtual ActionContainer *createMenuBar(const Id &id) = 0;
 
-    virtual Command *registerAction(QAction *action, const QString &id, const Context &context) = 0;
-    virtual Command *registerShortcut(QShortcut *shortcut, const QString &id, const Context &context) = 0;
+    virtual Command *registerAction(QAction *action, const Id &id, const Context &context) = 0;
+    virtual Command *registerShortcut(QShortcut *shortcut, const Id &id, const Context &context) = 0;
 
-    virtual Command *command(const QString &id) const = 0;
-    virtual ActionContainer *actionContainer(const QString &id) const = 0;
+    virtual Command *command(const Id &id) const = 0;
+    virtual ActionContainer *actionContainer(const Id &id) const = 0;
 
     virtual QList<Command *> commands() const = 0;
 };
diff --git a/src/plugins/coreplugin/actionmanager/actionmanager_p.h b/src/plugins/coreplugin/actionmanager/actionmanager_p.h
index 41f746ba81f..4d3e3c99100 100644
--- a/src/plugins/coreplugin/actionmanager/actionmanager_p.h
+++ b/src/plugins/coreplugin/actionmanager/actionmanager_p.h
@@ -82,20 +82,20 @@ public:
     void initialize();
 
     //ActionManager Interface
-    ActionContainer *createMenu(const QString &id);
-    ActionContainer *createMenuBar(const QString &id);
+    ActionContainer *createMenu(const Id &id);
+    ActionContainer *createMenuBar(const Id &id);
 
-    Command *registerAction(QAction *action, const QString &id,
+    Command *registerAction(QAction *action, const Id &id,
         const Context &context);
-    Command *registerShortcut(QShortcut *shortcut, const QString &id,
+    Command *registerShortcut(QShortcut *shortcut, const Id &id,
         const Context &context);
 
-    Core::Command *command(const QString &id) const;
-    Core::ActionContainer *actionContainer(const QString &id) const;
+    Core::Command *command(const Id &id) const;
+    Core::ActionContainer *actionContainer(const Id &id) const;
 
 private:
     bool hasContext(const Context &context) const;
-    Command *registerOverridableAction(QAction *action, const QString &id,
+    Command *registerOverridableAction(QAction *action, const Id &id,
         bool checkUnique);
 
     static ActionManagerPrivate *m_instance;
diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp
index 7141bbf72b5..1b701a35388 100644
--- a/src/plugins/coreplugin/editormanager/editormanager.cpp
+++ b/src/plugins/coreplugin/editormanager/editormanager.cpp
@@ -52,6 +52,7 @@
 #include <coreplugin/imode.h>
 #include <coreplugin/settingsdatabase.h>
 #include <coreplugin/variablemanager.h>
+#include <coreplugin/uniqueidmanager.h>
 
 #include <extensionsystem/pluginmanager.h>
 
@@ -295,12 +296,12 @@ EditorManager::EditorManager(ICore *core, QWidget *parent) :
     // Window menu separators
     QAction *tmpaction = new QAction(this);
     tmpaction->setSeparator(true);
-    cmd = am->registerAction(tmpaction, QLatin1String("QtCreator.Window.Sep.Split"), editManagerContext);
+    cmd = am->registerAction(tmpaction, "QtCreator.Window.Sep.Split", editManagerContext);
     mwindow->addAction(cmd, Constants::G_WINDOW_SPLIT);
 
     tmpaction = new QAction(this);
     tmpaction->setSeparator(true);
-    cmd = am->registerAction(tmpaction, QLatin1String("QtCreator.Window.Sep.Navigate"), editManagerContext);
+    cmd = am->registerAction(tmpaction, "QtCreator.Window.Sep.Navigate", editManagerContext);
     mwindow->addAction(cmd, Constants::G_WINDOW_NAVIGATE);
 
     // Close Action
diff --git a/src/plugins/coreplugin/editortoolbar.cpp b/src/plugins/coreplugin/editortoolbar.cpp
index 10caf248e42..09b57296dde 100644
--- a/src/plugins/coreplugin/editortoolbar.cpp
+++ b/src/plugins/coreplugin/editortoolbar.cpp
@@ -34,6 +34,7 @@
 #include <coreplugin/icore.h>
 #include <coreplugin/minisplitter.h>
 #include <coreplugin/sidebar.h>
+#include <coreplugin/uniqueidmanager.h>
 
 #include <coreplugin/editormanager/editorview.h>
 #include <coreplugin/editormanager/editormanager.h>
diff --git a/src/plugins/coreplugin/icore.h b/src/plugins/coreplugin/icore.h
index d1d4ce1668a..d313e599c44 100644
--- a/src/plugins/coreplugin/icore.h
+++ b/src/plugins/coreplugin/icore.h
@@ -32,6 +32,7 @@
 
 #include "core_global.h"
 #include "dialogs/iwizard.h"
+#include "uniqueidmanager.h"
 
 #include <QtCore/QObject>
 #include <QtCore/QSettings>
diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp
index c6c038efcff..d8e2132936f 100644
--- a/src/plugins/coreplugin/mainwindow.cpp
+++ b/src/plugins/coreplugin/mainwindow.cpp
@@ -779,7 +779,7 @@ void MainWindow::registerDefaultActions()
 #ifndef Q_WS_MAC // doesn't have the "About" actions in the Help menu
     tmpaction = new QAction(this);
     tmpaction->setSeparator(true);
-    cmd = am->registerAction(tmpaction, QLatin1String("QtCreator.Help.Sep.About"), globalContext);
+    cmd = am->registerAction(tmpaction, "QtCreator.Help.Sep.About", globalContext);
     mhelp->addAction(cmd, Constants::G_HELP_ABOUT);
 #endif
 }
diff --git a/src/plugins/coreplugin/navigationwidget.cpp b/src/plugins/coreplugin/navigationwidget.cpp
index 4294419f9ba..e7f7c1a9cd8 100644
--- a/src/plugins/coreplugin/navigationwidget.cpp
+++ b/src/plugins/coreplugin/navigationwidget.cpp
@@ -36,6 +36,7 @@
 #include "modemanager.h"
 #include "actionmanager/actionmanager.h"
 #include "actionmanager/command.h"
+#include "uniqueidmanager.h"
 
 #include <extensionsystem/pluginmanager.h>
 
@@ -173,8 +174,8 @@ void NavigationWidget::setFactories(const QList<INavigationWidgetFactory *> fact
         connect(shortcut, SIGNAL(activated()), this, SLOT(activateSubWidget()));
         m_shortcutMap.insert(shortcut, id);
 
-        Core::Command *cmd = am->registerShortcut(shortcut,
-            QLatin1String("QtCreator.Sidebar.") + id, navicontext);
+        Command *cmd = am->registerShortcut(shortcut,
+            Id(QLatin1String("QtCreator.Sidebar.") + id), navicontext);
         cmd->setDefaultKeySequence(factory->activationSequence());
         m_commandMap.insert(id, cmd);
 
diff --git a/src/plugins/coreplugin/outputpane.cpp b/src/plugins/coreplugin/outputpane.cpp
index 2d180561b97..12d54b6c9ab 100644
--- a/src/plugins/coreplugin/outputpane.cpp
+++ b/src/plugins/coreplugin/outputpane.cpp
@@ -40,6 +40,7 @@
 #include <coreplugin/editormanager/editormanager.h>
 #include <coreplugin/findplaceholder.h>
 #include <coreplugin/editormanager/ieditor.h>
+#include <coreplugin/uniqueidmanager.h>
 
 #include <extensionsystem/pluginmanager.h>
 
@@ -317,7 +318,7 @@ void OutputPaneManager::init()
 
     QAction *sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("Coreplugin.OutputPane.Sep"), globalcontext);
+    cmd = am->registerAction(sep, "Coreplugin.OutputPane.Sep", globalcontext);
     mpanes->addAction(cmd, "Coreplugin.OutputPane.ActionsGroup");
 
     QList<IOutputPane*> panes = ExtensionSystem::PluginManager::instance()
diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp
index 6c6591a2d4d..492d91f3848 100644
--- a/src/plugins/cpaster/cpasterplugin.cpp
+++ b/src/plugins/cpaster/cpasterplugin.cpp
@@ -114,7 +114,7 @@ bool CodepasterPlugin::initialize(const QStringList &arguments, QString *error_m
         actionManager->actionContainer(Core::Constants::M_TOOLS);
 
     Core::ActionContainer *cpContainer =
-        actionManager->createMenu(QLatin1String("CodePaster"));
+        actionManager->createMenu(Core::Id("CodePaster"));
     cpContainer->menu()->setTitle(tr("&Code Pasting"));
     toolsContainer->addMenu(cpContainer);
 
diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp
index 858d2b7606d..db44d239e77 100644
--- a/src/plugins/cppeditor/cppplugin.cpp
+++ b/src/plugins/cppeditor/cppplugin.cpp
@@ -132,7 +132,7 @@ Core::Command *createSeparator(Core::ActionManager *am,
 {
     QAction *separator = new QAction(parent);
     separator->setSeparator(true);
-    return am->registerAction(separator, QLatin1String(id), context);
+    return am->registerAction(separator, Core::Id(id), context);
 }
 
 CppPlugin *CppPlugin::m_instance = 0;
@@ -242,7 +242,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess
     Core::ActionContainer *contextMenu= am->createMenu(CppEditor::Constants::M_CONTEXT);
 
     Core::Command *cmd;
-    Core::ActionContainer *cppToolsMenu = am->actionContainer(QLatin1String(CppTools::Constants::M_TOOLS_CPP));
+    Core::ActionContainer *cppToolsMenu = am->actionContainer(Core::Id(CppTools::Constants::M_TOOLS_CPP));
 
     QAction *jumpToDefinition = new QAction(tr("Follow Symbol Under Cursor"), this);
     cmd = am->registerAction(jumpToDefinition,
@@ -288,7 +288,7 @@ bool CppPlugin::initialize(const QStringList & /*arguments*/, QString *errorMess
     Core::Context globalContext(Core::Constants::C_GLOBAL);
     cppToolsMenu->addAction(createSeparator(am, this, globalContext, CppEditor::Constants::SEPARATOR2));
     m_updateCodeModelAction = new QAction(tr("Update Code Model"), this);
-    cmd = am->registerAction(m_updateCodeModelAction, QLatin1String(Constants::UPDATE_CODEMODEL), globalContext);
+    cmd = am->registerAction(m_updateCodeModelAction, Core::Id(Constants::UPDATE_CODEMODEL), globalContext);
     CppTools::CppModelManagerInterface *cppModelManager = CppTools::CppModelManagerInterface::instance();
     connect(m_updateCodeModelAction, SIGNAL(triggered()), cppModelManager, SLOT(updateModifiedSourceFiles()));
     cppToolsMenu->addAction(cmd);
diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp
index a7a1b273be8..e20b3339efe 100644
--- a/src/plugins/cvs/cvsplugin.cpp
+++ b/src/plugins/cvs/cvsplugin.cpp
@@ -271,8 +271,7 @@ bool CVSPlugin::initialize(const QStringList & /*arguments */, QString *errorMes
     Core::ActionManager *ami = core->actionManager();
     Core::ActionContainer *toolsContainer = ami->actionContainer(M_TOOLS);
 
-    Core::ActionContainer *cvsMenu =
-        ami->createMenu(QLatin1String(CMD_ID_CVS_MENU));
+    Core::ActionContainer *cvsMenu = ami->createMenu(Core::Id(CMD_ID_CVS_MENU));
     cvsMenu->menu()->setTitle(tr("&CVS"));
     toolsContainer->addMenu(cvsMenu);
     m_menuAction = cvsMenu->menu()->menuAction();
diff --git a/src/plugins/debugger/debuggeruiswitcher.cpp b/src/plugins/debugger/debuggeruiswitcher.cpp
index 502d39dc790..421244d8f0f 100644
--- a/src/plugins/debugger/debuggeruiswitcher.cpp
+++ b/src/plugins/debugger/debuggeruiswitcher.cpp
@@ -182,7 +182,7 @@ DebuggerUISwitcher::DebuggerUISwitcher(BaseMode *mode, QObject* parent)
         SLOT(updateDockWidgetSettings()));
 
     d->m_debugMenu = am->actionContainer(ProjectExplorer::Constants::M_DEBUG);
-    d->m_viewsMenu = am->actionContainer(QLatin1String(Core::Constants::M_WINDOW_VIEWS));
+    d->m_viewsMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
     QTC_ASSERT(d->m_viewsMenu, return)
     d->m_debuggerLanguageMenu = am->createMenu(Constants::M_DEBUG_DEBUGGING_LANGUAGES);
 
@@ -355,20 +355,20 @@ void DebuggerUISwitcher::createViewsMenuItems()
     // Add menu items
     Command *cmd = 0;
     cmd = am->registerAction(d->m_openMemoryEditorAction,
-        QLatin1String("Debugger.Views.OpenMemoryEditor"),
-            Context(Constants::C_DEBUGMODE));
+        Core::Id("Debugger.Views.OpenMemoryEditor"),
+        Core::Context(Constants::C_DEBUGMODE));
     d->m_viewsMenu->addAction(cmd);
     cmd = am->registerAction(d->m_mainWindow->menuSeparator1(),
-        QLatin1String("Debugger.Views.Separator1"), globalcontext);
+        Core::Id("Debugger.Views.Separator1"), globalcontext);
     d->m_viewsMenu->addAction(cmd);
     cmd = am->registerAction(d->m_mainWindow->toggleLockedAction(),
-        QLatin1String("Debugger.Views.ToggleLocked"), globalcontext);
+        Core::Id("Debugger.Views.ToggleLocked"), globalcontext);
     d->m_viewsMenu->addAction(cmd);
     cmd = am->registerAction(d->m_mainWindow->menuSeparator2(),
-        QLatin1String("Debugger.Views.Separator2"), globalcontext);
+        Core::Id("Debugger.Views.Separator2"), globalcontext);
     d->m_viewsMenu->addAction(cmd);
     cmd = am->registerAction(d->m_mainWindow->resetLayoutAction(),
-        QLatin1String("Debugger.Views.ResetSimple"), globalcontext);
+        Core::Id("Debugger.Views.ResetSimple"), globalcontext);
     d->m_viewsMenu->addAction(cmd);
 }
 
@@ -394,7 +394,7 @@ void DebuggerUISwitcher::addLanguage(const DebuggerLanguage &languageId,
     debuggableLang->setText(languageName);
     d->m_languageActionGroup->addAction(debuggableLang);
     Command *activeDebugLanguageCmd = am->registerAction(debuggableLang,
-                         "Debugger.DebugLanguage." + languageName,
+                         QString("Debugger.DebugLanguage." + languageName),
                           Context(Core::Constants::C_GLOBAL));
     d->m_debuggerLanguageMenu->addAction(activeDebugLanguageCmd);
 
@@ -610,7 +610,7 @@ QDockWidget *DebuggerUISwitcher::createDockWidget(const DebuggerLanguage &langua
     ActionManager *am = ICore::instance()->actionManager();
     QAction *toggleViewAction = dockWidget->toggleViewAction();
     Command *cmd = am->registerAction(toggleViewAction,
-                         "Debugger." + dockWidget->objectName(), globalContext);
+                         QString("Debugger." + dockWidget->objectName()), globalContext);
     cmd->setAttribute(Command::CA_Hide);
     d->m_viewsMenu->addAction(cmd);
 
diff --git a/src/plugins/designer/formeditorw.cpp b/src/plugins/designer/formeditorw.cpp
index 92bceffe507..348bb8b5404 100644
--- a/src/plugins/designer/formeditorw.cpp
+++ b/src/plugins/designer/formeditorw.cpp
@@ -239,7 +239,7 @@ void FormEditorW::setupViewActions()
 {
     // Populate "View" menu of form editor menu
     Core::ActionManager *am = m_core->actionManager();
-    Core::ActionContainer *viewMenu = am->actionContainer(QLatin1String(Core::Constants::M_WINDOW_VIEWS));
+    Core::ActionContainer *viewMenu = am->actionContainer(Core::Id(Core::Constants::M_WINDOW_VIEWS));
     QTC_ASSERT(viewMenu, return)
 
     addDockViewAction(am, viewMenu, WidgetBoxSubWindow, m_contexts,
@@ -441,7 +441,7 @@ void FormEditorW::setupActions()
     //'delete' action. Do not set a shortcut as Designer handles
     // the 'Delete' key by event filter. Setting a shortcut triggers
     // buggy behaviour on Mac (Pressing Delete in QLineEdit removing the widget).
-    command = am->registerAction(m_fwm->actionDelete(), QLatin1String("FormEditor.Edit.Delete"), m_contexts);
+    command = am->registerAction(m_fwm->actionDelete(), Core::Id("FormEditor.Edit.Delete"), m_contexts);
     bindShortcut(command, m_fwm->actionDelete());
     command->setAttribute(Core::Command::CA_Hide);
     medit->addAction(command, Core::Constants::G_EDIT_COPYPASTE);
@@ -452,7 +452,7 @@ void FormEditorW::setupActions()
 
     m_modeActionSeparator = new QAction(this);
     m_modeActionSeparator->setSeparator(true);
-    command = am->registerAction(m_modeActionSeparator, QLatin1String("FormEditor.Sep.ModeActions"), m_contexts);
+    command = am->registerAction(m_modeActionSeparator, Core::Id("FormEditor.Sep.ModeActions"), m_contexts);
     medit->addAction(command, Core::Constants::G_EDIT_OTHER);
 
     m_toolActionIds.push_back(QLatin1String("FormEditor.WidgetEditor"));
diff --git a/src/plugins/find/findplugin.cpp b/src/plugins/find/findplugin.cpp
index 4d6d5dc789a..e5150f8d1ab 100644
--- a/src/plugins/find/findplugin.cpp
+++ b/src/plugins/find/findplugin.cpp
@@ -42,6 +42,7 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/icontext.h>
+#include <coreplugin/uniqueidmanager.h>
 
 #include <extensionsystem/pluginmanager.h>
 
@@ -198,11 +199,11 @@ void FindPlugin::setupMenu()
     QAction *separator;
     separator = new QAction(this);
     separator->setSeparator(true);
-    cmd = am->registerAction(separator, QLatin1String("Find.Sep.Flags"), globalcontext);
+    cmd = am->registerAction(separator, "Find.Sep.Flags", globalcontext);
     mfind->addAction(cmd, Constants::G_FIND_FLAGS);
     separator = new QAction(this);
     separator->setSeparator(true);
-    cmd = am->registerAction(separator, QLatin1String("Find.Sep.Actions"), globalcontext);
+    cmd = am->registerAction(separator, "Find.Sep.Actions", globalcontext);
     mfind->addAction(cmd, Constants::G_FIND_ACTIONS);
 
     Core::ActionContainer *mfindadvanced = am->createMenu(Constants::M_FIND_ADVANCED);
@@ -234,7 +235,7 @@ void FindPlugin::setupFilterMenuItems()
             haveEnabledFilters = true;
         action->setEnabled(isEnabled);
         action->setData(qVariantFromValue(filter));
-        cmd = am->registerAction(action, QLatin1String("FindFilter.")+filter->id(), globalcontext);
+        cmd = am->registerAction(action, QString(QLatin1String("FindFilter.")+filter->id()), globalcontext);
         cmd->setDefaultKeySequence(filter->defaultShortcut());
         mfindadvanced->addAction(cmd);
         d->m_filterActions.insert(filter, action);
diff --git a/src/plugins/find/findtoolbar.cpp b/src/plugins/find/findtoolbar.cpp
index f12506f2e95..929b8c3b05c 100644
--- a/src/plugins/find/findtoolbar.cpp
+++ b/src/plugins/find/findtoolbar.cpp
@@ -38,6 +38,7 @@
 #include <coreplugin/actionmanager/actioncontainer.h>
 #include <coreplugin/actionmanager/command.h>
 #include <coreplugin/findplaceholder.h>
+#include <coreplugin/uniqueidmanager.h>
 
 #include <extensionsystem/pluginmanager.h>
 
@@ -151,7 +152,7 @@ FindToolBar::FindToolBar(FindPlugin *plugin, CurrentDocumentFind *currentDocumen
 
     if (QApplication::clipboard()->supportsFindBuffer()) {
         m_enterFindStringAction = new QAction(tr("Enter Find String"), this);
-        cmd = am->registerAction(m_enterFindStringAction, QLatin1String("Find.EnterFindString"), globalcontext);
+        cmd = am->registerAction(m_enterFindStringAction, "Find.EnterFindString", globalcontext);
         cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+E")));
         mfind->addAction(cmd, Constants::G_FIND_ACTIONS);
         connect(m_enterFindStringAction, SIGNAL(triggered()), this, SLOT(putSelectionToFindClipboard()));
diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp
index 2dd2cd6228b..9caaf88dc8a 100644
--- a/src/plugins/find/searchresultwindow.cpp
+++ b/src/plugins/find/searchresultwindow.cpp
@@ -39,6 +39,7 @@
 #include <coreplugin/actionmanager/command.h>
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/icontext.h>
+#include <coreplugin/uniqueidmanager.h>
 #include <utils/qtcassert.h>
 
 #include <QtCore/QFile>
@@ -325,7 +326,7 @@ SearchResultWindow::SearchResultWindow() : d(new SearchResultWindowPrivate)
     d->m_expandCollapseAction->setCheckable(true);
     d->m_expandCollapseAction->setIcon(QIcon(QLatin1String(":/find/images/expand.png")));
     Core::Command *cmd = Core::ICore::instance()->actionManager()->registerAction(
-            d->m_expandCollapseAction, QLatin1String("Find.ExpandAll"),
+            d->m_expandCollapseAction, "Find.ExpandAll",
             Core::Context(Core::Constants::C_GLOBAL));
     d->m_expandCollapseButton->setDefaultAction(cmd->action());
 
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index bf881a97292..4d768308fea 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -174,7 +174,7 @@ static const VCSBase::VCSBaseSubmitEditorParameters submitParameters = {
 
 static Core::Command *createSeparator(Core::ActionManager *am,
                                        const Core::Context &context,
-                                       const QString &id,
+                                       const Core::Id &id,
                                        QObject *parent)
 {
     QAction *a = new QAction(parent);
@@ -356,7 +356,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
                                tr("Unstage File from Commit"), tr("Unstage \"%1\" from Commit"),
                                QLatin1String("Git.Unstage"), globalcontext, true, SLOT(unstageFile()));
 
-    gitContainer->addAction(createSeparator(actionManager, globalcontext, QLatin1String("Git.Sep.Project"), this));
+    gitContainer->addAction(createSeparator(actionManager, globalcontext, Core::Id("Git.Sep.Project"), this));
 
     parameterActionCommand
             = createProjectAction(actionManager, gitContainer,
@@ -379,7 +379,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
                                       QLatin1String("Git.CleanProject"), globalcontext,
                                       true, SLOT(cleanProject()));
 
-    gitContainer->addAction(createSeparator(actionManager, globalcontext, QLatin1String("Git.Sep.Repository"), this));
+    gitContainer->addAction(createSeparator(actionManager, globalcontext, Core::Id("Git.Sep.Repository"), this));
 
     createRepositoryAction(actionManager, gitContainer,
                            tr("Diff Repository"), QLatin1String("Git.DiffRepository"),
@@ -424,7 +424,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
                            tr("Launch gitk"), QLatin1String("Git.LaunchGitK"),
                            globalcontext, true, &GitClient::launchGitK);
 
-    gitContainer->addAction(createSeparator(actionManager, globalcontext, QLatin1String("Git.Sep.Global"), this));
+    gitContainer->addAction(createSeparator(actionManager, globalcontext, Core::Id("Git.Sep.Global"), this));
 
     ActionCommandPair actionCommand =
                     createRepositoryAction(actionManager, gitContainer,
@@ -463,7 +463,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
                                            tr("Push"), QLatin1String("Git.Push"),
                                            globalcontext, true, SLOT(push()));
 
-    gitContainer->addAction(createSeparator(actionManager, globalcontext, QLatin1String("Git.Sep.Branch"), this));
+    gitContainer->addAction(createSeparator(actionManager, globalcontext, Core::Id("Git.Sep.Branch"), this));
 
     createRepositoryAction(actionManager, gitContainer,
                            tr("Branches..."), QLatin1String("Git.BranchList"),
@@ -479,8 +479,8 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
     gitContainer->addAction(showCommitCommand);
 
     // Subversion in a submenu.
-    gitContainer->addAction(createSeparator(actionManager, globalcontext, QLatin1String("Git.Sep.Subversion"), this));
-    Core::ActionContainer *subversionMenu = actionManager->createMenu(QLatin1String("Git.Subversion"));
+    gitContainer->addAction(createSeparator(actionManager, globalcontext, Core::Id("Git.Sep.Subversion"), this));
+    Core::ActionContainer *subversionMenu = actionManager->createMenu(Core::Id("Git.Subversion"));
     subversionMenu->menu()->setTitle(tr("Subversion"));
     gitContainer->addMenu(subversionMenu);
 
@@ -498,7 +498,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage)
         for (int i = 0; i < count; i++) {
             Core::Command *tCommand
                     = actionManager->registerAction(snapShotActions.at(i),
-                                                    QLatin1String("Git.Snapshot.") + QString::number(i),
+                                                    QString(QLatin1String("Git.Snapshot.") + QString::number(i)),
                                                     globalcontext);
             gitContainer->addAction(tCommand);
         }
diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp
index a74576aceee..932b86625bb 100644
--- a/src/plugins/help/helpplugin.cpp
+++ b/src/plugins/help/helpplugin.cpp
@@ -183,13 +183,12 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
     QAction *action = new QAction(QIcon(QLatin1String(IMAGEPATH "home.png")),
         tr("Home"), this);
     Core::ActionManager *am = m_core->actionManager();
-    Core::Command *cmd = am->registerAction(action, QLatin1String("Help.Home"),
-        globalcontext);
+    Core::Command *cmd = am->registerAction(action, "Help.Home", globalcontext);
     connect(action, SIGNAL(triggered()), m_centralWidget, SLOT(home()));
 
     action = new QAction(QIcon(QLatin1String(IMAGEPATH "previous.png")),
         tr("Previous Page"), this);
-    cmd = am->registerAction(action, QLatin1String("Help.Previous"), modecontext);
+    cmd = am->registerAction(action, Core::Id("Help.Previous"), modecontext);
     cmd->setDefaultKeySequence(QKeySequence::Back);
     action->setEnabled(m_centralWidget->isBackwardAvailable());
     connect(action, SIGNAL(triggered()), m_centralWidget, SLOT(backward()));
@@ -198,7 +197,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
 
     action = new QAction(QIcon(QLatin1String(IMAGEPATH "next.png")), tr("Next Page"),
         this);
-    cmd = am->registerAction(action, QLatin1String("Help.Next"), modecontext);
+    cmd = am->registerAction(action, Core::Id("Help.Next"), modecontext);
     cmd->setDefaultKeySequence(QKeySequence::Forward);
     action->setEnabled(m_centralWidget->isForwardAvailable());
     connect(action, SIGNAL(triggered()), m_centralWidget, SLOT(forward()));
@@ -207,7 +206,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
 
     action = new QAction(QIcon(QLatin1String(IMAGEPATH "bookmark.png")),
         tr("Add Bookmark"), this);
-    cmd = am->registerAction(action, QLatin1String("Help.AddBookmark"),
+    cmd = am->registerAction(action, Core::Id("Help.AddBookmark"),
         modecontext);
     cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::Key_M));
     connect(action, SIGNAL(triggered()), this, SLOT(addBookmark()));
@@ -215,17 +214,17 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
     // Add Contents, Index, and Context menu items and a separator to the Help menu
     action = new QAction(QIcon::fromTheme(QLatin1String("help-contents")),
         tr(SB_CONTENTS), this);
-    cmd = am->registerAction(action, QLatin1String("Help.Contents"), globalcontext);
+    cmd = am->registerAction(action, Core::Id("Help.Contents"), globalcontext);
     am->actionContainer(M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
     connect(action, SIGNAL(triggered()), this, SLOT(activateContents()));
 
     action = new QAction(tr(SB_INDEX), this);
-    cmd = am->registerAction(action, QLatin1String("Help.Index"), globalcontext);
+    cmd = am->registerAction(action, Core::Id("Help.Index"), globalcontext);
     am->actionContainer(M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
     connect(action, SIGNAL(triggered()), this, SLOT(activateIndex()));
 
     action = new QAction(tr("Context Help"), this);
-    cmd = am->registerAction(action, QLatin1String("Help.Context"), globalcontext);
+    cmd = am->registerAction(action, Core::Id("Help.Context"), globalcontext);
     am->actionContainer(M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
     cmd->setDefaultKeySequence(QKeySequence(Qt::Key_F1));
     connect(action, SIGNAL(triggered()), this, SLOT(activateContext()));
@@ -233,7 +232,7 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error)
 #ifndef Q_WS_MAC
     action = new QAction(this);
     action->setSeparator(true);
-    cmd = am->registerAction(action, QLatin1String("Help.Separator"), globalcontext);
+    cmd = am->registerAction(action, Core::Id("Help.Separator"), globalcontext);
     am->actionContainer(M_HELP)->addAction(cmd, Core::Constants::G_HELP_HELP);
 #endif
 
@@ -410,20 +409,20 @@ void HelpPlugin::setupUi()
     QShortcut *shortcut = new QShortcut(m_splitter);
     shortcut->setWhatsThis(tr("Activate Index in Help mode"));
     Core::Command* cmd = am->registerShortcut(shortcut,
-        QLatin1String("Help.IndexShortcut"), modecontext);
+        Core::Id("Help.IndexShortcut"), modecontext);
     cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_I));
     connect(shortcut, SIGNAL(activated()), this, SLOT(activateIndex()));
     shortcutMap.insert(QLatin1String(SB_INDEX), cmd);
 
     ContentWindow *contentWindow = new ContentWindow();
     contentWindow->setWindowTitle(tr(SB_CONTENTS));
-    m_contentItem = new Core::SideBarItem(contentWindow, QLatin1String(SB_CONTENTS));
+    m_contentItem = new Core::SideBarItem(contentWindow, Core::Id(SB_CONTENTS));
     connect(contentWindow, SIGNAL(linkActivated(QUrl)), m_centralWidget,
         SLOT(setSource(QUrl)));
 
     shortcut = new QShortcut(m_splitter);
     shortcut->setWhatsThis(tr("Activate Contents in Help mode"));
-    cmd = am->registerShortcut(shortcut, QLatin1String("Help.ContentsShortcut"),
+    cmd = am->registerShortcut(shortcut, Core::Id("Help.ContentsShortcut"),
         modecontext);
     cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_C));
     connect(shortcut, SIGNAL(activated()), this, SLOT(activateContents()));
@@ -437,7 +436,7 @@ void HelpPlugin::setupUi()
 
      shortcut = new QShortcut(m_splitter);
      shortcut->setWhatsThis(tr("Activate Search in Help mode"));
-     cmd = am->registerShortcut(shortcut, QLatin1String("Help.SearchShortcut"),
+     cmd = am->registerShortcut(shortcut, Core::Id("Help.SearchShortcut"),
          modecontext);
      cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_Slash));
      connect(shortcut, SIGNAL(activated()), this, SLOT(activateSearch()));
@@ -452,7 +451,7 @@ void HelpPlugin::setupUi()
 
      shortcut = new QShortcut(m_splitter);
      shortcut->setWhatsThis(tr("Activate Bookmarks in Help mode"));
-     cmd = am->registerShortcut(shortcut, QLatin1String("Help.BookmarkShortcut"),
+     cmd = am->registerShortcut(shortcut, Core::Id("Help.BookmarkShortcut"),
          modecontext);
      cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_B));
      connect(shortcut, SIGNAL(activated()), this, SLOT(activateBookmarks()));
@@ -464,7 +463,7 @@ void HelpPlugin::setupUi()
 
     shortcut = new QShortcut(m_splitter);
     shortcut->setWhatsThis(tr("Activate Open Pages in Help mode"));
-    cmd = am->registerShortcut(shortcut, QLatin1String("Help.PagesShortcut"),
+    cmd = am->registerShortcut(shortcut, Core::Id("Help.PagesShortcut"),
         modecontext);
     cmd->setDefaultKeySequence(QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_O));
     connect(shortcut, SIGNAL(activated()), this, SLOT(activateOpenPages()));
@@ -943,10 +942,10 @@ QToolBar *HelpPlugin::createIconToolBar(bool external)
         connect(bookmark, SIGNAL(triggered()), this, SLOT(addBookmark()));
     } else {
         Core::ActionManager *am = m_core->actionManager();
-        home = am->command(QLatin1String("Help.Home"))->action();
-        back = am->command(QLatin1String("Help.Previous"))->action();
-        next = am->command(QLatin1String("Help.Next"))->action();
-        bookmark = am->command(QLatin1String("Help.AddBookmark"))->action();
+        home = am->command(Core::Id("Help.Home"))->action();
+        back = am->command(Core::Id("Help.Previous"))->action();
+        next = am->command(Core::Id("Help.Next"))->action();
+        bookmark = am->command(Core::Id("Help.AddBookmark"))->action();
     }
 
     setupNavigationMenus(back, next, toolBar);
diff --git a/src/plugins/imageviewer/imagevieweractionhandler.cpp b/src/plugins/imageviewer/imagevieweractionhandler.cpp
index f71603a8e8e..894cb11f669 100644
--- a/src/plugins/imageviewer/imagevieweractionhandler.cpp
+++ b/src/plugins/imageviewer/imagevieweractionhandler.cpp
@@ -41,6 +41,7 @@
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/command.h>
 #include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/uniqueidmanager.h>
 
 namespace ImageViewer {
 namespace Internal {
diff --git a/src/plugins/locator/locatorplugin.cpp b/src/plugins/locator/locatorplugin.cpp
index a2476b02144..d88f44b6ef5 100644
--- a/src/plugins/locator/locatorplugin.cpp
+++ b/src/plugins/locator/locatorplugin.cpp
@@ -50,6 +50,7 @@
 #include <coreplugin/actionmanager/command.h>
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <coreplugin/progressmanager/futureprogress.h>
+#include <coreplugin/uniqueidmanager.h>
 #include <extensionsystem/pluginmanager.h>
 #include <qtconcurrent/QtConcurrentTools>
 
@@ -109,9 +110,9 @@ bool LocatorPlugin::initialize(const QStringList &, QString *)
     view->setPosition(Core::StatusBarWidget::First);
     addAutoReleasedObject(view);
 
-    const QString actionId = QLatin1String("QtCreator.Locate");
     QAction *action = new QAction(m_locatorWidget->windowIcon(), m_locatorWidget->windowTitle(), this);
-    Core::Command *cmd = core->actionManager()->registerAction(action, actionId, Core::Context(Core::Constants::C_GLOBAL));
+    Core::Command *cmd = core->actionManager()
+        ->registerAction(action, "QtCreator.Locate", Core::Context(Core::Constants::C_GLOBAL));
     cmd->setDefaultKeySequence(QKeySequence("Ctrl+K"));
     connect(action, SIGNAL(triggered()), this, SLOT(openLocator()));
 
diff --git a/src/plugins/mercurial/mercurialplugin.cpp b/src/plugins/mercurial/mercurialplugin.cpp
index 1b21bece090..51495fe4ab6 100644
--- a/src/plugins/mercurial/mercurialplugin.cpp
+++ b/src/plugins/mercurial/mercurialplugin.cpp
@@ -209,22 +209,22 @@ void MercurialPlugin::createMenu()
     Core::Context context(Core::Constants::C_GLOBAL);
 
     // Create menu item for Mercurial
-    mercurialContainer = actionManager->createMenu(QLatin1String("Mercurial.MercurialMenu"));
+    mercurialContainer = actionManager->createMenu(Core::Id("Mercurial.MercurialMenu"));
     QMenu *menu = mercurialContainer->menu();
     menu->setTitle(tr("Mercurial"));
 
     createFileActions(context);
-    createSeparator(context, QLatin1String("FileDirSeperator"));
+    createSeparator(context, Core::Id("FileDirSeperator"));
     createDirectoryActions(context);
-    createSeparator(context, QLatin1String("DirRepoSeperator"));
+    createSeparator(context, Core::Id("DirRepoSeperator"));
     createRepositoryActions(context);
-    createSeparator(context, QLatin1String("Repository Management"));
+    createSeparator(context, Core::Id("Repository Management"));
     createRepositoryManagementActions(context);
-    createSeparator(context, QLatin1String("LessUsedfunctionality"));
+    createSeparator(context, Core::Id("LessUsedfunctionality"));
     createLessUsedActions(context);
 
     // Request the Tools menu and add the Mercurial menu to it
-    Core::ActionContainer *toolsMenu = actionManager->actionContainer(QLatin1String(Core::Constants::M_TOOLS));
+    Core::ActionContainer *toolsMenu = actionManager->actionContainer(Core::Id(Core::Constants::M_TOOLS));
     toolsMenu->addMenu(mercurialContainer);
     m_menuAction = mercurialContainer->menu()->menuAction();
 }
@@ -234,14 +234,14 @@ void MercurialPlugin::createFileActions(const Core::Context &context)
     Core::Command *command;
 
     annotateFile = new Utils::ParameterAction(tr("Annotate Current File"), tr("Annotate \"%1\""), Utils::ParameterAction::EnabledWithParameter, this);
-    command = actionManager->registerAction(annotateFile, QLatin1String(Constants::ANNOTATE), context);
+    command = actionManager->registerAction(annotateFile, Core::Id(Constants::ANNOTATE), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     connect(annotateFile, SIGNAL(triggered()), this, SLOT(annotateCurrentFile()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     diffFile = new Utils::ParameterAction(tr("Diff Current File"), tr("Diff \"%1\""), Utils::ParameterAction::EnabledWithParameter, this);
-    command = actionManager->registerAction(diffFile, QLatin1String(Constants::DIFF), context);
+    command = actionManager->registerAction(diffFile, Core::Id(Constants::DIFF), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     command->setDefaultKeySequence(QKeySequence(tr("Alt+H,Alt+D")));
     connect(diffFile, SIGNAL(triggered()), this, SLOT(diffCurrentFile()));
@@ -249,7 +249,7 @@ void MercurialPlugin::createFileActions(const Core::Context &context)
     m_commandLocator->appendCommand(command);
 
     logFile = new Utils::ParameterAction(tr("Log Current File"), tr("Log \"%1\""), Utils::ParameterAction::EnabledWithParameter, this);
-    command = actionManager->registerAction(logFile, QLatin1String(Constants::LOG), context);
+    command = actionManager->registerAction(logFile, Core::Id(Constants::LOG), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     command->setDefaultKeySequence(QKeySequence(tr("Alt+H,Alt+L")));
     connect(logFile, SIGNAL(triggered()), this, SLOT(logCurrentFile()));
@@ -257,31 +257,31 @@ void MercurialPlugin::createFileActions(const Core::Context &context)
     m_commandLocator->appendCommand(command);
 
     statusFile = new Utils::ParameterAction(tr("Status Current File"), tr("Status \"%1\""), Utils::ParameterAction::EnabledWithParameter, this);
-    command = actionManager->registerAction(statusFile, QLatin1String(Constants::STATUS), context);
+    command = actionManager->registerAction(statusFile, Core::Id(Constants::STATUS), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     command->setDefaultKeySequence(QKeySequence(tr("Alt+H,Alt+S")));
     connect(statusFile, SIGNAL(triggered()), this, SLOT(statusCurrentFile()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
-    createSeparator(context, QLatin1String("FileDirSeperator1"));
+    createSeparator(context, Core::Id("FileDirSeperator1"));
 
     m_addAction = new Utils::ParameterAction(tr("Add"), tr("Add \"%1\""), Utils::ParameterAction::EnabledWithParameter, this);
-    command = actionManager->registerAction(m_addAction, QLatin1String(Constants::ADD), context);
+    command = actionManager->registerAction(m_addAction, Core::Id(Constants::ADD), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     connect(m_addAction, SIGNAL(triggered()), this, SLOT(addCurrentFile()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     m_deleteAction = new Utils::ParameterAction(tr("Delete..."), tr("Delete \"%1\"..."), Utils::ParameterAction::EnabledWithParameter, this);
-    command = actionManager->registerAction(m_deleteAction, QLatin1String(Constants::DELETE), context);
+    command = actionManager->registerAction(m_deleteAction, Core::Id(Constants::DELETE), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     connect(m_deleteAction, SIGNAL(triggered()), this, SLOT(promptToDeleteCurrentFile()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     revertFile = new Utils::ParameterAction(tr("Revert Current File..."), tr("Revert \"%1\"..."), Utils::ParameterAction::EnabledWithParameter, this);
-    command = actionManager->registerAction(revertFile, QLatin1String(Constants::REVERT), context);
+    command = actionManager->registerAction(revertFile, Core::Id(Constants::REVERT), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     connect(revertFile, SIGNAL(triggered()), this, SLOT(revertCurrentFile()));
     mercurialContainer->addAction(command);
@@ -341,28 +341,28 @@ void MercurialPlugin::createDirectoryActions(const Core::Context &context)
 
     action = new QAction(tr("Diff"), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::DIFFMULTI), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::DIFFMULTI), context);
     connect(action, SIGNAL(triggered()), this, SLOT(diffRepository()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Log"), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::LOGMULTI), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::LOGMULTI), context);
     connect(action, SIGNAL(triggered()), this, SLOT(logRepository()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Revert..."), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::REVERTMULTI), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::REVERTMULTI), context);
     connect(action, SIGNAL(triggered()), this, SLOT(revertMulti()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Status"), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::STATUSMULTI), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::STATUSMULTI), context);
     connect(action, SIGNAL(triggered()), this, SLOT(statusMulti()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
@@ -406,56 +406,56 @@ void MercurialPlugin::createRepositoryActions(const Core::Context &context)
 {
     QAction *action = new QAction(tr("Pull..."), this);
     m_repositoryActionList.append(action);
-    Core::Command *command = actionManager->registerAction(action, QLatin1String(Constants::PULL), context);
+    Core::Command *command = actionManager->registerAction(action, Core::Id(Constants::PULL), context);
     connect(action, SIGNAL(triggered()), this, SLOT(pull()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Push..."), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::PUSH), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::PUSH), context);
     connect(action, SIGNAL(triggered()), this, SLOT(push()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Update..."), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::UPDATE), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::UPDATE), context);
     connect(action, SIGNAL(triggered()), this, SLOT(update()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Import..."), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::IMPORT), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::IMPORT), context);
     connect(action, SIGNAL(triggered()), this, SLOT(import()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Incoming..."), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::INCOMING), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::INCOMING), context);
     connect(action, SIGNAL(triggered()), this, SLOT(incoming()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Outgoing..."), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::OUTGOING), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::OUTGOING), context);
     connect(action, SIGNAL(triggered()), this, SLOT(outgoing()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     action = new QAction(tr("Commit..."), this);
     m_repositoryActionList.append(action);
-    command = actionManager->registerAction(action, QLatin1String(Constants::COMMIT), context);
+    command = actionManager->registerAction(action, Core::Id(Constants::COMMIT), context);
     command->setDefaultKeySequence(QKeySequence(tr("Alt+H,Alt+C")));
     connect(action, SIGNAL(triggered()), this, SLOT(commit()));
     mercurialContainer->addAction(command);
     m_commandLocator->appendCommand(command);
 
     m_createRepositoryAction = new QAction(tr("Create Repository..."), this);
-    command = actionManager->registerAction(m_createRepositoryAction, QLatin1String(Constants::CREATE_REPOSITORY), context);
+    command = actionManager->registerAction(m_createRepositoryAction, Core::Id(Constants::CREATE_REPOSITORY), context);
     connect(m_createRepositoryAction, SIGNAL(triggered()), this, SLOT(createRepository()));
     mercurialContainer->addAction(command);
 }
@@ -537,18 +537,18 @@ void MercurialPlugin::createSubmitEditorActions()
     Core::Command *command;
 
     editorCommit = new QAction(VCSBase::VCSBaseSubmitEditor::submitIcon(), tr("Commit"), this);
-    command = actionManager->registerAction(editorCommit, QLatin1String(Constants::COMMIT), context);
+    command = actionManager->registerAction(editorCommit, Core::Id(Constants::COMMIT), context);
     command->setAttribute(Core::Command::CA_UpdateText);
     connect(editorCommit, SIGNAL(triggered()), this, SLOT(commitFromEditor()));
 
     editorDiff = new QAction(VCSBase::VCSBaseSubmitEditor::diffIcon(), tr("Diff Selected Files"), this);
-    command = actionManager->registerAction(editorDiff, QLatin1String(Constants::DIFFEDITOR), context);
+    command = actionManager->registerAction(editorDiff, Core::Id(Constants::DIFFEDITOR), context);
 
     editorUndo = new QAction(tr("&Undo"), this);
-    command = actionManager->registerAction(editorUndo, QLatin1String(Core::Constants::UNDO), context);
+    command = actionManager->registerAction(editorUndo, Core::Id(Core::Constants::UNDO), context);
 
     editorRedo = new QAction(tr("&Redo"), this);
-    command = actionManager->registerAction(editorRedo, QLatin1String(Core::Constants::REDO), context);
+    command = actionManager->registerAction(editorRedo, Core::Id(Core::Constants::REDO), context);
 }
 
 void MercurialPlugin::commit()
@@ -699,7 +699,7 @@ void MercurialPlugin::createLessUsedActions(const Core::Context &context)
     return;
 }
 
-void MercurialPlugin::createSeparator(const Core::Context &context, const QString &id)
+void MercurialPlugin::createSeparator(const Core::Context &context, const Core::Id &id)
 {
     QAction *action = new QAction(this);
     action->setSeparator(true);
diff --git a/src/plugins/mercurial/mercurialplugin.h b/src/plugins/mercurial/mercurialplugin.h
index 0dec3d2a867..e7f0a065134 100644
--- a/src/plugins/mercurial/mercurialplugin.h
+++ b/src/plugins/mercurial/mercurialplugin.h
@@ -48,6 +48,7 @@ namespace Core {
 class ActionManager;
 class ActionContainer;
 class ICore;
+class Id;
 class IVersionControl;
 class IEditorFactory;
 class IEditor;
@@ -140,7 +141,7 @@ private:
     //methods
     void createMenu();
     void createSubmitEditorActions();
-    void createSeparator(const Core::Context &context, const QString &id);
+    void createSeparator(const Core::Context &context, const Core::Id &id);
     void createFileActions(const Core::Context &context);
     void createDirectoryActions(const Core::Context &context);
     void createRepositoryActions(const Core::Context &context);
diff --git a/src/plugins/perforce/perforceplugin.cpp b/src/plugins/perforce/perforceplugin.cpp
index 35067f4bda8..6e4600e57d5 100644
--- a/src/plugins/perforce/perforceplugin.cpp
+++ b/src/plugins/perforce/perforceplugin.cpp
@@ -261,7 +261,7 @@ bool PerforcePlugin::initialize(const QStringList & /* arguments */, QString *er
         am->actionContainer(Core::Constants::M_TOOLS);
 
     Core::ActionContainer *mperforce =
-        am->createMenu(QLatin1String(CMD_ID_PERFORCE_MENU));
+        am->createMenu(Core::Id(CMD_ID_PERFORCE_MENU));
     mperforce->menu()->setTitle(tr("&Perforce"));
     mtools->addMenu(mperforce);
     m_menuAction = mperforce->menu()->menuAction();
diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp
index 5b0ba9b89ac..00901e289b7 100644
--- a/src/plugins/projectexplorer/projectexplorer.cpp
+++ b/src/plugins/projectexplorer/projectexplorer.cpp
@@ -436,31 +436,31 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("ProjectExplorer.Build.Sep"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("ProjectExplorer.Build.Sep"), globalcontext);
     mbuild->addAction(cmd, Constants::G_BUILD_PROJECT);
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("ProjectExplorer.Files.Sep"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("ProjectExplorer.Files.Sep"), globalcontext);
     msessionContextMenu->addAction(cmd, Constants::G_SESSION_FILES);
     mproject->addAction(cmd, Constants::G_PROJECT_FILES);
     msubProject->addAction(cmd, Constants::G_PROJECT_FILES);
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("ProjectExplorer.Config.Sep"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("ProjectExplorer.Config.Sep"), globalcontext);
     msessionContextMenu->addAction(cmd, Constants::G_SESSION_CONFIG);
     mproject->addAction(cmd, Constants::G_PROJECT_CONFIG);
     msubProject->addAction(cmd, Constants::G_PROJECT_CONFIG);
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("ProjectExplorer.Projects.Sep"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("ProjectExplorer.Projects.Sep"), globalcontext);
     mfile->addAction(cmd, Core::Constants::G_FILE_PROJECT);
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("ProjectExplorer.Other.Sep"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("ProjectExplorer.Other.Sep"), globalcontext);
     mbuild->addAction(cmd, Constants::G_BUILD_OTHER);
     msessionContextMenu->addAction(cmd, Constants::G_SESSION_OTHER);
     mproject->addAction(cmd, Constants::G_PROJECT_OTHER);
@@ -468,13 +468,13 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("ProjectExplorer.Run.Sep"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("ProjectExplorer.Run.Sep"), globalcontext);
     mbuild->addAction(cmd, Constants::G_BUILD_RUN);
     mproject->addAction(cmd, Constants::G_PROJECT_RUN);
 
     sep = new QAction(this);
     sep->setSeparator(true);
-    cmd = am->registerAction(sep, QLatin1String("ProjectExplorer.CancelBuild.Sep"), globalcontext);
+    cmd = am->registerAction(sep, Core::Id("ProjectExplorer.CancelBuild.Sep"), globalcontext);
     mbuild->addAction(cmd, Constants::G_BUILD_CANCEL);
 
     //
@@ -1179,7 +1179,7 @@ void ProjectExplorerPlugin::updateWelcomePage()
 
 void ProjectExplorerPlugin::currentModeChanged(Core::IMode *mode, Core::IMode *oldMode)
 {
-    if (mode && mode->id() == QLatin1String(Core::Constants::MODE_WELCOME))
+    if (mode && mode->id() == Core::Id(Core::Constants::MODE_WELCOME))
         updateWelcomePage();
     if (oldMode == d->m_projectsMode)
         savePersistentSettings();
@@ -1530,7 +1530,7 @@ int ProjectExplorerPlugin::queue(QList<Project *> projects, QStringList stepIds)
             continue;
         foreach (const QString id, stepIds) {
             BuildStepList *bsl = 0;
-            if (id == QLatin1String(Constants::BUILDSTEPS_DEPLOY)
+            if (id == Core::Id(Constants::BUILDSTEPS_DEPLOY)
                 && pro->activeTarget()->activeDeployConfiguration())
                 bsl = pro->activeTarget()->activeDeployConfiguration()->stepList();
             else if (pro->activeTarget()->activeBuildConfiguration())
diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp
index bc7e2ab5ea7..2e56d222430 100644
--- a/src/plugins/subversion/subversionplugin.cpp
+++ b/src/plugins/subversion/subversionplugin.cpp
@@ -299,7 +299,7 @@ bool SubversionPlugin::initialize(const QStringList & /*arguments */, QString *e
     Core::ActionContainer *toolsContainer = ami->actionContainer(M_TOOLS);
 
     Core::ActionContainer *subversionMenu =
-        ami->createMenu(QLatin1String(CMD_ID_SUBVERSION_MENU));
+        ami->createMenu(Core::Id(CMD_ID_SUBVERSION_MENU));
     subversionMenu->menu()->setTitle(tr("&Subversion"));
     toolsContainer->addMenu(subversionMenu);
     m_menuAction = subversionMenu->menu()->menuAction();
diff --git a/src/plugins/texteditor/texteditorplugin.cpp b/src/plugins/texteditor/texteditorplugin.cpp
index eb70d842da2..142145c9064 100644
--- a/src/plugins/texteditor/texteditorplugin.cpp
+++ b/src/plugins/texteditor/texteditorplugin.cpp
@@ -48,6 +48,7 @@
 #include <coreplugin/actionmanager/actionmanager.h>
 #include <coreplugin/actionmanager/command.h>
 #include <coreplugin/editormanager/editormanager.h>
+#include <coreplugin/uniqueidmanager.h>
 #include <extensionsystem/pluginmanager.h>
 #include <texteditor/texteditoractionhandler.h>
 #include <find/searchresultwindow.h>
@@ -103,7 +104,6 @@ bool TextEditorPlugin::initialize(const QStringList &arguments, QString *errorMe
     // Add text file wizard
     addAutoReleasedObject(m_wizard);
 
-
     m_settings = new TextEditorSettings(this);
 
     // Add plain text editor factory
-- 
GitLab