From 5074c424f1bc1a424bea854f0a287dfa6c4c16a2 Mon Sep 17 00:00:00 2001 From: Ali Kianian Date: Wed, 19 Apr 2023 13:23:44 +0300 Subject: [PATCH] QmlDesigner: Update material preview images instead of whole refresh Task-number: QDS-9485 Change-Id: I865c8d39dea4ec0c451f41cbe8c5f603deae4f25 Reviewed-by: Mahmoud Badri Reviewed-by: Miikka Heikkinen --- .../materialbrowser/materialbrowserview.cpp | 20 ++++++++++++------- .../materialbrowser/materialbrowserview.h | 1 + 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp index 5caf0169eec..5349fc26ce7 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp @@ -264,12 +264,17 @@ void MaterialBrowserView::refreshModel(bool updateImages) m_widget->materialBrowserTexturesModel()->setTextures(textures); m_widget->materialBrowserModel()->setHasMaterialLibrary(matLib.isValid()); - if (updateImages) { - for (const ModelNode &node : std::as_const(materials)) - m_previewRequests.insert(node); - if (!m_previewRequests.isEmpty()) - m_previewTimer.start(0); - } + if (updateImages) + updateMaterialsPreview(); +} + +void MaterialBrowserView::updateMaterialsPreview() +{ + const QList materials = m_widget->materialBrowserModel()->materials(); + for (const ModelNode &node : materials) + m_previewRequests.insert(node); + if (!m_previewRequests.isEmpty()) + m_previewTimer.start(0); } bool MaterialBrowserView::isMaterial(const ModelNode &node) const @@ -540,7 +545,8 @@ void MaterialBrowserView::active3DSceneChanged(qint32 sceneId) void MaterialBrowserView::currentStateChanged([[maybe_unused]] const ModelNode &node) { - refreshModel(true); + m_widget->materialBrowserTexturesModel()->updateAllTexturesSources(); + updateMaterialsPreview(); } void MaterialBrowserView::instancesCompleted(const QVector &completedNodeList) diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h index 2e0227be413..297487ae66f 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.h @@ -66,6 +66,7 @@ protected: private: void refreshModel(bool updateImages); + void updateMaterialsPreview(); bool isMaterial(const ModelNode &node) const; bool isTexture(const ModelNode &node) const; void loadPropertyGroups();