aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/qml/qmlengine.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2018-07-10 07:44:53 +0200
committerEike Ziller <eike.ziller@qt.io>2018-07-10 07:44:53 +0200
commitd09b71d260c791816c7d6a73d6b7ab801f22865d (patch)
tree673eda244852e3f8d88f1abff5d6955050cad398 /src/plugins/debugger/qml/qmlengine.cpp
parentd20464d56f81d0524cb71b263c76e748832af0f8 (diff)
parent3300182d405bffe062a0f2be900f35822a9e20b0 (diff)
Merge remote-tracking branch 'origin/4.7'
Conflicts: qbs/modules/qtc/qtc.qbs qtcreator.pri src/plugins/android/androiddebugsupport.cpp Change-Id: I01c4880850ad25432a65bb32849365d2aeb0756f
Diffstat (limited to 'src/plugins/debugger/qml/qmlengine.cpp')
-rw-r--r--src/plugins/debugger/qml/qmlengine.cpp23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index a59b35c393..ef6d38650f 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -138,6 +138,12 @@ struct LookupData
typedef QHash<int, LookupData> LookupItems; // id -> (iname, exp)
+static void setWatchItemHasChildren(WatchItem *item, bool hasChildren)
+{
+ item->setHasChildren(hasChildren);
+ item->valueEditable = !hasChildren;
+}
+
class QmlEnginePrivate : public QmlDebugClient
{
public:
@@ -1311,7 +1317,7 @@ void QmlEnginePrivate::handleEvaluateExpression(const QVariantMap &response,
if (success) {
item->type = body.type;
item->value = body.value.toString();
- item->setHasChildren(body.hasChildren());
+ setWatchItemHasChildren(item, body.hasChildren());
} else {
//Do not set type since it is unknown
item->setError(body.value.toString());
@@ -2156,11 +2162,11 @@ void QmlEnginePrivate::handleFrame(const QVariantMap &response)
item->id = objectData.handle;
item->type = objectData.type;
item->value = objectData.value.toString();
- item->setHasChildren(objectData.hasChildren());
+ setWatchItemHasChildren(item, objectData.hasChildren());
// In case of global object, we do not get children
// Set children nevertheless and query later.
if (item->value == "global") {
- item->setHasChildren(true);
+ setWatchItemHasChildren(item, true);
item->id = 0;
}
watchHandler->insertItem(item);
@@ -2244,10 +2250,13 @@ void QmlEnginePrivate::handleScope(const QVariantMap &response)
item->id = localData.handle;
item->type = localData.type;
item->value = localData.value.toString();
- item->setHasChildren(localData.hasChildren());
+ setWatchItemHasChildren(item.get(), 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});
}
@@ -2387,7 +2396,7 @@ void QmlEnginePrivate::insertSubItems(WatchItem *parent, const QVariantList &pro
item->value = propertyData.value.toString();
if (item->type.isEmpty() || expandedINames.contains(item->iname))
itemsToLookup.insert(propertyData.handle, {item->iname, item->name, item->exp});
- item->setHasChildren(propertyData.hasChildren());
+ setWatchItemHasChildren(item.get(), propertyData.hasChildren());
parent->appendChild(item.release());
}
@@ -2443,7 +2452,7 @@ void QmlEnginePrivate::handleLookup(const QVariantMap &response)
item->type = bodyObjectData.type;
item->value = bodyObjectData.value.toString();
- item->setHasChildren(bodyObjectData.hasChildren());
+ setWatchItemHasChildren(item, bodyObjectData.hasChildren());
insertSubItems(item, bodyObjectData.properties);
engine->watchHandler()->insertItem(item);