QmlDesigner: Make PrincipledMaterial the default when adding material

PrincipledMaterial is created instead of DefaultMaterial whenever a
new material is created.

Fixes: QDS-9268
Change-Id: Iae97c5ac8c2be4a5ffdc26f9454344e1ae042290
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
This commit is contained in:
Miikka Heikkinen
2023-02-28 15:31:11 +02:00
parent 47cabc308e
commit a194782774
4 changed files with 18 additions and 5 deletions

View File

@@ -430,9 +430,10 @@ void MaterialEditorView::handleToolBarAction(int action)
if (!matLib.isValid()) if (!matLib.isValid())
return; return;
NodeMetaInfo metaInfo = model()->metaInfo("QtQuick3D.DefaultMaterial"); NodeMetaInfo metaInfo = model()->qtQuick3DPrincipledMaterialMetaInfo();
ModelNode newMatNode = createModelNode("QtQuick3D.DefaultMaterial", metaInfo.majorVersion(), ModelNode newMatNode = createModelNode("QtQuick3D.PrincipledMaterial",
metaInfo.minorVersion()); metaInfo.majorVersion(),
metaInfo.minorVersion());
renameMaterial(newMatNode, "New Material"); renameMaterial(newMatNode, "New Material");
matLib.defaultNodeListProperty().reparentHere(newMatNode); matLib.defaultNodeListProperty().reparentHere(newMatNode);
}); });

View File

@@ -91,6 +91,7 @@ public:
NodeMetaInfo qtQuick3DMaterialMetaInfo() const; NodeMetaInfo qtQuick3DMaterialMetaInfo() const;
NodeMetaInfo qtQuick3DModelMetaInfo() const; NodeMetaInfo qtQuick3DModelMetaInfo() const;
NodeMetaInfo qtQuick3DNodeMetaInfo() const; NodeMetaInfo qtQuick3DNodeMetaInfo() const;
NodeMetaInfo qtQuick3DPrincipledMaterialMetaInfo() const;
NodeMetaInfo qtQuick3DTextureMetaInfo() const; NodeMetaInfo qtQuick3DTextureMetaInfo() const;
NodeMetaInfo qtQuickConnectionsMetaInfo() const; NodeMetaInfo qtQuickConnectionsMetaInfo() const;
NodeMetaInfo qtQuickControlsTextAreaMetaInfo() const; NodeMetaInfo qtQuickControlsTextAreaMetaInfo() const;

View File

@@ -910,8 +910,9 @@ void AbstractView::assignMaterialTo3dModel(const ModelNode &modelNode, const Mod
// if no valid material, create a new default material // if no valid material, create a new default material
if (!newMaterialNode.isValid()) { if (!newMaterialNode.isValid()) {
NodeMetaInfo metaInfo = model()->qtQuick3DDefaultMaterialMetaInfo(); NodeMetaInfo metaInfo = model()->qtQuick3DPrincipledMaterialMetaInfo();
newMaterialNode = createModelNode("QtQuick3D.DefaultMaterial", metaInfo.majorVersion(), newMaterialNode = createModelNode("QtQuick3D.PrincipledMaterial",
metaInfo.majorVersion(),
metaInfo.minorVersion()); metaInfo.minorVersion());
newMaterialNode.validId(); newMaterialNode.validId();
} }

View File

@@ -1959,6 +1959,16 @@ NodeMetaInfo Model::qtQuick3DDefaultMaterialMetaInfo() const
} }
} }
NodeMetaInfo Model::qtQuick3DPrincipledMaterialMetaInfo() const
{
if constexpr (useProjectStorage()) {
using namespace Storage::Info;
return createNodeMetaInfo<QtQuick3D, PrincipledMaterial>();
} else {
return metaInfo("QtQuick3D.PrincipledMaterial");
}
}
NodeMetaInfo Model::qtQuickTimelineTimelineMetaInfo() const NodeMetaInfo Model::qtQuickTimelineTimelineMetaInfo() const
{ {
if constexpr (useProjectStorage()) { if constexpr (useProjectStorage()) {