From 66e491be14ca4d764ddead9ddc9247ed1bbc12e4 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 10 Dec 2020 12:24:57 +0200 Subject: [PATCH] QmlDesigner: Reset puppet if shader property changes Puppet reset is needed as changing shader makes no difference if done after material initialization. Change-Id: I67b0b4cca28b4636cc9acb1cd7446dfabc10e2ee Fixes: QDS-3300 Reviewed-by: Mahmoud Badri Reviewed-by: Thomas Hartmann --- .../designercore/instances/nodeinstanceview.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp index 00f3306c6fb..a28c946101e 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceview.cpp @@ -465,6 +465,8 @@ void NodeInstanceView::propertiesAboutToBeRemoved(const QList& resetVerticalAnchors(property.parentModelNode()); } else if (name == "anchors.baseline") { resetVerticalAnchors(property.parentModelNode()); + } else if (name == "shader" && property.parentModelNode().isSubclassOf("QtQuick3D.Shader")) { + m_resetTimer.start(); } } @@ -513,6 +515,13 @@ void NodeInstanceView::variantPropertiesChanged(const QList& pr QTC_ASSERT(m_nodeInstanceServer, return); updatePosition(propertyList); m_nodeInstanceServer->changePropertyValues(createChangeValueCommand(propertyList)); + + for (const auto &property : propertyList) { + if (property.name() == "shader" && property.parentModelNode().isSubclassOf("QtQuick3D.Shader")) { + m_resetTimer.start(); + break; + } + } } /*! Notifies the view that the property parent of the model node \a node has