diff options
author | hjk <hjk@qt.io> | 2017-05-04 08:11:04 +0200 |
---|---|---|
committer | hjk <hjk@qt.io> | 2017-05-04 12:53:13 +0000 |
commit | fcdc9342b554d30b5323aa026fd55659565ef71c (patch) | |
tree | b2acf00c216c016873a5794c3d9de6e8a3f2dc4b | |
parent | 0e5fdb7fe3ecb9a059bed1b9bf29c21d1b7e0ef5 (diff) | |
download | qt-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.cpp | 2 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerruncontrol.cpp | 7 | ||||
-rw-r--r-- | src/plugins/debugger/debuggerruncontrol.h | 3 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runconfiguration.cpp | 3 | ||||
-rw-r--r-- | src/plugins/projectexplorer/runconfiguration.h | 1 |
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; |