From a1947827748337f697f303f0acf959d51e6e87bb Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 28 Feb 2023 15:31:11 +0200 Subject: [PATCH] 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 --- .../components/materialeditor/materialeditorview.cpp | 7 ++++--- src/plugins/qmldesigner/designercore/include/model.h | 1 + .../qmldesigner/designercore/model/abstractview.cpp | 5 +++-- src/plugins/qmldesigner/designercore/model/model.cpp | 10 ++++++++++ 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp index ae1049c9e78..3213792b301 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorview.cpp @@ -430,9 +430,10 @@ void MaterialEditorView::handleToolBarAction(int action) if (!matLib.isValid()) return; - NodeMetaInfo metaInfo = model()->metaInfo("QtQuick3D.DefaultMaterial"); - ModelNode newMatNode = createModelNode("QtQuick3D.DefaultMaterial", metaInfo.majorVersion(), - metaInfo.minorVersion()); + NodeMetaInfo metaInfo = model()->qtQuick3DPrincipledMaterialMetaInfo(); + ModelNode newMatNode = createModelNode("QtQuick3D.PrincipledMaterial", + metaInfo.majorVersion(), + metaInfo.minorVersion()); renameMaterial(newMatNode, "New Material"); matLib.defaultNodeListProperty().reparentHere(newMatNode); }); diff --git a/src/plugins/qmldesigner/designercore/include/model.h b/src/plugins/qmldesigner/designercore/include/model.h index 298d592f79c..532cf5e1ab5 100644 --- a/src/plugins/qmldesigner/designercore/include/model.h +++ b/src/plugins/qmldesigner/designercore/include/model.h @@ -91,6 +91,7 @@ public: NodeMetaInfo qtQuick3DMaterialMetaInfo() const; NodeMetaInfo qtQuick3DModelMetaInfo() const; NodeMetaInfo qtQuick3DNodeMetaInfo() const; + NodeMetaInfo qtQuick3DPrincipledMaterialMetaInfo() const; NodeMetaInfo qtQuick3DTextureMetaInfo() const; NodeMetaInfo qtQuickConnectionsMetaInfo() const; NodeMetaInfo qtQuickControlsTextAreaMetaInfo() const; diff --git a/src/plugins/qmldesigner/designercore/model/abstractview.cpp b/src/plugins/qmldesigner/designercore/model/abstractview.cpp index 77517bb4024..5e0e0c064b2 100644 --- a/src/plugins/qmldesigner/designercore/model/abstractview.cpp +++ b/src/plugins/qmldesigner/designercore/model/abstractview.cpp @@ -910,8 +910,9 @@ void AbstractView::assignMaterialTo3dModel(const ModelNode &modelNode, const Mod // if no valid material, create a new default material if (!newMaterialNode.isValid()) { - NodeMetaInfo metaInfo = model()->qtQuick3DDefaultMaterialMetaInfo(); - newMaterialNode = createModelNode("QtQuick3D.DefaultMaterial", metaInfo.majorVersion(), + NodeMetaInfo metaInfo = model()->qtQuick3DPrincipledMaterialMetaInfo(); + newMaterialNode = createModelNode("QtQuick3D.PrincipledMaterial", + metaInfo.majorVersion(), metaInfo.minorVersion()); newMaterialNode.validId(); } diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index 7806a716e66..903c58c339a 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -1959,6 +1959,16 @@ NodeMetaInfo Model::qtQuick3DDefaultMaterialMetaInfo() const } } +NodeMetaInfo Model::qtQuick3DPrincipledMaterialMetaInfo() const +{ + if constexpr (useProjectStorage()) { + using namespace Storage::Info; + return createNodeMetaInfo(); + } else { + return metaInfo("QtQuick3D.PrincipledMaterial"); + } +} + NodeMetaInfo Model::qtQuickTimelineTimelineMetaInfo() const { if constexpr (useProjectStorage()) {