QmlProfiler: Disable run controls after they are finished

Disabled runControls would still receive and send signals, confusing
the profiler state.

Also, connect lambdas with receiver argument where possible.

Change-Id: I0cd43456d3462efe402e9d68792b67314e9b6e0b
Task-number: QTCREATORBUG-16073
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This commit is contained in:
Ulf Hermann
2016-04-15 17:58:32 +02:00
parent 20110d1e36
commit 88476a1435
2 changed files with 4 additions and 3 deletions

View File

@@ -101,7 +101,7 @@ QmlProfilerRunControl::QmlProfilerRunControl(RunConfiguration *runConfiguration,
QmlProfilerRunControl::~QmlProfilerRunControl() QmlProfilerRunControl::~QmlProfilerRunControl()
{ {
if (d->m_profilerState) if (d->m_running && d->m_profilerState)
stop(); stop();
delete d; delete d;
} }

View File

@@ -333,12 +333,13 @@ AnalyzerRunControl *QmlProfilerTool::createRunControl(RunConfiguration *runConfi
} }
auto runControl = new QmlProfilerRunControl(runConfiguration, this); auto runControl = new QmlProfilerRunControl(runConfiguration, this);
connect(runControl, &RunControl::finished, [this, runControl] { connect(runControl, &RunControl::finished, this, [this, runControl] {
d->m_toolBusy = false; d->m_toolBusy = false;
updateRunActions(); updateRunActions();
disconnect(d->m_stopAction, &QAction::triggered, runControl, &QmlProfilerRunControl::stop);
}); });
connect(d->m_stopAction, &QAction::triggered, runControl, [runControl] { runControl->stop(); }); connect(d->m_stopAction, &QAction::triggered, runControl, &QmlProfilerRunControl::stop);
updateRunActions(); updateRunActions();
return runControl; return runControl;