From e70f909bcf01aed5b3369c0d307a10319b529adb Mon Sep 17 00:00:00 2001 From: Mahmoud Badri Date: Wed, 7 Dec 2022 23:16:50 +0200 Subject: [PATCH] QmlDesigner: Update texture editor and browser after source reset Fixes: QDS-8520 Change-Id: I9ceca64d75ef1c41633a89a79748265beecd16ea Reviewed-by: Miikka Heikkinen Reviewed-by: Ali Kianian --- .../components/materialbrowser/materialbrowserview.cpp | 8 ++++++++ .../components/materialbrowser/materialbrowserview.h | 1 + .../components/textureeditor/textureeditorview.cpp | 8 +++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp index 99f858744d0..199852dc1af 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp @@ -334,6 +334,14 @@ void MaterialBrowserView::variantPropertiesChanged(const QList } } +void MaterialBrowserView::propertiesRemoved(const QList &propertyList) +{ + for (const AbstractProperty &prop : propertyList) { + if (isTexture(prop.parentModelNode()) && prop.name() == "source") + m_widget->materialBrowserTexturesModel()->updateTextureSource(prop.parentModelNode()); + } +} + void MaterialBrowserView::nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h index 22e6c6a8d8f..0c1d216aa33 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h @@ -37,6 +37,7 @@ public: const QList &lastSelectedNodeList) override; void modelNodePreviewPixmapChanged(const ModelNode &node, const QPixmap &pixmap) override; void variantPropertiesChanged(const QList &propertyList, PropertyChangeFlags propertyChange) override; + void propertiesRemoved(const QList &propertyList) override; void nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange) override; diff --git a/src/plugins/qmldesigner/components/textureeditor/textureeditorview.cpp b/src/plugins/qmldesigner/components/textureeditor/textureeditorview.cpp index b1d3c210ecb..6ff4f43cfef 100644 --- a/src/plugins/qmldesigner/components/textureeditor/textureeditorview.cpp +++ b/src/plugins/qmldesigner/components/textureeditor/textureeditorview.cpp @@ -555,7 +555,13 @@ void TextureEditorView::propertiesRemoved(const QList &propert m_qmlBackEnd->contextObject()->setHasAliasExport(QmlObjectNode(m_selectedTexture).isAliasExported()); if (node == m_selectedTexture || QmlObjectNode(m_selectedTexture).propertyChangeForCurrentState() == node) { - setValue(m_selectedTexture, property.name(), QmlObjectNode(m_selectedTexture).instanceValue(property.name())); + // TODO: workaround for bug QDS-8539. To be removed once it is fixed. + if (node.metaInfo().property(property.name()).propertyType().isUrl()) { + resetPuppet(); + } else { + setValue(m_selectedTexture, property.name(), + QmlObjectNode(m_selectedTexture).instanceValue(property.name())); + } } if (property.name() == "materials" && (node == m_selectedModel