From 93685b97efe97616802f7483ebe1e37c8e8a653f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20P=C3=B6nitz?= Date: Wed, 18 Feb 2015 16:05:46 +0100 Subject: Compile fix after recent Analyzer core changes Change-Id: I100e75c526ff8609849526c3317a6d0a1658176b Reviewed-by: Christian Stenger Reviewed-by: Nikolai Kosjar --- .../clangstaticanalyzer/clangstaticanalyzerplugin.cpp | 17 ++++++++++++++--- plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp | 9 ++++----- plugins/clangstaticanalyzer/clangstaticanalyzertool.h | 12 +++++++----- .../clangstaticanalyzerunittests.cpp | 2 +- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp index 1c09b0039e5..55adb34d6db 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp @@ -125,16 +125,27 @@ bool ClangStaticAnalyzerPlugin::initializeEnterpriseFeatures(const QStringList & Q_UNUSED(arguments); Q_UNUSED(errorString); - m_analyzerTool = new ClangStaticAnalyzerTool(this); + auto tool = m_analyzerTool = new ClangStaticAnalyzerTool(this); addAutoReleasedObject(new ClangStaticAnalyzerRunControlFactory(m_analyzerTool)); addAutoReleasedObject(new ClangStaticAnalyzerOptionsPage); + auto toolStarter = [tool](StartMode mode) { return tool->startTool(mode); }; + auto widgetCreator = [tool] { return tool->createWidgets(); }; + auto runControlCreator = [tool](const AnalyzerStartParameters &sp, + ProjectExplorer::RunConfiguration *runConfiguration) { + return tool->createRunControl(sp, runConfiguration); + }; + const QString toolTip = tr("Clang Static Analyzer uses the analyzer from the clang project " "to find bugs."); AnalyzerAction *action = new AnalyzerAction(this); - action->setId("ClangStaticAnalyzer"); - action->setTool(m_analyzerTool); + action->setRunMode(ProjectExplorer::ClangStaticAnalyzerMode); + action->setToolId(ClangStaticAnalyzerToolId); + action->setActionId("ClangStaticAnalyzer"); + action->setWidgetCreator(widgetCreator); + action->setRunControlCreator(runControlCreator); + action->setToolStarter(toolStarter); action->setText(tr("Clang Static Analyzer")); action->setToolTip(toolTip); action->setMenuGroup(Constants::G_ANALYZER_TOOLS); diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp index 4fbc2aa5b55..c0e10fed3e9 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp @@ -49,7 +49,7 @@ namespace ClangStaticAnalyzer { namespace Internal { ClangStaticAnalyzerTool::ClangStaticAnalyzerTool(QObject *parent) - : IAnalyzerTool(parent) + : QObject(parent) , m_diagnosticModel(0) , m_diagnosticView(0) , m_goBack(0) @@ -57,8 +57,6 @@ ClangStaticAnalyzerTool::ClangStaticAnalyzerTool(QObject *parent) , m_running(false) { setObjectName(QLatin1String("ClangStaticAnalyzerTool")); - setRunMode(ProjectExplorer::ClangStaticAnalyzerMode); - setToolMode(AnyMode); } QWidget *ClangStaticAnalyzerTool::createWidgets() @@ -85,7 +83,8 @@ QWidget *ClangStaticAnalyzerTool::createWidgets() m_diagnosticView->setObjectName(QLatin1String("ClangStaticAnalyzerIssuesView")); m_diagnosticView->setWindowTitle(tr("Clang Static Analyzer Issues")); - QDockWidget *issuesDock = AnalyzerManager::createDockWidget(this, m_diagnosticView); + QDockWidget *issuesDock = AnalyzerManager::createDockWidget(ClangStaticAnalyzerToolId, + m_diagnosticView); issuesDock->show(); Utils::FancyMainWindow *mw = AnalyzerManager::mainWindow(); mw->splitDockWidget(mw->toolBarDockWidget(), issuesDock, Qt::Vertical); @@ -208,7 +207,7 @@ void ClangStaticAnalyzerTool::startTool(StartMode mode) m_projectInfoBeforeBuild = CppTools::CppModelManager::instance()->projectInfo(project); QTC_ASSERT(m_projectInfoBeforeBuild.isValid(), return); m_running = true; - ProjectExplorerPlugin::instance()->runProject(project, runMode()); + ProjectExplorerPlugin::runProject(project, ProjectExplorer::ClangStaticAnalyzerMode); } CppTools::ProjectInfo ClangStaticAnalyzerTool::projectInfoBeforeBuild() const diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzertool.h b/plugins/clangstaticanalyzer/clangstaticanalyzertool.h index 24c39e3b398..ba4f57020d0 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzertool.h +++ b/plugins/clangstaticanalyzer/clangstaticanalyzertool.h @@ -31,7 +31,9 @@ class ClangStaticAnalyzerDiagnosticModel; class ClangStaticAnalyzerDiagnosticView; class Diagnostic; -class ClangStaticAnalyzerTool : public Analyzer::IAnalyzerTool +const char ClangStaticAnalyzerToolId[] = "ClangStaticAnalyzer"; + +class ClangStaticAnalyzerTool : public QObject { Q_OBJECT @@ -44,15 +46,15 @@ public: bool isRunning() const { return m_running; } QList diagnostics() const; -signals: - void finished(); // For testing. - -private: QWidget *createWidgets(); Analyzer::AnalyzerRunControl *createRunControl(const Analyzer::AnalyzerStartParameters &sp, ProjectExplorer::RunConfiguration *runConfiguration); void startTool(Analyzer::StartMode mode); +signals: + void finished(); // For testing. + +private: void onEngineIsStarting(); void onNewDiagnosticsAvailable(const QList &diagnostics); void onEngineFinished(); diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp index 82c5ac1b292..318ff956378 100644 --- a/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp +++ b/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp @@ -81,7 +81,7 @@ void ClangStaticAnalyzerUnitTests::testProject() CppTools::Tests::ProjectOpenerAndCloser projectManager; const CppTools::ProjectInfo projectInfo = projectManager.open(projectFilePath, true); QVERIFY(projectInfo.isValid()); - AnalyzerManager::selectTool(m_analyzerTool, Analyzer::StartLocal); + AnalyzerManager::selectTool(ClangStaticAnalyzerToolId, Analyzer::StartLocal); AnalyzerManager::startTool(); if (m_analyzerTool->isRunning()) { QSignalSpy waiter(m_analyzerTool, SIGNAL(finished())); -- cgit v1.2.3