summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Pönitz <andre.poenitz@theqtcompany.com>2015-02-18 16:05:46 +0100
committerNikolai Kosjar <nikolai.kosjar@theqtcompany.com>2015-02-19 10:14:28 +0200
commit93685b97efe97616802f7483ebe1e37c8e8a653f (patch)
tree2f4695c778405b30245e5493c2b7a0f2e080b176
parent0ece47de90734a041a6c5524129661e62f53b211 (diff)
downloadqt-creator-93685b97efe97616802f7483ebe1e37c8e8a653f.tar.gz
Compile fix after recent Analyzer core changes
Change-Id: I100e75c526ff8609849526c3317a6d0a1658176b Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp17
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzertool.cpp9
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzertool.h12
-rw-r--r--plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp2
4 files changed, 26 insertions, 14 deletions
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerplugin.cpp
index 1c09b0039e..55adb34d6d 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 4fbc2aa5b5..c0e10fed3e 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 24c39e3b39..ba4f57020d 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<Diagnostic> 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<Diagnostic> &diagnostics);
void onEngineFinished();
diff --git a/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp b/plugins/clangstaticanalyzer/clangstaticanalyzerunittests.cpp
index 82c5ac1b29..318ff95637 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()));