QmlDesigner: Update textures sources on state change

Also small relevant fixes.

Fixes: QDS-8523
Change-Id: I8125b124024ee18de8c70afbc9f633c3b9265e82
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
Mahmoud Badri
2022-12-08 13:51:12 +02:00
parent 37564d267b
commit d0c9bc76cb
4 changed files with 29 additions and 8 deletions

View File

@@ -8,7 +8,6 @@
#include "materialbrowsermodel.h"
#include "materialbrowsertexturesmodel.h"
#include "materialbrowserwidget.h"
#include "modelnodeoperations.h"
#include "nodeabstractproperty.h"
#include "nodemetainfo.h"
#include "qmlobjectnode.h"
@@ -327,10 +326,15 @@ void MaterialBrowserView::variantPropertiesChanged(const QList<VariantProperty>
for (const VariantProperty &property : propertyList) {
ModelNode node(property.parentModelNode());
if (isMaterial(node) && property.name() == "objectName")
if (isMaterial(node) && property.name() == "objectName") {
m_widget->materialBrowserModel()->updateMaterialName(node);
else if (isTexture(node) && property.name() == "source")
m_widget->materialBrowserTexturesModel()->updateTextureSource(node);
} else if (property.name() == "source") {
QmlObjectNode selectedTex = m_widget->materialBrowserTexturesModel()->selectedTexture();
if (isTexture(node))
m_widget->materialBrowserTexturesModel()->updateTextureSource(node);
else if (selectedTex.propertyChangeForCurrentState() == node)
m_widget->materialBrowserTexturesModel()->updateTextureSource(selectedTex);
}
}
}
@@ -483,6 +487,11 @@ void MaterialBrowserView::active3DSceneChanged(qint32 sceneId)
m_sceneId = sceneId;
}
void MaterialBrowserView::currentStateChanged([[maybe_unused]] const ModelNode &node)
{
m_widget->materialBrowserTexturesModel()->updateAllTexturesSources();
}
void MaterialBrowserView::instancesCompleted(const QVector<ModelNode> &completedNodeList)
{
for (const ModelNode &node : completedNodeList) {