From 4dfb56bb107dea165f60bcc1e198dc02eb79c59e Mon Sep 17 00:00:00 2001 From: hjk <hjk@theqtcompany.com> Date: Thu, 21 May 2015 15:12:34 +0200 Subject: [PATCH] Debugger: Directly tell memory agents about finishing Change-Id: I79a718f45835a709daa37dd785ed718c3743d77e Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com> Reviewed-by: David Schulz <david.schulz@theqtcompany.com> --- src/plugins/debugger/debuggerengine.cpp | 1 + src/plugins/debugger/memoryagent.cpp | 20 ++++++-------------- src/plugins/debugger/memoryagent.h | 2 +- 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 1ec592bc81..a2d293be67 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -1265,6 +1265,7 @@ void DebuggerEngine::setState(DebuggerState state, bool forced) foreach (Breakpoint bp, breakHandler()->engineBreakpoints(this)) bp.notifyBreakpointReleased(); DebuggerToolTipManager::deregisterEngine(this); + d->m_memoryAgent.handleDebuggerFinished(); } showMessage(msg, LogDebug); diff --git a/src/plugins/debugger/memoryagent.cpp b/src/plugins/debugger/memoryagent.cpp index 24c41da594..66904783ba 100644 --- a/src/plugins/debugger/memoryagent.cpp +++ b/src/plugins/debugger/memoryagent.cpp @@ -88,8 +88,6 @@ MemoryAgent::MemoryAgent(DebuggerEngine *engine) : QObject(engine), m_engine(engine) { QTC_CHECK(engine); - connect(engine, &DebuggerEngine::stateChanged, - this, &MemoryAgent::engineStateChanged); connect(engine, &DebuggerEngine::stackFrameCompleted, this, &MemoryAgent::updateContents); } @@ -254,19 +252,13 @@ bool MemoryAgent::hasVisibleEditor() const return false; } -void MemoryAgent::engineStateChanged(Debugger::DebuggerState s) +void MemoryAgent::handleDebuggerFinished() { - switch (s) { - case DebuggerFinished: - closeViews(); - foreach (const QPointer<IEditor> &editor, m_editors) - if (editor) { // Prevent triggering updates, etc. - MemoryView::setBinEditorReadOnly(editor->widget(), true); - editor->widget()->disconnect(this); - } - break; - default: - break; + foreach (const QPointer<IEditor> &editor, m_editors) { + if (editor) { // Prevent triggering updates, etc. + MemoryView::setBinEditorReadOnly(editor->widget(), true); + editor->widget()->disconnect(this); + } } } diff --git a/src/plugins/debugger/memoryagent.h b/src/plugins/debugger/memoryagent.h index 33386f126e..a2be79fce5 100644 --- a/src/plugins/debugger/memoryagent.h +++ b/src/plugins/debugger/memoryagent.h @@ -101,6 +101,7 @@ public slots: void updateContents(); void closeEditors(); void closeViews(); + void handleDebuggerFinished(); private slots: void fetchLazyData(quint64 block); @@ -108,7 +109,6 @@ private slots: void handleDataChanged(quint64 address, const QByteArray &data); void handleWatchpointRequest(quint64 address, uint size); void updateMemoryView(quint64 address, quint64 length); - void engineStateChanged(Debugger::DebuggerState s); private: void connectBinEditorWidget(QWidget *w); -- GitLab