diff options
-rw-r--r-- | src/plugins/analyzerbase/analyzermanager.cpp | 53 | ||||
-rw-r--r-- | src/plugins/analyzerbase/analyzermanager.h | 6 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilerplugin.cpp | 7 | ||||
-rw-r--r-- | src/plugins/valgrind/valgrindplugin.cpp | 13 |
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()); |