From 725d8dbfc6f298934f2b114f994eefea26e10e79 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Thu, 18 Jun 2009 12:37:04 +0200 Subject: [PATCH] debugger: Prevent updateWatchData from being called multiple times. Each calls to fetchMore() was triggering an updateWatchData, and that can happen several times per user interaction. --- src/plugins/debugger/watchhandler.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index f9ae90d9cfe..21a09cc058e 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -81,16 +81,16 @@ static int generationCounter = 0; class WatchItem : public WatchData { public: - WatchItem() { parent = 0; fetched = 0; } + WatchItem() { parent = 0; fetchedTriggered = 0; } WatchItem(const WatchData &data) : WatchData(data) - { parent = 0; fetched = 0; } + { parent = 0; fetchedTriggered = 0; } void setData(const WatchData &data) { static_cast<WatchData &>(*this) = data; } WatchItem *parent; - bool fetched; // children fetch has been triggered + bool fetchedTriggered; // children fetch has been triggered QList<WatchItem *> children; // fetched children }; @@ -309,7 +309,7 @@ WatchModel::WatchModel(WatchHandler *handler, WatchType type) item->childCount = 1; item->state = 0; item->parent = m_root; - item->fetched = true; + item->fetchedTriggered = true; m_root->children.append(item); } @@ -501,14 +501,15 @@ static QString niceType(QString type) bool WatchModel::canFetchMore(const QModelIndex &index) const { - return index.isValid() && !watchItem(index)->fetched; + return index.isValid() && !watchItem(index)->fetchedTriggered; } void WatchModel::fetchMore(const QModelIndex &index) { QTC_ASSERT(index.isValid(), return); - QTC_ASSERT(!watchItem(index)->fetched, return); + QTC_ASSERT(!watchItem(index)->fetchedTriggered, return); if (WatchItem *item = watchItem(index)) { + item->fetchedTriggered = true; WatchData data = *item; data.setChildrenNeeded(); emit m_handler->watchDataUpdateNeeded(data); -- GitLab