diff --git a/cura/MachineManagerModel.py b/cura/MachineManagerModel.py index 28ae06e26b..2ff80efc3d 100644 --- a/cura/MachineManagerModel.py +++ b/cura/MachineManagerModel.py @@ -77,6 +77,12 @@ class MachineManagerModel(QObject): if material: return material.getName() + @pyqtProperty(str, notify=activeMaterialChanged) + def activeMaterialId(self): + material = Application.getInstance().getGlobalContainerStack().findContainer({"type": "material"}) + if material: + return material.getId() + @pyqtSlot(str) def setActiveMaterial(self, material_id): containers = ContainerRegistry.getInstance().findInstanceContainers(id=material_id) @@ -99,6 +105,13 @@ class MachineManagerModel(QObject): if variant: return variant.getName() + @pyqtProperty(str, notify = activeVariantChanged) + def activeVariantId(self): + variant = Application.getInstance().getGlobalContainerStack().findContainer({"type": "variant"}) + if variant: + return variant.getId() + + @pyqtSlot(str, str) def renameMachine(self, machine_id, new_name): containers = ContainerRegistry.getInstance().findContainerStacks(id = machine_id) diff --git a/resources/qml/Cura.qml b/resources/qml/Cura.qml index 250dcf050e..2d1fbe3305 100644 --- a/resources/qml/Cura.qml +++ b/resources/qml/Cura.qml @@ -204,7 +204,7 @@ UM.MainWindow MenuItem { text: model.name; checkable: true; - checked: model.active; + checked: model.id == Cura.MachineManager.activeVariantId; exclusiveGroup: machineVariantsGroup; onTriggered: Cura.MachineManager.setActiveVariant(model.id) } diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index fcf05a49ca..ff6db0703b 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -156,7 +156,7 @@ Item { text: model.name; checkable: true; - checked: model.active; + checked: model.id == Cura.MachineManager.activeVariantId; exclusiveGroup: variantSelectionMenuGroup; onTriggered: { @@ -199,13 +199,11 @@ Item { filter: {"type": "material"} } - //model: UM.InstancesModel {filter: {"type":"material"}} -// model: UM.MachineMaterialsModel { id: machineMaterialsModel } MenuItem { text: model.name; checkable: true; - checked: model.active; + checked: model.id == Cura.MachineManager.activeMaterialId; exclusiveGroup: materialSelectionMenuGroup; onTriggered: {