From 51b390cada043699c0dc4c29d3b27b194c6de10f Mon Sep 17 00:00:00 2001
From: hjk <hjk121@nokiamail.com>
Date: Mon, 5 Aug 2013 16:02:27 +0200
Subject: [PATCH] Analyzer: Remove some explicit uses of Analyzer::StartMode

Change-Id: I6d28a533d4ee2e93e4b3407e7fdd670c45886708
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
---
 src/plugins/analyzerbase/analyzermanager.cpp | 25 ++++++++++++--------
 src/plugins/analyzerbase/ianalyzertool.cpp   | 15 ------------
 src/plugins/analyzerbase/ianalyzertool.h     |  6 -----
 src/plugins/qmlprofiler/qmlprofilertool.cpp  |  5 ----
 src/plugins/qmlprofiler/qmlprofilertool.h    |  1 -
 src/plugins/valgrind/callgrindtool.cpp       |  5 ----
 src/plugins/valgrind/callgrindtool.h         |  1 -
 src/plugins/valgrind/memchecktool.cpp        |  5 ----
 src/plugins/valgrind/memchecktool.h          |  1 -
 9 files changed, 15 insertions(+), 49 deletions(-)

diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 0c7f7479125..2aa73d8fc25 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -81,6 +81,7 @@ namespace Analyzer {
 namespace Internal {
 
 const char LAST_ACTIVE_TOOL[] = "Analyzer.Plugin.LastActiveTool";
+const char LAST_ACTIVE_MODE[] = "Analyzer.Plugin.LastActiveMode";
 const char INITIAL_DOCK_AREA[] = "initial_dock_area";
 
 ////////////////////////////////////////////////////////////////////
@@ -470,12 +471,11 @@ void AnalyzerManagerPrivate::selectSavedTool()
     const QSettings *settings = ICore::settings();
 
     if (settings->contains(QLatin1String(LAST_ACTIVE_TOOL))) {
-        const Id lastActiveAction = Id::fromSetting(settings->value(QLatin1String(LAST_ACTIVE_TOOL)));
-        foreach (QAction *action, m_actions) {
-            IAnalyzerTool *tool = m_toolFromAction.value(action);
-            StartMode mode = m_modeFromAction.value(action);
-            if (tool->actionId(mode) == lastActiveAction) {
-                selectTool(tool, mode);
+        const Id lastTool = Id::fromSetting(settings->value(QLatin1String(LAST_ACTIVE_TOOL)));
+        const StartMode lastMode = StartMode(settings->value(QLatin1String(LAST_ACTIVE_MODE)).toInt());
+        foreach (IAnalyzerTool *tool, m_tools) {
+            if (tool->id() == lastTool) {
+                selectTool(tool, lastMode);
                 return;
             }
         }
@@ -554,9 +554,13 @@ void AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool, const StartModes &mode
 
     const bool blocked = m_toolBox->blockSignals(true); // Do not make current.
     foreach (StartMode mode, modes) {
-        QString actionName = tool->actionName(mode);
-        Id menuGroup = tool->menuGroup(mode);
-        Id actionId = tool->actionId(mode);
+        QString actionName = tool->displayName();
+        Id menuGroup = Constants::G_ANALYZER_TOOLS;
+        if (mode == StartRemote) {
+            actionName += IAnalyzerTool::tr(" (External)");
+            menuGroup = Constants::G_ANALYZER_REMOTE_TOOLS;
+        }
+        Id actionId = tool->id().withSuffix(mode);
         QAction *action = new QAction(actionName, this);
         Command *command = Core::ActionManager::registerAction(action, actionId, Context(C_GLOBAL));
         m_menu->addAction(command, menuGroup);
@@ -610,7 +614,8 @@ void AnalyzerManagerPrivate::saveToolSettings(IAnalyzerTool *tool, StartMode mod
     m_mainWindow->saveSettings(settings);
     settings->setValue(QLatin1String("ToolSettingsSaved"), true);
     settings->endGroup();
-    settings->setValue(QLatin1String(LAST_ACTIVE_TOOL), tool->actionId(mode).toString());
+    settings->setValue(QLatin1String(LAST_ACTIVE_TOOL), tool->id().toString());
+    settings->setValue(QLatin1String(LAST_ACTIVE_MODE), int(mode));
 }
 
 void AnalyzerManagerPrivate::updateRunActions()
diff --git a/src/plugins/analyzerbase/ianalyzertool.cpp b/src/plugins/analyzerbase/ianalyzertool.cpp
index 875e1f1dc1b..57a7f0379e0 100644
--- a/src/plugins/analyzerbase/ianalyzertool.cpp
+++ b/src/plugins/analyzerbase/ianalyzertool.cpp
@@ -60,21 +60,6 @@ IAnalyzerTool::IAnalyzerTool(QObject *parent)
     : QObject(parent)
 {}
 
-Id IAnalyzerTool::menuGroup(StartMode mode) const
-{
-    if (mode == StartRemote)
-        return Constants::G_ANALYZER_REMOTE_TOOLS;
-    return Constants::G_ANALYZER_TOOLS;
-}
-
-QString IAnalyzerTool::actionName(StartMode mode) const
-{
-    QString base = displayName();
-    if (mode == StartRemote)
-        return base + tr(" (External)");
-    return base;
-}
-
 AbstractAnalyzerSubConfig *IAnalyzerTool::createGlobalSettings()
 {
     return 0;
diff --git a/src/plugins/analyzerbase/ianalyzertool.h b/src/plugins/analyzerbase/ianalyzertool.h
index 96bd3ecbf01..b8156659707 100644
--- a/src/plugins/analyzerbase/ianalyzertool.h
+++ b/src/plugins/analyzerbase/ianalyzertool.h
@@ -78,12 +78,6 @@ public:
     virtual QString displayName() const = 0;
     /// Returns a user readable description name for this tool.
     virtual QString description() const = 0;
-    /// Returns an id for the start action.
-    virtual Core::Id actionId(StartMode mode) const = 0;
-    /// Returns the menu group the start action should go to.
-    virtual Core::Id menuGroup(StartMode mode) const;
-    /// Returns a short user readable action name for this tool.
-    virtual QString actionName(StartMode mode) const;
 
     /**
      * The mode in which this tool should preferably be run
diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp
index 8a90585acb5..57679536318 100644
--- a/src/plugins/qmlprofiler/qmlprofilertool.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp
@@ -213,11 +213,6 @@ QString QmlProfilerTool::description() const
               "applications using QML.");
 }
 
-Core::Id QmlProfilerTool::actionId(StartMode mode) const
-{
-    return mode == StartLocal ? "Analyzer.QmlProfiler.Local" : "Analyzer.QmlProfiler.Remote";
-}
-
 IAnalyzerTool::ToolMode QmlProfilerTool::toolMode() const
 {
     return AnyMode;
diff --git a/src/plugins/qmlprofiler/qmlprofilertool.h b/src/plugins/qmlprofiler/qmlprofilertool.h
index 63e918cec24..5a3989e0e1c 100644
--- a/src/plugins/qmlprofiler/qmlprofilertool.h
+++ b/src/plugins/qmlprofiler/qmlprofilertool.h
@@ -52,7 +52,6 @@ public:
     ProjectExplorer::RunMode runMode() const;
     QString displayName() const;
     QString description() const;
-    Core::Id actionId(Analyzer::StartMode mode) const;
     ToolMode toolMode() const;
 
     void extensionsInitialized() {}
diff --git a/src/plugins/valgrind/callgrindtool.cpp b/src/plugins/valgrind/callgrindtool.cpp
index b5d833cad8e..1b2ba3d961e 100644
--- a/src/plugins/valgrind/callgrindtool.cpp
+++ b/src/plugins/valgrind/callgrindtool.cpp
@@ -535,11 +535,6 @@ QString CallgrindTool::description() const
               "record function calls when a program runs.");
 }
 
-Core::Id CallgrindTool::actionId(StartMode mode) const
-{
-    return mode == StartLocal ? "Analyzer.Callgrind.Local" : "Analyzer.Callgrind.Remote";
-}
-
 IAnalyzerTool::ToolMode CallgrindTool::toolMode() const
 {
     return ReleaseMode;
diff --git a/src/plugins/valgrind/callgrindtool.h b/src/plugins/valgrind/callgrindtool.h
index a3937a9cb61..14a5b201fb7 100644
--- a/src/plugins/valgrind/callgrindtool.h
+++ b/src/plugins/valgrind/callgrindtool.h
@@ -49,7 +49,6 @@ public:
     ProjectExplorer::RunMode runMode() const;
     QString displayName() const;
     QString description() const;
-    Core::Id actionId(Analyzer::StartMode mode) const;
     ToolMode toolMode() const;
 
     void extensionsInitialized();
diff --git a/src/plugins/valgrind/memchecktool.cpp b/src/plugins/valgrind/memchecktool.cpp
index bb746b4081b..323d8eaf4f1 100644
--- a/src/plugins/valgrind/memchecktool.cpp
+++ b/src/plugins/valgrind/memchecktool.cpp
@@ -297,11 +297,6 @@ QString MemcheckTool::description() const
               "memory leaks");
 }
 
-Core::Id MemcheckTool::actionId(StartMode mode) const
-{
-    return mode == StartLocal ? "Analyzer.Memcheck.Local" : "Analyzer.Memcheck.Remote";
-}
-
 AbstractAnalyzerSubConfig *MemcheckTool::createGlobalSettings()
 {
     return new ValgrindGlobalSettings();
diff --git a/src/plugins/valgrind/memchecktool.h b/src/plugins/valgrind/memchecktool.h
index a6eec1d2763..69344659699 100644
--- a/src/plugins/valgrind/memchecktool.h
+++ b/src/plugins/valgrind/memchecktool.h
@@ -88,7 +88,6 @@ public:
     ProjectExplorer::RunMode runMode() const;
     QString displayName() const;
     QString description() const;
-    Core::Id actionId(Analyzer::StartMode mode) const;
 
     // Create the valgrind settings (for all valgrind tools)
     Analyzer::AbstractAnalyzerSubConfig *createGlobalSettings();
-- 
GitLab