QmlDesigner: Update texture editor and browser after source reset

Fixes: QDS-8520
Change-Id: I9ceca64d75ef1c41633a89a79748265beecd16ea
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
This commit is contained in:
Mahmoud Badri
2022-12-07 23:16:50 +02:00
parent b530f938ba
commit e70f909bcf
3 changed files with 16 additions and 1 deletions

View File

@@ -334,6 +334,14 @@ void MaterialBrowserView::variantPropertiesChanged(const QList<VariantProperty>
}
}
void MaterialBrowserView::propertiesRemoved(const QList<AbstractProperty> &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,

View File

@@ -37,6 +37,7 @@ public:
const QList<ModelNode> &lastSelectedNodeList) override;
void modelNodePreviewPixmapChanged(const ModelNode &node, const QPixmap &pixmap) override;
void variantPropertiesChanged(const QList<VariantProperty> &propertyList, PropertyChangeFlags propertyChange) override;
void propertiesRemoved(const QList<AbstractProperty> &propertyList) override;
void nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent,
const NodeAbstractProperty &oldPropertyParent,
AbstractView::PropertyChangeFlags propertyChange) override;

View File

@@ -555,7 +555,13 @@ void TextureEditorView::propertiesRemoved(const QList<AbstractProperty> &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