diff options
author | Miguel Costa <miguel.costa@qt.io> | 2023-11-24 12:16:05 +0100 |
---|---|---|
committer | Miguel Costa <miguel.costa@qt.io> | 2023-11-28 09:49:44 +0000 |
commit | af573bda2f55b8eeb4d5a3a217efad494a204bb8 (patch) | |
tree | ed1ab0e4973bf880135dee09d733b5a162420a3f | |
parent | 39410db954214362df676ef6ec1e27c706fc58e6 (diff) |
Fix QML object watch not expanding property list
Amends d065e67d7f3f6d0085e10658422f8c821c296891
Fixes: QTVSADDINBUG-1138
Change-Id: Ia283dae959f9a1a06b0a05ff3aadd3161cad83ff
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
-rw-r--r-- | QtVsTools.Package/QML/Debugging/AD7/QmlDebugAD7Property.cs | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/QtVsTools.Package/QML/Debugging/AD7/QmlDebugAD7Property.cs b/QtVsTools.Package/QML/Debugging/AD7/QmlDebugAD7Property.cs index ec8f4784..14f9dbda 100644 --- a/QtVsTools.Package/QML/Debugging/AD7/QmlDebugAD7Property.cs +++ b/QtVsTools.Package/QML/Debugging/AD7/QmlDebugAD7Property.cs @@ -66,16 +66,11 @@ namespace QtVsTools.Qml.Debug.AD7 Parent = parent; JsValue = value; - Children = new SortedDictionary<string, Property>(); - if (Parent?.JsValue is JsObject {IsArray: true} jsObject) { - Name = $"[{JsValue.Name}]"; - foreach (JsValue objProp in jsObject.Properties.Where(x => x.HasData)) { - Children[GetChildKey(objProp.Name)] - = Create(StackFrame, ScopeNumber, objProp, this); - } - } else { - Name = JsValue.Name; - } + Name = Parent?.JsValue switch + { + JsObject { IsArray: true } => $"[{JsValue.Name}]", + _ => JsValue.Name + }; var nameParts = new Stack<string>(new[] { Name }); for (var p = Parent; p != null && !string.IsNullOrEmpty(p.Name); p = p.Parent) { @@ -88,6 +83,14 @@ namespace QtVsTools.Qml.Debug.AD7 Type = JsValue.Type.ToString(); Value = JsValue.ToString(); + Children = new(); + if (JsValue is JsObject { Properties: not null } jsObject) { + foreach (JsValue objProp in jsObject.Properties.Where(x => x.HasData)) { + Children[GetChildKey(objProp.Name)] + = Create(StackFrame, ScopeNumber, objProp, this); + } + } + return true; } |