From 10339555f4a817f918606fc350032d940d2cace5 Mon Sep 17 00:00:00 2001 From: casper Date: Mon, 21 Mar 2022 13:20:41 +0100 Subject: [PATCH] Simplify materials preference page by wrapping scroll items in ListView CURA-8979 --- .../Preferences/Materials/MaterialsView.qml | 156 +++++++++--------- 1 file changed, 75 insertions(+), 81 deletions(-) diff --git a/resources/qml/Preferences/Materials/MaterialsView.qml b/resources/qml/Preferences/Materials/MaterialsView.qml index 2a3d5dc7fb..23cba249ad 100644 --- a/resources/qml/Preferences/Materials/MaterialsView.qml +++ b/resources/qml/Preferences/Materials/MaterialsView.qml @@ -515,7 +515,7 @@ Item } } - ScrollView + ListView { id: settingsPage visible: pageSelectorTabRow.currentItem.activeView === "settings" @@ -530,7 +530,9 @@ Item rightMargin: UM.Theme.getSize("thin_margin").width } - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + width: settingsPage.width + spacing: UM.Theme.getSize("narrow_margin").height + ScrollBar.vertical: UM.ScrollBar { id: settingScrollBar @@ -545,91 +547,83 @@ Item property real columnWidth: Math.floor((width - settingScrollBar.width - UM.Theme.getSize("narrow_margin").width) / 2) - Column + model: UM.SettingDefinitionsModel { - width: settingsPage.width - spacing: UM.Theme.getSize("narrow_margin").height - Repeater + containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" + visibilityHandler: Cura.MaterialSettingsVisibilityHandler { } + expanded: ["*"] + } + + delegate: UM.TooltipArea + { + width: childrenRect.width + height: childrenRect.height + + UM.TooltipArea { - model: UM.SettingDefinitionsModel + anchors.fill: parent + text: model.description + } + UM.Label + { + id: label + width: settingsPage.columnWidth + height: spinBox.height + UM.Theme.getSize("default_lining").height + text: model.label + elide: Text.ElideRight + verticalAlignment: Qt.AlignVCenter + } + Cura.SpinBox + { + id: spinBox + anchors.left: label.right + value: { - containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" - visibilityHandler: Cura.MaterialSettingsVisibilityHandler { } - expanded: ["*"] + // In case the setting is not in the material... + if (!isNaN(parseFloat(materialPropertyProvider.properties.value))) + { + return parseFloat(materialPropertyProvider.properties.value); + } + // ... we search in the variant, and if it is not there... + if (!isNaN(parseFloat(variantPropertyProvider.properties.value))) + { + return parseFloat(variantPropertyProvider.properties.value); + } + // ... then look in the definition container. + if (!isNaN(parseFloat(machinePropertyProvider.properties.value))) + { + return parseFloat(machinePropertyProvider.properties.value); + } + return 0; } + width: settingsPage.columnWidth + suffix: " " + model.unit + to: 99999 + decimals: model.unit == "mm" ? 2 : 0 - delegate: UM.TooltipArea - { - width: childrenRect.width - height: childrenRect.height + onEditingFinished: materialPropertyProvider.setPropertyValue("value", value) + } - UM.TooltipArea - { - anchors.fill: parent - text: model.description - } - UM.Label - { - id: label - width: settingsPage.columnWidth - height: spinBox.height + UM.Theme.getSize("default_lining").height - text: model.label - elide: Text.ElideRight - verticalAlignment: Qt.AlignVCenter - } - Cura.SpinBox - { - id: spinBox - anchors.left: label.right - value: - { - // In case the setting is not in the material... - if (!isNaN(parseFloat(materialPropertyProvider.properties.value))) - { - return parseFloat(materialPropertyProvider.properties.value); - } - // ... we search in the variant, and if it is not there... - if (!isNaN(parseFloat(variantPropertyProvider.properties.value))) - { - return parseFloat(variantPropertyProvider.properties.value); - } - // ... then look in the definition container. - if (!isNaN(parseFloat(machinePropertyProvider.properties.value))) - { - return parseFloat(machinePropertyProvider.properties.value); - } - return 0; - } - width: settingsPage.columnWidth - suffix: " " + model.unit - to: 99999 - decimals: model.unit == "mm" ? 2 : 0 - - onEditingFinished: materialPropertyProvider.setPropertyValue("value", value) - } - - UM.ContainerPropertyProvider - { - id: materialPropertyProvider - containerId: base.containerId - watchedProperties: [ "value" ] - key: model.key - } - UM.ContainerPropertyProvider - { - id: variantPropertyProvider - containerId: Cura.MachineManager.activeStack.variant.id - watchedProperties: [ "value" ] - key: model.key - } - UM.ContainerPropertyProvider - { - id: machinePropertyProvider - containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" - watchedProperties: ["value"] - key: model.key - } - } + UM.ContainerPropertyProvider + { + id: materialPropertyProvider + containerId: base.containerId + watchedProperties: [ "value" ] + key: model.key + } + UM.ContainerPropertyProvider + { + id: variantPropertyProvider + containerId: Cura.MachineManager.activeStack.variant.id + watchedProperties: [ "value" ] + key: model.key + } + UM.ContainerPropertyProvider + { + id: machinePropertyProvider + containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" + watchedProperties: ["value"] + key: model.key } } }