From a04f1590de94405d1ddb8543d0c2e58f28bc8127 Mon Sep 17 00:00:00 2001 From: Mahmoud Badri Date: Mon, 21 Nov 2022 16:45:03 +0200 Subject: [PATCH] QmlDesigner: Update texture preview when source change Fixes: QDS-8386 Change-Id: Ifaa6effc040398452b022080257bbacbfb14efdf Reviewed-by: Miikka Heikkinen --- .../materialbrowser/materialbrowsertexturesmodel.cpp | 7 +++++++ .../materialbrowser/materialbrowsertexturesmodel.h | 1 + .../components/materialbrowser/materialbrowserview.cpp | 2 ++ 3 files changed, 10 insertions(+) diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.cpp index 827fadcab6d..66762114322 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.cpp @@ -164,6 +164,13 @@ void MaterialBrowserTexturesModel::deleteSelectedTexture() deleteTexture(m_selectedIndex); } +void MaterialBrowserTexturesModel::updateTextureSource(const ModelNode &texture) +{ + int idx = textureIndex(texture); + if (idx != -1) + emit dataChanged(index(idx, 0), index(idx, 0), {roleNames().key("textureSource")}); +} + void MaterialBrowserTexturesModel::updateSelectedTexture() { selectTexture(m_selectedIndex, true); diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.h b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.h index afff53e6ae3..3d02884cae3 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.h +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowsertexturesmodel.h @@ -34,6 +34,7 @@ public: void removeTexture(const ModelNode &texture); void deleteSelectedTexture(); void updateSelectedTexture(); + void updateTextureSource(const ModelNode &texture); int textureIndex(const ModelNode &material) const; ModelNode textureAt(int idx) const; diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp index b7f493c6154..5af32bce600 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp @@ -279,6 +279,8 @@ void MaterialBrowserView::variantPropertiesChanged(const QList if (isMaterial(node) && property.name() == "objectName") m_widget->materialBrowserModel()->updateMaterialName(node); + else if (isTexture(node) && property.name() == "source") + m_widget->materialBrowserTexturesModel()->updateTextureSource(node); } }