diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2018-07-09 12:42:54 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2018-07-09 12:31:51 +0000 |
commit | 126030d079b7309a9487cd4138e40da49e617341 (patch) | |
tree | 64d06dda520362cb549f4078eef8cfb1dd2d53d5 | |
parent | 7442790934c66e776f30a60a51048338c055928a (diff) |
QML Debugger: Make sure to re-fetch expanded properties on update
If an expanded object is updated we typically just get the ref for it.
If we leave the tree item at "wantsChildren", the debugger will think
that the update fails and "adjust" the "child expectation" to none.
Fetching the children right away takes care of this.
Task-number: QTCREATORBUG-20736
Change-Id: I1b3725e7106a563198962915cbcab8f68ef741a6
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r-- | src/plugins/debugger/qml/qmlengine.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index b489de5754..9f5a30315f 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -2247,7 +2247,10 @@ void QmlEnginePrivate::handleScope(const QVariantMap &response) item->setHasChildren(localData.hasChildren()); if (localData.value.isValid() || item->wantsChildren || localData.expectedProperties == 0) { - engine->watchHandler()->insertItem(item.release()); + WatchHandler *watchHander = engine->watchHandler(); + if (watchHander->isExpandedIName(item->iname)) + itemsToLookup.insert(int(item->id), {item->iname, item->name, item->exp}); + watchHander->insertItem(item.release()); } else { itemsToLookup.insert(int(item->id), {item->iname, item->name, item->exp}); } |