QmlDesigner: Fix adding the first material to the material library

Fixed that material editor node was not being created when no materials
exist.

Fixes: QDS-7069
Change-Id: I358c497325e8865fc5f012531783dcbe46c32490
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
Mahmoud Badri
2022-06-02 19:07:23 +03:00
parent 6a7f853ec9
commit 8d11ec2656

View File

@@ -87,10 +87,6 @@ void MaterialEditorView::ensureMaterialLibraryNode()
if (m_materialLibrary.isValid()) if (m_materialLibrary.isValid())
return; return;
const QList<ModelNode> materials = rootModelNode().subModelNodesOfType("QtQuick3D.Material");
if (materials.isEmpty())
return;
// create material library node // create material library node
TypeName nodeType = rootModelNode().isSubclassOf("QtQuick3D.Node") ? "QtQuick3D.Node" : "QtQuick.Item"; TypeName nodeType = rootModelNode().isSubclassOf("QtQuick3D.Node") ? "QtQuick3D.Node" : "QtQuick.Item";
NodeMetaInfo metaInfo = model()->metaInfo(nodeType); NodeMetaInfo metaInfo = model()->metaInfo(nodeType);
@@ -99,6 +95,10 @@ void MaterialEditorView::ensureMaterialLibraryNode()
m_materialLibrary.setIdWithoutRefactoring(Constants::MATERIAL_LIB_ID); m_materialLibrary.setIdWithoutRefactoring(Constants::MATERIAL_LIB_ID);
rootModelNode().defaultNodeListProperty().reparentHere(m_materialLibrary); rootModelNode().defaultNodeListProperty().reparentHere(m_materialLibrary);
const QList<ModelNode> materials = rootModelNode().subModelNodesOfType("QtQuick3D.Material");
if (materials.isEmpty())
return;
RewriterTransaction transaction = beginRewriterTransaction( RewriterTransaction transaction = beginRewriterTransaction(
"MaterialEditorView::ensureMaterialLibraryNode"); "MaterialEditorView::ensureMaterialLibraryNode");