diff --git a/src/plugins/debugger/gdb/pythongdbengine.cpp b/src/plugins/debugger/gdb/pythongdbengine.cpp index 24ec4c534573ed699e37769fc3531f4c40ec620e..93226f3a4102725627065ab02e9bd9f57cc18538 100644 --- a/src/plugins/debugger/gdb/pythongdbengine.cpp +++ b/src/plugins/debugger/gdb/pythongdbengine.cpp @@ -50,6 +50,7 @@ void GdbEngine::updateLocalsPython(const QByteArray &varList) PRECONDITION; m_processedNames.clear(); + manager()->watchHandler()->beginCycle(false); //m_toolTipExpression.clear(); WatchHandler *handler = m_manager->watchHandler(); diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 516edb06ccacddc10da73961cb4b862e32ac0dc9..35a9545c7b8555f808ed395765379519e91cec6b 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -397,10 +397,11 @@ void WatchModel::emitAllChanged() emit layoutChanged(); } -void WatchModel::beginCycle() +void WatchModel::beginCycle(bool clearFetchTriggered) { - m_fetchTriggered.clear(); emit enableUpdates(false); + if (clearFetchTriggered) + m_fetchTriggered.clear(); } void WatchModel::endCycle() @@ -1192,12 +1193,12 @@ WatchHandler::WatchHandler(DebuggerManager *manager) SIGNAL(triggered()), this, SLOT(emitAllChanged())); } -void WatchHandler::beginCycle() +void WatchHandler::beginCycle(bool clearFetchTriggered) { ++generationCounter; - m_locals->beginCycle(); - m_watchers->beginCycle(); - m_tooltips->beginCycle(); + m_locals->beginCycle(clearFetchTriggered); + m_watchers->beginCycle(clearFetchTriggered); + m_tooltips->beginCycle(clearFetchTriggered); } void WatchHandler::endCycle() diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h index 15f4a56569bdde40085b6b52a416d45070ff0cc6..1526b82b47e283d7875b003f165a9f3cd9b8d92c 100644 --- a/src/plugins/debugger/watchhandler.h +++ b/src/plugins/debugger/watchhandler.h @@ -225,7 +225,7 @@ private: void emitDataChanged(int column, const QModelIndex &parentIndex = QModelIndex()); - void beginCycle(); // called at begin of updateLocals() cycle + void beginCycle(bool clearFetchTriggered); // called at begin of updateLocals() cycle void endCycle(); // called after all results have been received friend QDebug operator<<(QDebug d, const WatchModel &m); @@ -266,7 +266,9 @@ public: Q_SLOT void removeWatchExpression(); Q_SLOT void removeWatchExpression(const QString &exp); Q_SLOT void emitAllChanged(); - void beginCycle(); // called at begin of updateLocals() cycle + + // called at begin of updateLocals() cycle + void beginCycle(bool clearFetchTriggered = true); void updateWatchers(); // called after locals are fetched void endCycle(); // called after all results have been received void showEditValue(const WatchData &data);