// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only import QtQuick 2.15 import QtQuick.Layouts 1.15 import HelperWidgets 2.0 import StudioTheme 1.0 as StudioTheme Section { caption: qsTr("Resource Loader") width: parent.width SectionLayout { PropertyLabel { text: qsTr("Geometries") Layout.alignment: Qt.AlignTop Layout.topMargin: 5 tooltip: qsTr("A list of custom geometries to be loaded and cached.") } SecondColumnLayout { EditableListView { backendValue: backendValues.geometries model: backendValues.geometries.expressionAsList Layout.fillWidth: true typeFilter: "QtQuick3D.Geometry" onAdd: function(value) { backendValues.geometries.idListAdd(value) } onRemove: function(idx) { backendValues.geometries.idListRemove(idx) } onReplace: function (idx, value) { backendValues.geometries.idListReplace(idx, value) } } ExpandingSpacer {} } PropertyLabel { text: qsTr("Mesh Sources") Layout.alignment: Qt.AlignTop Layout.topMargin: 5 tooltip: qsTr("A list of mesh assets to be loaded and cached.") } SecondColumnLayout { ActionIndicator { icon.color: extFuncLogic.color icon.text: extFuncLogic.glyph onClicked: extFuncLogic.show() forceVisible: extFuncLogic.menuVisible ExtendedFunctionLogic { id: extFuncLogic backendValue: backendValues.meshSources } } // Placeholder until we can do list of value types: QDS-9090 Label { text: qsTr("Currently only editable in QML.") Layout.fillWidth: true Layout.preferredWidth: StudioTheme.Values.singleControlColumnWidth Layout.minimumWidth: StudioTheme.Values.singleControlColumnWidth Layout.maximumWidth: StudioTheme.Values.singleControlColumnWidth } ExpandingSpacer {} } PropertyLabel { text: qsTr("Textures") Layout.alignment: Qt.AlignTop Layout.topMargin: 5 tooltip: qsTr("A list of textures to be loaded and cached.") } SecondColumnLayout { EditableListView { backendValue: backendValues.textures model: backendValues.textures.expressionAsList Layout.fillWidth: true typeFilter: "QtQuick3D.Texture" onAdd: function(value) { backendValues.textures.idListAdd(value) } onRemove: function(idx) { backendValues.textures.idListRemove(idx) } onReplace: function (idx, value) { backendValues.textures.idListReplace(idx, value) } } ExpandingSpacer {} } } }