diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/debugger/qml/qmlcppengine.cpp | 9 | ||||
-rw-r--r-- | src/plugins/debugger/stackhandler.cpp | 1 | ||||
-rw-r--r-- | src/plugins/debugger/stackhandler.h | 3 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp index ba2f7aaa0c..c1c26576d2 100644 --- a/src/plugins/debugger/qml/qmlcppengine.cpp +++ b/src/plugins/debugger/qml/qmlcppengine.cpp @@ -149,9 +149,9 @@ QmlCppEngine::QmlCppEngine(const DebuggerStartParameters &sp, } d->m_activeEngine = d->m_cppEngine; - connect(d->m_cppEngine->stackHandler()->model(), SIGNAL(modelReset()), + connect(d->m_cppEngine->stackHandler(), SIGNAL(stackChanged()), d, SLOT(cppStackChanged()), Qt::QueuedConnection); - connect(d->m_qmlEngine->stackHandler()->model(), SIGNAL(modelReset()), + connect(d->m_qmlEngine->stackHandler(), SIGNAL(stackChanged()), d, SLOT(qmlStackChanged()), Qt::QueuedConnection); connect(d->m_cppEngine, SIGNAL(stackFrameCompleted()), this, SIGNAL(stackFrameCompleted())); connect(d->m_cppEngine, SIGNAL(requestRemoteSetup()), this, SIGNAL(requestRemoteSetup())); @@ -195,6 +195,9 @@ void QmlCppEngine::fetchDisassembler(DisassemblerAgent *da) void QmlCppEngine::activateFrame(int index) { + if (state() != InferiorStopOk && state() != InferiorUnrunnable) + return; + if (index >= d->m_stackBoundary) d->m_qmlEngine->activateFrame(index - d->m_stackBoundary); else @@ -681,6 +684,8 @@ void QmlCppEngine::resetLocation() d->m_qmlEngine->resetLocation(); if (d->m_cppEngine) d->m_cppEngine->resetLocation(); + + DebuggerEngine::resetLocation(); } DebuggerEngine *QmlCppEngine::cppEngine() const diff --git a/src/plugins/debugger/stackhandler.cpp b/src/plugins/debugger/stackhandler.cpp index 3c35489269..433e377ebe 100644 --- a/src/plugins/debugger/stackhandler.cpp +++ b/src/plugins/debugger/stackhandler.cpp @@ -197,6 +197,7 @@ void StackHandler::setFrames(const StackFrames &frames, bool canExpand) if (m_currentIndex >= m_stackFrames.size()) m_currentIndex = m_stackFrames.size() - 1; reset(); + emit stackChanged(); } const StackFrames &StackHandler::frames() const diff --git a/src/plugins/debugger/stackhandler.h b/src/plugins/debugger/stackhandler.h index 89b6c3db86..548a74ccce 100644 --- a/src/plugins/debugger/stackhandler.h +++ b/src/plugins/debugger/stackhandler.h @@ -85,6 +85,9 @@ public: void scheduleResetLocation(); void resetLocation(); +signals: + void stackChanged(); + private: // QAbstractTableModel int rowCount(const QModelIndex &parent) const; |