diff options
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp index 5b1f3171ad..549db1b789 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp @@ -872,6 +872,10 @@ void QuickItemNodeInstance::setPropertyVariant(const PropertyName &name, const Q void QuickItemNodeInstance::setPropertyBinding(const PropertyName &name, const QString &expression) { + static QList<PropertyName> anchorsTargets = {"anchors.top", + "acnhors.bottom", + "anchors.left", + "achors.right"}; if (ignoredProperties().contains(name)) return; @@ -883,7 +887,15 @@ void QuickItemNodeInstance::setPropertyBinding(const PropertyName &name, const Q markRepeaterParentDirty(); - ObjectNodeInstance::setPropertyBinding(name, expression); + if (anchorsTargets.contains(name)) { + //When resolving anchor targets we have to provide the root context the ids are defined in. + QmlPrivateGate::setPropertyBinding(object(), + context()->engine()->rootContext(), + name, + expression); + } else { + ObjectNodeInstance::setPropertyBinding(name, expression); + } refresh(); |