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>
This commit is contained in:
hjk
2015-05-21 15:12:34 +02:00
parent 54430ae13a
commit 4dfb56bb10
3 changed files with 8 additions and 15 deletions

View File

@@ -1265,6 +1265,7 @@ void DebuggerEngine::setState(DebuggerState state, bool forced)
foreach (Breakpoint bp, breakHandler()->engineBreakpoints(this)) foreach (Breakpoint bp, breakHandler()->engineBreakpoints(this))
bp.notifyBreakpointReleased(); bp.notifyBreakpointReleased();
DebuggerToolTipManager::deregisterEngine(this); DebuggerToolTipManager::deregisterEngine(this);
d->m_memoryAgent.handleDebuggerFinished();
} }
showMessage(msg, LogDebug); showMessage(msg, LogDebug);

View File

@@ -88,8 +88,6 @@ MemoryAgent::MemoryAgent(DebuggerEngine *engine)
: QObject(engine), m_engine(engine) : QObject(engine), m_engine(engine)
{ {
QTC_CHECK(engine); QTC_CHECK(engine);
connect(engine, &DebuggerEngine::stateChanged,
this, &MemoryAgent::engineStateChanged);
connect(engine, &DebuggerEngine::stackFrameCompleted, connect(engine, &DebuggerEngine::stackFrameCompleted,
this, &MemoryAgent::updateContents); this, &MemoryAgent::updateContents);
} }
@@ -254,19 +252,13 @@ bool MemoryAgent::hasVisibleEditor() const
return false; return false;
} }
void MemoryAgent::engineStateChanged(Debugger::DebuggerState s) void MemoryAgent::handleDebuggerFinished()
{ {
switch (s) { foreach (const QPointer<IEditor> &editor, m_editors) {
case DebuggerFinished: if (editor) { // Prevent triggering updates, etc.
closeViews(); MemoryView::setBinEditorReadOnly(editor->widget(), true);
foreach (const QPointer<IEditor> &editor, m_editors) editor->widget()->disconnect(this);
if (editor) { // Prevent triggering updates, etc. }
MemoryView::setBinEditorReadOnly(editor->widget(), true);
editor->widget()->disconnect(this);
}
break;
default:
break;
} }
} }

View File

@@ -101,6 +101,7 @@ public slots:
void updateContents(); void updateContents();
void closeEditors(); void closeEditors();
void closeViews(); void closeViews();
void handleDebuggerFinished();
private slots: private slots:
void fetchLazyData(quint64 block); void fetchLazyData(quint64 block);
@@ -108,7 +109,6 @@ private slots:
void handleDataChanged(quint64 address, const QByteArray &data); void handleDataChanged(quint64 address, const QByteArray &data);
void handleWatchpointRequest(quint64 address, uint size); void handleWatchpointRequest(quint64 address, uint size);
void updateMemoryView(quint64 address, quint64 length); void updateMemoryView(quint64 address, quint64 length);
void engineStateChanged(Debugger::DebuggerState s);
private: private:
void connectBinEditorWidget(QWidget *w); void connectBinEditorWidget(QWidget *w);