From 95c4da7dd0d29a7955b2a83ec9fcdfe9dc71ce71 Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Fri, 29 May 2020 17:02:53 +0200 Subject: [PATCH] QmlDesigner: Dynamic properties in Bindind Editor Change-Id: Iaf0b78546905cacbc7e1a5524aaf918f253e0131 Reviewed-by: Thomas Hartmann --- .../bindingeditor/bindingeditor.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/plugins/qmldesigner/components/bindingeditor/bindingeditor.cpp b/src/plugins/qmldesigner/components/bindingeditor/bindingeditor.cpp index fe3871c6c16..82947e8c981 100644 --- a/src/plugins/qmldesigner/components/bindingeditor/bindingeditor.cpp +++ b/src/plugins/qmldesigner/components/bindingeditor/bindingeditor.cpp @@ -35,6 +35,9 @@ #include #include +#include +#include + namespace QmlDesigner { static BindingEditor *s_lastBindingEditor = nullptr; @@ -172,6 +175,26 @@ void BindingEditor::prepareBindings() binding.properties.append(QString::fromUtf8(propertyName)); } + //dynamic properties: + for (const BindingProperty &bindingProperty : objnode.bindingProperties()) { + if (bindingProperty.isValid()) { + if (bindingProperty.isDynamic()) { + if (bindingProperty.dynamicTypeName() == m_backendValueTypeName) { + binding.properties.append(QString::fromUtf8(bindingProperty.name())); + } + } + } + } + for (const VariantProperty &variantProperty : objnode.variantProperties()) { + if (variantProperty.isValid()) { + if (variantProperty.isDynamic()) { + if (variantProperty.dynamicTypeName() == m_backendValueTypeName) { + binding.properties.append(QString::fromUtf8(variantProperty.name())); + } + } + } + } + if (!binding.properties.isEmpty() && objnode.hasId()) { binding.item = objnode.displayName(); bindings.append(binding);