summaryrefslogtreecommitdiff
path: root/src/plugins/clangstaticanalyzer
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/clangstaticanalyzer')
-rw-r--r--src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp1
-rw-r--r--src/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp19
-rw-r--r--src/plugins/clangstaticanalyzer/clangstaticanalyzertool.h3
3 files changed, 15 insertions, 8 deletions
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
index 33b7f4f807..98a0788ebc 100644
--- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
+++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp
@@ -81,6 +81,7 @@ ClangStaticAnalyzerToolRunner::ClangStaticAnalyzerToolRunner(RunControl *runCont
auto tool = ClangStaticAnalyzerTool::instance();
tool->stopAction()->disconnect();
connect(tool->stopAction(), &QAction::triggered, runControl, &RunControl::initiateStop);
+ tool->handleWorkerStart(this);
ProjectInfo projectInfoBeforeBuild = tool->projectInfoBeforeBuild();
QTC_ASSERT(projectInfoBeforeBuild.isValid(), return);
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp
index c8f1f6c8ba..461f31049b 100644
--- a/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp
+++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp
@@ -145,7 +145,6 @@ ClangStaticAnalyzerTool::ClangStaticAnalyzerTool()
{{ClangStaticAnalyzerDockId, m_diagnosticView, {}, Perspective::SplitVertical}}
));
- //Debugger::registerAction(Constants::CLANGSTATICANALYZER_RUN_MODE, {});
action = new QAction(tr("Clang Static Analyzer"), this);
action->setToolTip(toolTip);
menu->addAction(ActionManager::registerAction(action, "ClangStaticAnalyzer.Action"),
@@ -211,14 +210,12 @@ static bool dontStartAfterHintForDebugMode(Project *project)
return false;
}
-void ClangStaticAnalyzerTool::startTool()
+void ClangStaticAnalyzerTool::handleWorkerStart(RunWorker *runWorker)
{
- Project *project = SessionManager::startupProject();
+ RunControl *runControl = runWorker->runControl();
+ Project *project = runControl->project();
QTC_ASSERT(project, emit finished(false); return);
- if (dontStartAfterHintForDebugMode(project))
- return;
-
Debugger::selectPerspective(ClangStaticAnalyzerPerspectiveId);
m_diagnosticModel->clear();
setBusyCursor(true);
@@ -230,8 +227,13 @@ void ClangStaticAnalyzerTool::startTool()
m_toolBusy = true;
updateRunActions();
+}
- Target * const target = project->activeTarget();
+void ClangStaticAnalyzerTool::startTool()
+{
+ Project *project = SessionManager::startupProject();
+ QTC_ASSERT(project, return);
+ Target *target = project->activeTarget();
QTC_ASSERT(target, return);
DummyRunConfiguration *& rc = m_runConfigs[target];
if (!rc) {
@@ -245,6 +247,9 @@ void ClangStaticAnalyzerTool::startTool()
connect(SessionManager::instance(), &SessionManager::aboutToRemoveProject, this,
onProjectRemoved, Qt::UniqueConnection);
}
+ if (dontStartAfterHintForDebugMode(project))
+ return;
+
ProjectExplorerPlugin::runRunConfiguration(rc, Constants::CLANGSTATICANALYZER_RUN_MODE);
}
diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.h b/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.h
index b3f05843d6..06550bce31 100644
--- a/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.h
+++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzertool.h
@@ -58,9 +58,10 @@ public:
// For testing.
QList<Diagnostic> diagnostics() const;
-
void startTool();
+ void handleWorkerStart(ProjectExplorer::RunWorker *runWorker);
+
void onEngineIsStarting();
void onNewDiagnosticsAvailable(const QList<Diagnostic> &diagnostics);
void onEngineFinished(bool success);