summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/analyzerbase/analyzermanager.cpp53
-rw-r--r--src/plugins/analyzerbase/analyzermanager.h6
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerplugin.cpp7
-rw-r--r--src/plugins/valgrind/valgrindplugin.cpp13
4 files changed, 38 insertions, 41 deletions
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp
index 686bb000af..e251e700a1 100644
--- a/src/plugins/analyzerbase/analyzermanager.cpp
+++ b/src/plugins/analyzerbase/analyzermanager.cpp
@@ -147,7 +147,7 @@ public:
void activateDock(Qt::DockWidgetArea area, QDockWidget *dockWidget);
void deactivateDock(QDockWidget *dockWidget);
- void addTool(IAnalyzerTool *tool, const StartModes &modes);
+ void addTool(IAnalyzerTool *tool, StartMode mode);
void selectSavedTool();
void selectTool(QAction *action);
void handleToolStarted();
@@ -537,34 +537,35 @@ void AnalyzerManagerPrivate::selectTool(QAction *action)
updateRunActions();
}
-void AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool, const StartModes &modes)
+void AnalyzerManagerPrivate::addTool(IAnalyzerTool *tool, StartMode mode)
{
delayedInit(); // Make sure that there is a valid IMode instance.
const bool blocked = m_toolBox->blockSignals(true); // Do not make current.
- foreach (StartMode mode, modes) {
- 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);
- command->action()->setData(int(StartLocal));
- // Assuming this happens before project loading.
- if (mode == StartLocal)
- command->action()->setEnabled(false);
- m_actions.append(action);
- m_toolFromAction[action] = tool;
- m_modeFromAction[action] = mode;
- m_toolBox->addItem(actionName);
- m_toolBox->blockSignals(blocked);
- connect(action, SIGNAL(triggered()), SLOT(selectMenuAction()));
+
+ QString actionName = tool->displayName();
+ Id menuGroup = Constants::G_ANALYZER_TOOLS;
+ if (mode == StartRemote) {
+ actionName += IAnalyzerTool::tr(" (External)");
+ menuGroup = Constants::G_ANALYZER_REMOTE_TOOLS;
}
- m_tools.append(tool);
+ 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);
+ command->action()->setData(int(StartLocal));
+ // Assuming this happens before project loading.
+ if (mode == StartLocal)
+ command->action()->setEnabled(false);
+ m_actions.append(action);
+ m_toolFromAction[action] = tool;
+ m_modeFromAction[action] = mode;
+ m_toolBox->addItem(actionName);
+ m_toolBox->blockSignals(blocked);
+ connect(action, SIGNAL(triggered()), SLOT(selectMenuAction()));
+
+ if (!m_tools.contains(tool))
+ m_tools.append(tool);
m_toolBox->setEnabled(true);
}
@@ -664,9 +665,9 @@ void AnalyzerManager::shutdown()
m_instance->d->saveToolSettings(m_instance->d->m_currentAction);
}
-void AnalyzerManager::addTool(IAnalyzerTool *tool, const StartModes &modes)
+void AnalyzerManager::addTool(IAnalyzerTool *tool, StartMode mode)
{
- m_instance->d->addTool(tool, modes);
+ m_instance->d->addTool(tool, mode);
}
QDockWidget *AnalyzerManager::createDockWidget(IAnalyzerTool *tool, const QString &title,
diff --git a/src/plugins/analyzerbase/analyzermanager.h b/src/plugins/analyzerbase/analyzermanager.h
index 8ec110a6b1..3c3fd949dd 100644
--- a/src/plugins/analyzerbase/analyzermanager.h
+++ b/src/plugins/analyzerbase/analyzermanager.h
@@ -48,8 +48,6 @@ namespace ProjectExplorer { class RunConfiguration; }
namespace Analyzer {
-typedef QList<StartMode> StartModes;
-
class IAnalyzerTool;
class AnalyzerRunControl;
class AnalyzerManagerPrivate;
@@ -68,8 +66,8 @@ public:
static void extensionsInitialized();
static void shutdown();
- // Register a tool and initialize it.
- static void addTool(IAnalyzerTool *tool, const StartModes &mode);
+ // Register a tool for a given start mode.
+ static void addTool(IAnalyzerTool *tool, StartMode mode);
// Dockwidgets are registered to the main window.
static QDockWidget *createDockWidget(IAnalyzerTool *tool, const QString &title,
diff --git a/src/plugins/qmlprofiler/qmlprofilerplugin.cpp b/src/plugins/qmlprofiler/qmlprofilerplugin.cpp
index 70e016cf09..6f92dda121 100644
--- a/src/plugins/qmlprofiler/qmlprofilerplugin.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerplugin.cpp
@@ -46,10 +46,9 @@ bool QmlProfilerPlugin::initialize(const QStringList &arguments, QString *errorS
Q_UNUSED(arguments)
Q_UNUSED(errorString)
- StartModes modes;
- modes.append(StartMode(StartLocal));
- modes.append(StartMode(StartRemote));
- AnalyzerManager::addTool(new QmlProfilerTool(this), modes);
+ IAnalyzerTool *tool = new QmlProfilerTool(this);
+ AnalyzerManager::addTool(tool, StartLocal);
+ AnalyzerManager::addTool(tool, StartRemote);
addAutoReleasedObject(new QmlProfilerRunControlFactory());
diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp
index 07e89087f2..1273cd2db0 100644
--- a/src/plugins/valgrind/valgrindplugin.cpp
+++ b/src/plugins/valgrind/valgrindplugin.cpp
@@ -52,15 +52,14 @@ bool ValgrindPlugin::initialize(const QStringList &, QString *)
{
AnalyzerGlobalSettings::registerConfig(new ValgrindGlobalSettings());
- StartModes modes;
- if (!Utils::HostOsInfo::isWindowsHost())
- modes.append(StartMode(StartLocal));
- modes.append(StartMode(StartRemote));
-
IAnalyzerTool *memcheckTool = new MemcheckTool(this);
IAnalyzerTool *callgrindTool = new CallgrindTool(this);
- AnalyzerManager::addTool(memcheckTool, modes);
- AnalyzerManager::addTool(callgrindTool, modes);
+ if (!Utils::HostOsInfo::isWindowsHost()) {
+ AnalyzerManager::addTool(memcheckTool, StartLocal);
+ AnalyzerManager::addTool(callgrindTool, StartLocal);
+ }
+ AnalyzerManager::addTool(memcheckTool, StartRemote);
+ AnalyzerManager::addTool(callgrindTool, StartRemote);
addAutoReleasedObject(new ValgrindRunControlFactory());