aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp')
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
index 33bc2ee156..7557e87cce 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
@@ -612,6 +612,18 @@ void QuickItemNodeInstance::updateAllDirtyNodesRecursive(QQuickItem *parentItem)
updateDirtyNode(parentItem);
}
+void QuickItemNodeInstance::setAllNodesDirtyRecursive(QQuickItem *parentItem) const
+{
+#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
+ Q_UNUSED(parentItem)
+#else
+ const QList<QQuickItem *> children = parentItem->childItems();
+ for (QQuickItem *childItem : children)
+ setAllNodesDirtyRecursive(childItem);
+ DesignerSupport::addDirty(parentItem, QQuickDesignerSupport::Content);
+#endif
+}
+
static inline bool isRectangleSane(const QRectF &rect)
{
return rect.isValid() && (rect.width() < 10000) && (rect.height() < 10000);
@@ -813,6 +825,9 @@ void QuickItemNodeInstance::setPropertyVariant(const PropertyName &name, const Q
if (name == "y")
m_y = value.toDouble();
+ if (name == "layer.enabled" || name == "layer.effect")
+ setAllNodesDirtyRecursive(quickItem());
+
ObjectNodeInstance::setPropertyVariant(name, value);
refresh();
@@ -882,6 +897,9 @@ void QuickItemNodeInstance::resetProperty(const PropertyName &name)
if (name == "y")
m_y = 0.0;
+ if (name == "layer.enabled" || name == "layer.effect")
+ setAllNodesDirtyRecursive(quickItem());
+
DesignerSupport::resetAnchor(quickItem(), QString::fromUtf8(name));
if (name == "anchors.fill") {