summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2017-05-04 08:11:04 +0200
committerhjk <hjk@qt.io>2017-05-04 12:53:13 +0000
commitfcdc9342b554d30b5323aa026fd55659565ef71c (patch)
treeb2acf00c216c016873a5794c3d9de6e8a3f2dc4b
parent0e5fdb7fe3ecb9a059bed1b9bf29c21d1b7e0ef5 (diff)
downloadqt-creator-fcdc9342b554d30b5323aa026fd55659565ef71c.tar.gz
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>
-rw-r--r--src/plugins/debugger/debuggerplugin.cpp2
-rw-r--r--src/plugins/debugger/debuggerruncontrol.cpp7
-rw-r--r--src/plugins/debugger/debuggerruncontrol.h3
-rw-r--r--src/plugins/projectexplorer/runconfiguration.cpp3
-rw-r--r--src/plugins/projectexplorer/runconfiguration.h1
5 files changed, 7 insertions, 9 deletions
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index 318e75160d..c712f8246b 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -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."));
diff --git a/src/plugins/debugger/debuggerruncontrol.cpp b/src/plugins/debugger/debuggerruncontrol.cpp
index 04f8474143..38775f4b25 100644
--- a/src/plugins/debugger/debuggerruncontrol.cpp
+++ b/src/plugins/debugger/debuggerruncontrol.cpp
@@ -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);
}
diff --git a/src/plugins/debugger/debuggerruncontrol.h b/src/plugins/debugger/debuggerruncontrol.h
index f6fb2743fc..65e13e9cf0 100644
--- a/src/plugins/debugger/debuggerruncontrol.h
+++ b/src/plugins/debugger/debuggerruncontrol.h
@@ -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);
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 4a448e9094..5215de6324 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -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();
}
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index 1927922de8..cc7298ac98 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -528,6 +528,7 @@ public:
virtual void onStop() {}
virtual void onToolFailure() {}
virtual void onTargetFailure() {}
+ virtual void onFinished() {}
private:
QPointer<RunControl> m_runControl;