diff options
author | hjk <hjk@theqtcompany.com> | 2015-06-19 09:46:25 +0200 |
---|---|---|
committer | hjk <hjk@theqtcompany.com> | 2015-06-19 11:36:24 +0000 |
commit | 88a10a92db503d14984e042be368d6dbfee98f59 (patch) | |
tree | 4fe209333e7adc64f413d12e9ae05f32351ce5fe | |
parent | cbe27c5c4430b48c0db2b3ed44f56535d687453e (diff) |
Analyzer: Remove one level of indirection when creating RunControls
Change-Id: I7029e2dbd3352549036da642fdbd926756a563cb
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
-rw-r--r-- | src/plugins/analyzerbase/analyzermanager.cpp | 6 | ||||
-rw-r--r-- | src/plugins/analyzerbase/ianalyzertool.cpp | 12 | ||||
-rw-r--r-- | src/plugins/analyzerbase/ianalyzertool.h | 6 |
3 files changed, 6 insertions, 18 deletions
diff --git a/src/plugins/analyzerbase/analyzermanager.cpp b/src/plugins/analyzerbase/analyzermanager.cpp index 6255e183ee..995203ca2f 100644 --- a/src/plugins/analyzerbase/analyzermanager.cpp +++ b/src/plugins/analyzerbase/analyzermanager.cpp @@ -32,6 +32,7 @@ #include "analyzermanager.h" #include "analyzerplugin.h" +#include "analyzerstartparameters.h" #include "ianalyzertool.h" #include <coreplugin/coreconstants.h> @@ -709,10 +710,9 @@ AnalyzerRunControl *AnalyzerManager::createRunControl( const AnalyzerStartParameters &sp, RunConfiguration *runConfiguration) { foreach (AnalyzerAction *action, d->m_actions) { - if (AnalyzerRunControl *rc = action->tryCreateRunControl(sp, runConfiguration)) - return rc; + if (action->runMode() == sp.runMode) + return action->runControlCreator()(sp, runConfiguration); } - QTC_CHECK(false); return 0; } diff --git a/src/plugins/analyzerbase/ianalyzertool.cpp b/src/plugins/analyzerbase/ianalyzertool.cpp index d74d5e7ee8..80698e8066 100644 --- a/src/plugins/analyzerbase/ianalyzertool.cpp +++ b/src/plugins/analyzerbase/ianalyzertool.cpp @@ -70,13 +70,6 @@ bool AnalyzerAction::isRunnable(QString *reason) const return ProjectExplorerPlugin::canRun(SessionManager::startupProject(), m_runMode, reason); } -AnalyzerRunControl *AnalyzerAction::tryCreateRunControl(const AnalyzerStartParameters &sp, RunConfiguration *runConfiguration) const -{ - if (m_runMode == sp.runMode) - return m_runControlCreator(sp, runConfiguration); - return 0; -} - static bool buildTypeAccepted(ToolMode toolMode, BuildConfiguration::BuildType buildType) { if (toolMode == AnyMode) @@ -155,9 +148,4 @@ void AnalyzerAction::startTool() ProjectExplorerPlugin::runStartupProject(m_runMode); } -void AnalyzerAction::setCustomToolStarter(const AnalyzerAction::ToolStarter &toolStarter) -{ - m_customToolStarter = toolStarter; -} - } // namespace Analyzer diff --git a/src/plugins/analyzerbase/ianalyzertool.h b/src/plugins/analyzerbase/ianalyzertool.h index 0ff7396c25..b87414bffd 100644 --- a/src/plugins/analyzerbase/ianalyzertool.h +++ b/src/plugins/analyzerbase/ianalyzertool.h @@ -86,6 +86,7 @@ public: void setToolId(Core::Id id) { m_toolId = id; } void setToolMode(ToolMode mode) { m_toolMode = mode; } + ProjectExplorer::RunMode runMode() const { return m_runMode; } void setRunMode(ProjectExplorer::RunMode mode) { m_runMode = mode; } bool isRunnable(QString *reason = 0) const; @@ -100,8 +101,7 @@ public: /// Called each time the tool is launched. typedef std::function<AnalyzerRunControl *(const AnalyzerStartParameters &sp, ProjectExplorer::RunConfiguration *runConfiguration)> RunControlCreator; - AnalyzerRunControl *tryCreateRunControl(const AnalyzerStartParameters &sp, - ProjectExplorer::RunConfiguration *runConfiguration) const; + RunControlCreator runControlCreator() const { return m_runControlCreator; } void setRunControlCreator(const RunControlCreator &creator) { m_runControlCreator = creator; } typedef std::function<bool()> ToolPreparer; @@ -112,7 +112,7 @@ public: /// This is only used for setups not using the startup project. typedef std::function<void()> ToolStarter; - void setCustomToolStarter(const ToolStarter &toolStarter); + void setCustomToolStarter(const ToolStarter &toolStarter) { m_customToolStarter = toolStarter; } protected: Core::Id m_menuGroup; |