summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-03-18 10:19:14 +0100
committerEike Ziller <eike.ziller@digia.com>2013-03-18 10:19:14 +0100
commit99b2eb1ca9f0515681bf949db0ab6650f857e82b (patch)
tree730a84b76b55e623ec331940631e247f55cc39df /src/plugins/debugger/qml/qmlv8debuggerclient.cpp
parent7a107e7d004610ee8332b122aeb8993e61056b23 (diff)
parente1aa32225865980992e79c53fdf3b40e0fcd0a86 (diff)
downloadqt-creator-99b2eb1ca9f0515681bf949db0ab6650f857e82b.tar.gz
Merge remote-tracking branch 'origin/2.7'
Conflicts: doc/src/debugger/qtquick-debugger-example.qdoc Change-Id: If9a6ac2db76773c50aae26c5156e6aa2603329b3
Diffstat (limited to 'src/plugins/debugger/qml/qmlv8debuggerclient.cpp')
-rw-r--r--src/plugins/debugger/qml/qmlv8debuggerclient.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
index b667cdd5b1..ce0ebf5660 100644
--- a/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
+++ b/src/plugins/debugger/qml/qmlv8debuggerclient.cpp
@@ -1640,6 +1640,15 @@ void QmlV8DebuggerClient::setCurrentFrameDetails(const QVariant &bodyVal, const
d->clearCache();
const int frameIndex = stackHandler->currentIndex();
+ QSet<QByteArray> expandedInames = watchHandler->expandedINames();
+ QHash<quint64, QByteArray> handlesToLookup;
+ // Store handles of all expanded watch data
+ foreach (const QByteArray &iname, expandedInames) {
+ const WatchData *wd = watchHandler->findData(iname);
+ if (!wd || !wd->isLocal())
+ continue;
+ handlesToLookup.insert(wd->id, iname);
+ }
watchHandler->removeAllData();
if (frameIndex < 0)
return;
@@ -1678,6 +1687,11 @@ void QmlV8DebuggerClient::setCurrentFrameDetails(const QVariant &bodyVal, const
d->scope(scopeIndex);
}
d->engine->gotoLocation(stackHandler->currentFrame());
+
+ // Expand watch data that were previously expanded
+ QHash<quint64, QByteArray>::const_iterator itEnd = handlesToLookup.end();
+ for (QHash<quint64, QByteArray>::const_iterator it = handlesToLookup.begin(); it != itEnd; ++it)
+ expandObject(it.value(), it.key());
emit stackFrameCompleted();
}