Debugger: Normalize some state handling

Remove some now-unusual connection to RunControl::finished
and use a finished() callback in the ToolRunner implementation
instead.

Change-Id: Ieddf05a2258d9a300ac50a739d77d9cfaee10ca6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
hjk
2017-05-04 08:11:04 +02:00
parent 0e5fdb7fe3
commit fcdc9342b5
5 changed files with 7 additions and 9 deletions

View File

@@ -2957,6 +2957,8 @@ void DebuggerPluginPrivate::runControlStarted(DebuggerEngine *engine)
void DebuggerPluginPrivate::runControlFinished(DebuggerEngine *engine)
{
if (engine)
engine->handleFinished();
if (m_shuttingDown)
return;
showStatusMessage(tr("Debugger finished."));

View File

@@ -538,9 +538,6 @@ void DebuggerRunTool::setRunParameters(const DebuggerRunParameters &rp, QString
}
m_engine->setRunTool(this);
connect(runControl(), &RunControl::finished,
this, &DebuggerRunTool::handleFinished);
}
DebuggerRunTool::~DebuggerRunTool()
@@ -554,11 +551,9 @@ DebuggerRunTool::~DebuggerRunTool()
}
}
void DebuggerRunTool::handleFinished()
void DebuggerRunTool::onFinished()
{
appendMessage(tr("Debugging has finished") + '\n', NormalMessageFormat);
if (m_engine)
m_engine->handleFinished();
runControlFinished(m_engine);
}

View File

@@ -64,8 +64,7 @@ public:
void start() override;
void stop() override;
void onTargetFailure() override;
void handleFinished();
void onFinished() override;
void startFailed();
void notifyEngineRemoteServerRunning(const QByteArray &msg, int pid);

View File

@@ -730,6 +730,7 @@ void RunControlPrivate::initiateStop()
void RunControlPrivate::onToolStopped()
{
toolRunner->onStop();
checkState(State::ToolStopping);
setState(State::TargetStopping);
targetRunner->stop();
@@ -742,6 +743,7 @@ void RunControlPrivate::onTargetStopped()
QTC_CHECK(applicationProcessHandle.isValid());
q->setApplicationProcessHandle(Utils::ProcessHandle());
toolRunner->onFinished();
targetRunner->onFinished();
}
@@ -1356,7 +1358,6 @@ void ToolRunner::reportStopFailed(const QString &msg)
void ToolRunner::reportStopped()
{
onStop();
m_runControl->d->onToolStopped();
}

View File

@@ -528,6 +528,7 @@ public:
virtual void onStop() {}
virtual void onToolFailure() {}
virtual void onTargetFailure() {}
virtual void onFinished() {}
private:
QPointer<RunControl> m_runControl;