From 6afd6693890ab57a03390a20442e1ae7433930a7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 3 Jan 2020 16:24:56 +0100 Subject: [PATCH] Speed up QMl binding evaluation for MaterialMenu --- resources/qml/Menus/MaterialMenu.qml | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index edc5ee1e0d..73c1baf2c0 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -14,11 +14,11 @@ Menu property int extruderIndex: 0 property string currentRootMaterialId: Cura.MachineManager.currentRootMaterialId[extruderIndex] - property string activeMaterialId: - { - var extruder = Cura.MachineManager.activeMachine.extruderList[extruderIndex] - return (extruder === undefined) ? "" : extruder.material.id - } + property var activeExtruder: Cura.MachineManager.activeMachine.extruderList[extruderIndex] + property bool isActiveExtruderEnabled: activeExtruder === undefined ? false : activeExtruder.isEnabled + + property string activeMaterialId: activeExtruder === undefined ? false : activeExtruder.material.id + property bool updateModels: true Cura.FavoriteMaterialsModel { @@ -54,7 +54,7 @@ Menu { text: model.brand + " " + model.name checkable: true - enabled: Cura.MachineManager.activeMachine.extruderList[extruderIndex].isEnabled + enabled: isActiveExtruderEnabled checked: model.root_material_id === menu.currentRootMaterialId onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node) exclusiveGroup: favoriteGroup // One favorite and one item from the others can be active at the same time. @@ -77,11 +77,7 @@ Menu { text: model.name checkable: true - enabled: - { - var extruder = Cura.MachineManager.activeMachine.extruderList[extruderIndex] - return (extruder === undefined) ? false : extruder.isEnabled - } + enabled: isActiveExtruderEnabled checked: model.root_material_id === menu.currentRootMaterialId exclusiveGroup: group onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node) @@ -120,11 +116,7 @@ Menu { text: model.name checkable: true - enabled: - { - var extruder = Cura.MachineManager.activeMachine.extruderList[extruderIndex] - return (extruder === undefined) ? false : extruder.isEnabled - } + enabled: isActiveExtruderEnabled checked: model.id === menu.activeMaterialId exclusiveGroup: group onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)