From 5e464155d9ebee2f339c4d16fbed3cc5d9b5c0d5 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 1 Sep 2021 15:40:17 +0200 Subject: [PATCH] QmlDesigner: Remove "layer.enabled" when deleting effect Task-number: QDS-3802 Change-Id: Ieb0e839e006c43be8f62318ffec06044eedefd78 Reviewed-by: Miikka Heikkinen Reviewed-by: Qt CI Bot --- .../designercore/model/qmlobjectnode.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index e437946346d..7975fb6d2ef 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -45,6 +45,8 @@ #include #endif +#include + #include namespace QmlDesigner { @@ -356,6 +358,16 @@ static void removeAliasExports(const QmlObjectNode &node) } +static void removeLayerEnabled(const ModelNode &node) +{ + QTC_ASSERT(node.isValid(), return ); + if (node.parentProperty().isValid() && node.parentProperty().name() == "layer.effect") { + ModelNode parent = node.parentProperty().parentModelNode(); + if (parent.isValid() && parent.hasProperty("layer.enabled")) + parent.removeProperty("layer.enabled"); + } +} + /*! Deletes this object's node and its dependencies from the model. Everything that belongs to this Object, the ModelNode, and ChangeOperations @@ -366,6 +378,7 @@ void QmlObjectNode::destroy() if (!isValid()) throw new InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); + removeLayerEnabled(modelNode()); removeAliasExports(modelNode()); for (QmlModelStateOperation stateOperation : allAffectingStatesOperations()) {