diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 1c00848b928..8d9e900313e 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -55,6 +55,7 @@ #include #include +#include #include #include @@ -1160,6 +1161,9 @@ WatchHandler::WatchHandler(DebuggerEngine *engine) m_contentsValid = true; // FIXME m_resetLocationScheduled = false; m_separatedView = new SeparatedView; + m_requestUpdateTimer = new QTimer(this); + m_requestUpdateTimer->setSingleShot(true); + connect(m_requestUpdateTimer, &QTimer::timeout, m_model, &WatchModel::updateRequested); } WatchHandler::~WatchHandler() @@ -1274,11 +1278,12 @@ void WatchHandler::resetValueCache() void WatchHandler::updateRequested() { - emit m_model->updateRequested(); + m_requestUpdateTimer->start(80); } void WatchHandler::updateFinished() { + m_requestUpdateTimer->stop(); emit m_model->updateFinished(); } diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h index d97dffd4703..4f898c39331 100644 --- a/src/plugins/debugger/watchhandler.h +++ b/src/plugins/debugger/watchhandler.h @@ -38,6 +38,10 @@ #include #include +QT_BEGIN_NAMESPACE +class QTimer; +QT_END_NAMESPACE + namespace Debugger { namespace Internal { @@ -260,6 +264,7 @@ private: WatchModel *m_model; // Owned. DebuggerEngine *m_engine; // Not owned. SeparatedView *m_separatedView; // Owned. + QTimer *m_requestUpdateTimer; // Owned. bool m_contentsValid; bool m_resetLocationScheduled;