Analyzer: Remove AnalyzerStartParameters from AnalyzerRunControl ctor

Change-Id: I0f7e982a9144469869e0c42daedfb411789511ca
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This commit is contained in:
hjk
2016-01-19 09:13:57 +01:00
parent 51f5b1e01b
commit abe08966a4
16 changed files with 65 additions and 66 deletions

View File

@@ -47,8 +47,7 @@ using namespace ProjectExplorer;
namespace Analyzer { namespace Analyzer {
AnalyzerRunControl::AnalyzerRunControl(const AnalyzerStartParameters &sp, AnalyzerRunControl::AnalyzerRunControl(RunConfiguration *runConfiguration, Core::Id runMode)
RunConfiguration *runConfiguration, Core::Id runMode)
: RunControl(runConfiguration, runMode) : RunControl(runConfiguration, runMode)
{ {
setIcon(Icons::ANALYZER_CONTROL_START); setIcon(Icons::ANALYZER_CONTROL_START);
@@ -61,9 +60,6 @@ AnalyzerRunControl::AnalyzerRunControl(const AnalyzerStartParameters &sp,
m_workingDirectory = runConfiguration->target()->project()->projectDirectory().toString(); m_workingDirectory = runConfiguration->target()->project()->projectDirectory().toString();
} }
setRunnable(AnalyzerRunnable(sp));
setConnection(AnalyzerConnection(sp));
connect(this, &AnalyzerRunControl::finished, connect(this, &AnalyzerRunControl::finished,
this, &AnalyzerRunControl::runControlFinished); this, &AnalyzerRunControl::runControlFinished);
connect(AnalyzerManager::stopAction(), &QAction::triggered, connect(AnalyzerManager::stopAction(), &QAction::triggered,

View File

@@ -46,10 +46,6 @@ class ANALYZER_EXPORT AnalyzerRunControl : public ProjectExplorer::RunControl
Q_OBJECT Q_OBJECT
public: public:
AnalyzerRunControl(const AnalyzerStartParameters &sp,
ProjectExplorer::RunConfiguration *runConfiguration,
Core::Id runMode);
AnalyzerRunControl(ProjectExplorer::RunConfiguration *runConfiguration, AnalyzerRunControl(ProjectExplorer::RunConfiguration *runConfiguration,
Core::Id runMode); Core::Id runMode);

View File

@@ -71,9 +71,8 @@ public:
// QmlProfilerRunControl // QmlProfilerRunControl
// //
QmlProfilerRunControl::QmlProfilerRunControl(const AnalyzerStartParameters &sp, QmlProfilerRunControl::QmlProfilerRunControl(RunConfiguration *runConfiguration)
RunConfiguration *runConfiguration) : AnalyzerRunControl(runConfiguration, ProjectExplorer::Constants::QML_PROFILER_RUN_MODE)
: AnalyzerRunControl(sp, runConfiguration, ProjectExplorer::Constants::QML_PROFILER_RUN_MODE)
, d(new QmlProfilerRunControlPrivate) , d(new QmlProfilerRunControlPrivate)
{ {
// Only wait 4 seconds for the 'Waiting for connection' on application output, then just try to connect // Only wait 4 seconds for the 'Waiting for connection' on application output, then just try to connect

View File

@@ -38,8 +38,7 @@ class QmlProfilerRunControl : public Analyzer::AnalyzerRunControl
Q_OBJECT Q_OBJECT
public: public:
QmlProfilerRunControl(const Analyzer::AnalyzerStartParameters &sp, QmlProfilerRunControl(ProjectExplorer::RunConfiguration *runConfiguration);
ProjectExplorer::RunConfiguration *runConfiguration);
~QmlProfilerRunControl(); ~QmlProfilerRunControl();
void registerProfilerStateManager( QmlProfilerStateManager *profilerState ); void registerProfilerStateManager( QmlProfilerStateManager *profilerState );

View File

@@ -215,7 +215,9 @@ AnalyzerRunControl *QmlProfilerTool::createRunControl(const AnalyzerStartParamet
settings->flushInterval() : 0); settings->flushInterval() : 0);
d->m_profilerConnections->setAggregateTraces(settings->aggregateTraces()); d->m_profilerConnections->setAggregateTraces(settings->aggregateTraces());
QmlProfilerRunControl *engine = new QmlProfilerRunControl(sp, runConfiguration); QmlProfilerRunControl *engine = new QmlProfilerRunControl(runConfiguration);
engine->setRunnable(AnalyzerRunnable(sp));
engine->setConnection(AnalyzerConnection(sp));
engine->registerProfilerStateManager(d->m_profilerState); engine->registerProfilerStateManager(d->m_profilerState);

View File

@@ -39,9 +39,8 @@ using namespace Analyzer;
using namespace Valgrind; using namespace Valgrind;
using namespace Valgrind::Internal; using namespace Valgrind::Internal;
CallgrindRunControl::CallgrindRunControl(const AnalyzerStartParameters &sp, CallgrindRunControl::CallgrindRunControl(ProjectExplorer::RunConfiguration *runConfiguration)
ProjectExplorer::RunConfiguration *runConfiguration) : ValgrindRunControl(runConfiguration, CALLGRIND_RUN_MODE)
: ValgrindRunControl(sp, runConfiguration, CALLGRIND_RUN_MODE)
, m_markAsPaused(false) , m_markAsPaused(false)
{ {
connect(&m_runner, &Callgrind::CallgrindRunner::finished, connect(&m_runner, &Callgrind::CallgrindRunner::finished,

View File

@@ -39,8 +39,7 @@ class CallgrindRunControl : public ValgrindRunControl
Q_OBJECT Q_OBJECT
public: public:
CallgrindRunControl(const Analyzer::AnalyzerStartParameters &sp, CallgrindRunControl(ProjectExplorer::RunConfiguration *runConfiguration);
ProjectExplorer::RunConfiguration *runConfiguration);
bool startEngine(); bool startEngine();

View File

@@ -116,8 +116,7 @@ public:
void doClear(bool clearParseData); void doClear(bool clearParseData);
void updateEventCombo(); void updateEventCombo();
ValgrindRunControl *createRunControl(const AnalyzerStartParameters &sp, ValgrindRunControl *createRunControl(RunConfiguration *runConfiguration = 0);
RunConfiguration *runConfiguration = 0);
signals: signals:
void cycleDetectionEnabled(bool enabled); void cycleDetectionEnabled(bool enabled);
@@ -510,16 +509,14 @@ CallgrindTool::~CallgrindTool()
delete d; delete d;
} }
ValgrindRunControl *CallgrindTool::createRunControl(const AnalyzerStartParameters &sp, ValgrindRunControl *CallgrindTool::createRunControl(RunConfiguration *runConfiguration)
RunConfiguration *runConfiguration)
{ {
return d->createRunControl(sp, runConfiguration); return d->createRunControl(runConfiguration);
} }
ValgrindRunControl *CallgrindToolPrivate::createRunControl(const AnalyzerStartParameters &sp, ValgrindRunControl *CallgrindToolPrivate::createRunControl(RunConfiguration *runConfiguration)
RunConfiguration *runConfiguration)
{ {
CallgrindRunControl *rc = new CallgrindRunControl(sp, runConfiguration); auto rc = new CallgrindRunControl(runConfiguration);
connect(rc, &CallgrindRunControl::parserDataReady, connect(rc, &CallgrindRunControl::parserDataReady,
this, &CallgrindToolPrivate::takeParserDataFromRunControl); this, &CallgrindToolPrivate::takeParserDataFromRunControl);

View File

@@ -48,8 +48,7 @@ public:
CallgrindTool(QObject *parent); CallgrindTool(QObject *parent);
~CallgrindTool(); ~CallgrindTool();
ValgrindRunControl *createRunControl(const Analyzer::AnalyzerStartParameters &sp, ValgrindRunControl *createRunControl(ProjectExplorer::RunConfiguration *runConfiguration = 0);
ProjectExplorer::RunConfiguration *runConfiguration = 0);
QWidget *createWidgets(); QWidget *createWidgets();
public slots: public slots:

View File

@@ -51,9 +51,8 @@ using namespace Valgrind::XmlProtocol;
namespace Valgrind { namespace Valgrind {
namespace Internal { namespace Internal {
MemcheckRunControl::MemcheckRunControl(const AnalyzerStartParameters &sp, MemcheckRunControl::MemcheckRunControl(RunConfiguration *runConfiguration, Core::Id runMode)
RunConfiguration *runConfiguration, Core::Id runMode) : ValgrindRunControl(runConfiguration, runMode)
: ValgrindRunControl(sp, runConfiguration, runMode)
{ {
connect(&m_parser, &XmlProtocol::ThreadedParser::error, connect(&m_parser, &XmlProtocol::ThreadedParser::error,
this, &MemcheckRunControl::parserError); this, &MemcheckRunControl::parserError);
@@ -129,9 +128,8 @@ QStringList MemcheckRunControl::suppressionFiles() const
return m_settings->suppressionFiles(); return m_settings->suppressionFiles();
} }
MemcheckWithGdbRunControl::MemcheckWithGdbRunControl(const AnalyzerStartParameters &sp, MemcheckWithGdbRunControl::MemcheckWithGdbRunControl(RunConfiguration *runConfiguration)
RunConfiguration *runConfiguration) : MemcheckRunControl(runConfiguration, MEMCHECK_WITH_GDB_RUN_MODE)
: MemcheckRunControl(sp, runConfiguration, MEMCHECK_WITH_GDB_RUN_MODE)
{ {
connect(&m_runner, &Memcheck::MemcheckRunner::started, connect(&m_runner, &Memcheck::MemcheckRunner::started,
this, &MemcheckWithGdbRunControl::startDebugger); this, &MemcheckWithGdbRunControl::startDebugger);

View File

@@ -40,8 +40,7 @@ class MemcheckRunControl : public ValgrindRunControl
Q_OBJECT Q_OBJECT
public: public:
MemcheckRunControl(const Analyzer::AnalyzerStartParameters &sp, MemcheckRunControl(ProjectExplorer::RunConfiguration *runConfiguration,
ProjectExplorer::RunConfiguration *runConfiguration,
Core::Id runMode); Core::Id runMode);
bool startEngine() override; bool startEngine() override;
@@ -69,8 +68,7 @@ class MemcheckWithGdbRunControl : public MemcheckRunControl
Q_OBJECT Q_OBJECT
public: public:
MemcheckWithGdbRunControl(const Analyzer::AnalyzerStartParameters &sp, MemcheckWithGdbRunControl(ProjectExplorer::RunConfiguration *runConfiguration);
ProjectExplorer::RunConfiguration *runConfiguration);
protected: protected:
QStringList toolArguments() const override; QStringList toolArguments() const override;

View File

@@ -423,8 +423,7 @@ QWidget *MemcheckTool::createWidgets()
return widget; return widget;
} }
MemcheckRunControl *MemcheckTool::createRunControl(const AnalyzerStartParameters &sp, MemcheckRunControl *MemcheckTool::createRunControl(RunConfiguration *runConfiguration,
RunConfiguration *runConfiguration,
Core::Id runMode) Core::Id runMode)
{ {
m_frameFinder->setFiles(runConfiguration ? runConfiguration->target() m_frameFinder->setFiles(runConfiguration ? runConfiguration->target()
@@ -432,9 +431,9 @@ MemcheckRunControl *MemcheckTool::createRunControl(const AnalyzerStartParameters
MemcheckRunControl *engine = 0; MemcheckRunControl *engine = 0;
if (runMode == MEMCHECK_RUN_MODE) if (runMode == MEMCHECK_RUN_MODE)
engine = new MemcheckRunControl(sp, runConfiguration, runMode); engine = new MemcheckRunControl(runConfiguration, runMode);
else else
engine = new MemcheckWithGdbRunControl(sp, runConfiguration); engine = new MemcheckWithGdbRunControl(runConfiguration);
connect(engine, &MemcheckRunControl::starting, this, &MemcheckTool::engineStarting); connect(engine, &MemcheckRunControl::starting, this, &MemcheckTool::engineStarting);
connect(engine, &MemcheckRunControl::parserError, this, &MemcheckTool::parserError); connect(engine, &MemcheckRunControl::parserError, this, &MemcheckTool::parserError);
connect(engine, &MemcheckRunControl::internalParserError, this, &MemcheckTool::internalParserError); connect(engine, &MemcheckRunControl::internalParserError, this, &MemcheckTool::internalParserError);

View File

@@ -85,8 +85,7 @@ public:
QWidget *createWidgets(); QWidget *createWidgets();
MemcheckRunControl *createRunControl(const Analyzer::AnalyzerStartParameters &sp, MemcheckRunControl *createRunControl(ProjectExplorer::RunConfiguration *runConfiguration,
ProjectExplorer::RunConfiguration *runConfiguration,
Core::Id runMode); Core::Id runMode);
private slots: private slots:

View File

@@ -49,9 +49,8 @@ using namespace ProjectExplorer;
namespace Valgrind { namespace Valgrind {
namespace Internal { namespace Internal {
ValgrindRunControl::ValgrindRunControl(const AnalyzerStartParameters &sp, ValgrindRunControl::ValgrindRunControl(RunConfiguration *runConfiguration, Core::Id runMode)
RunConfiguration *runConfiguration, Core::Id runMode) : AnalyzerRunControl(runConfiguration, runMode),
: AnalyzerRunControl(sp, runConfiguration, runMode),
m_settings(0), m_settings(0),
m_isStopping(false) m_isStopping(false)
{ {

View File

@@ -43,8 +43,7 @@ class ValgrindRunControl : public Analyzer::AnalyzerRunControl
Q_OBJECT Q_OBJECT
public: public:
ValgrindRunControl(const Analyzer::AnalyzerStartParameters &sp, ValgrindRunControl(ProjectExplorer::RunConfiguration *runConfiguration,
ProjectExplorer::RunConfiguration *runConfiguration,
Core::Id runMode); Core::Id runMode);
~ValgrindRunControl(); ~ValgrindRunControl();

View File

@@ -133,7 +133,10 @@ void ValgrindPlugin::extensionsInitialized()
auto cgWidgetCreator = [cgTool] { return cgTool->createWidgets(); }; auto cgWidgetCreator = [cgTool] { return cgTool->createWidgets(); };
auto cgRunControlCreator = [cgTool](const AnalyzerStartParameters &sp, auto cgRunControlCreator = [cgTool](const AnalyzerStartParameters &sp,
RunConfiguration *runConfiguration, Core::Id) { RunConfiguration *runConfiguration, Core::Id) {
return cgTool->createRunControl(sp, runConfiguration); auto runControl = cgTool->createRunControl(runConfiguration);
runControl->setRunnable(AnalyzerRunnable(sp));
runControl->setConnection(AnalyzerConnection(sp));
return runControl;
}; };
if (!Utils::HostOsInfo::isWindowsHost()) { if (!Utils::HostOsInfo::isWindowsHost()) {
@@ -141,8 +144,14 @@ void ValgrindPlugin::extensionsInitialized()
action->setActionId("Memcheck.Local"); action->setActionId("Memcheck.Local");
action->setToolId("Memcheck"); action->setToolId("Memcheck");
action->setWidgetCreator(mcWidgetCreator); action->setWidgetCreator(mcWidgetCreator);
action->setRunControlCreator(std::bind(&MemcheckTool::createRunControl, action->setRunControlCreator([mcTool](const AnalyzerStartParameters &sp,
mcTool, _1, _2, MEMCHECK_RUN_MODE)); ProjectExplorer::RunConfiguration *runConfig, Core::Id runMode)
{
auto runControl = mcTool->createRunControl(runConfig, runMode);
runControl->setRunnable(AnalyzerRunnable(sp));
runControl->setConnection(AnalyzerConnection(sp));
return runControl;
});
action->setToolMode(DebugMode); action->setToolMode(DebugMode);
action->setRunMode(MEMCHECK_RUN_MODE); action->setRunMode(MEMCHECK_RUN_MODE);
action->setText(tr("Valgrind Memory Analyzer")); action->setText(tr("Valgrind Memory Analyzer"));
@@ -156,8 +165,14 @@ void ValgrindPlugin::extensionsInitialized()
action->setActionId("MemcheckWithGdb.Local"); action->setActionId("MemcheckWithGdb.Local");
action->setToolId("MemcheckWithGdb"); action->setToolId("MemcheckWithGdb");
action->setWidgetCreator([mcgTool] { return mcgTool->createWidgets(); }); action->setWidgetCreator([mcgTool] { return mcgTool->createWidgets(); });
action->setRunControlCreator(std::bind(&MemcheckTool::createRunControl, action->setRunControlCreator([mcgTool](const AnalyzerStartParameters &sp,
mcgTool, _1, _2, MEMCHECK_WITH_GDB_RUN_MODE)); ProjectExplorer::RunConfiguration *runConfig, Core::Id runMode)
{
auto runControl = mcgTool->createRunControl(runConfig, runMode);
runControl->setRunnable(AnalyzerRunnable(sp));
runControl->setConnection(AnalyzerConnection(sp));
return runControl;
});
action->setToolMode(DebugMode); action->setToolMode(DebugMode);
action->setRunMode(MEMCHECK_WITH_GDB_RUN_MODE); action->setRunMode(MEMCHECK_WITH_GDB_RUN_MODE);
action->setText(tr("Valgrind Memory Analyzer with GDB")); action->setText(tr("Valgrind Memory Analyzer with GDB"));
@@ -190,12 +205,15 @@ void ValgrindPlugin::extensionsInitialized()
StartRemoteDialog dlg; StartRemoteDialog dlg;
if (dlg.exec() != QDialog::Accepted) if (dlg.exec() != QDialog::Accepted)
return; return;
AnalyzerStartParameters sp; ValgrindRunControl *rc = mcTool->createRunControl(0, MEMCHECK_RUN_MODE);
sp.connParams = dlg.sshParams();
sp.debuggee = dlg.executable();
sp.debuggeeArgs = dlg.arguments();
ValgrindRunControl *rc = mcTool->createRunControl(sp, 0, MEMCHECK_RUN_MODE);
QTC_ASSERT(rc, return); QTC_ASSERT(rc, return);
AnalyzerRunnable runnable;
runnable.debuggee = dlg.executable();
runnable.debuggeeArgs = dlg.arguments();
rc->setRunnable(runnable);
AnalyzerConnection connection;
connection.connParams = dlg.sshParams();
rc->setConnection(connection);
rc->setDisplayName(dlg.executable()); rc->setDisplayName(dlg.executable());
rc->setWorkingDirectory(dlg.workingDirectory()); rc->setWorkingDirectory(dlg.workingDirectory());
rc->setCustomStart(); rc->setCustomStart();
@@ -214,12 +232,15 @@ void ValgrindPlugin::extensionsInitialized()
StartRemoteDialog dlg; StartRemoteDialog dlg;
if (dlg.exec() != QDialog::Accepted) if (dlg.exec() != QDialog::Accepted)
return; return;
AnalyzerStartParameters sp; ValgrindRunControl *rc = cgTool->createRunControl(0);
sp.connParams = dlg.sshParams();
sp.debuggee = dlg.executable();
sp.debuggeeArgs = dlg.arguments();
ValgrindRunControl *rc = cgTool->createRunControl(sp, 0);
QTC_ASSERT(rc, return); QTC_ASSERT(rc, return);
AnalyzerRunnable runnable;
runnable.debuggee = dlg.executable();
runnable.debuggeeArgs = dlg.arguments();
rc->setRunnable(runnable);
AnalyzerConnection connection;
connection.connParams = dlg.sshParams();
rc->setConnection(connection);
rc->setDisplayName(dlg.executable()); rc->setDisplayName(dlg.executable());
rc->setWorkingDirectory(dlg.workingDirectory()); rc->setWorkingDirectory(dlg.workingDirectory());
rc->setCustomStart(); rc->setCustomStart();