diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index 1c7f82550a..a719a7df8c 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -239,7 +239,8 @@ class QualityManager(QObject): machine_node = self._machine_quality_type_to_quality_changes_dict.get(machine_definition_id) if not machine_node: - raise RuntimeError("Cannot find node for machine def [%s] in QualityChanges lookup table" % machine_definition_id) + Logger.log("e", "Cannot find node for machine def [%s] in QualityChanges lookup table", machine_definition_id) + return {} # Update availability for each QualityChangesGroup: # A custom profile is always available as long as the quality_type it's based on is available diff --git a/cura/Settings/CuraContainerStack.py b/cura/Settings/CuraContainerStack.py index b97bb3314e..93e4b55bba 100755 --- a/cura/Settings/CuraContainerStack.py +++ b/cura/Settings/CuraContainerStack.py @@ -348,6 +348,10 @@ class CuraContainerStack(ContainerStack): elif container != self._empty_instance_container and container.getMetaDataEntry("type") != expected_type: raise Exceptions.InvalidContainerError("Cannot replace container at index {index} with a container that is not of {type} type, but {actual_type} type.".format(index = index, type = expected_type, actual_type = container.getMetaDataEntry("type"))) + current_container = self._containers[index] + if current_container.getId() == container.getId(): + return + super().replaceContainer(index, container, postpone_emit) ## Overridden from ContainerStack diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 3b37afd328..15bb388f26 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1642,6 +1642,7 @@ class MachineManager(QObject): self.blurSettings.emit() with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue): self._setQualityGroup(quality_group) + Logger.log("d", "Quality set!") @pyqtProperty("QVariant", fset = setQualityGroup, notify = activeQualityGroupChanged) def activeQualityGroup(self): diff --git a/resources/qml/Menus/MaterialMenu.qml b/resources/qml/Menus/MaterialMenu.qml index cb4ee5eefb..e77ab2861a 100644 --- a/resources/qml/Menus/MaterialMenu.qml +++ b/resources/qml/Menus/MaterialMenu.qml @@ -13,12 +13,6 @@ Menu title: "Material" property int extruderIndex: 0 - property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 - - MenuSeparator - { - visible: automaticMaterial.visible - } Instantiator { diff --git a/resources/qml/Menus/NozzleMenu.qml b/resources/qml/Menus/NozzleMenu.qml index 27082cfb4b..8cb01fcde6 100644 --- a/resources/qml/Menus/NozzleMenu.qml +++ b/resources/qml/Menus/NozzleMenu.qml @@ -13,21 +13,6 @@ Menu title: "Nozzle" property int extruderIndex: 0 - property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0 - property bool isClusterPrinter: - { - if (Cura.MachineManager.printerOutputDevices.length == 0) - { - return false; - } - var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize; - // This is not a cluster printer or the cluster it is just one printer - if (clusterSize == undefined || clusterSize == 1) - { - return false; - } - return true; - } Cura.NozzleModel { diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index f212d82b6e..6005ce9805 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -19,7 +19,7 @@ Menu { text: (model.layer_height != "") ? model.name + " - " + model.layer_height : model.name checkable: true - checked: Cura.MachineManager.activeQualityGroup.getName() == model.name + checked: Cura.MachineManager.activeQualityGroup && (Cura.MachineManager.activeQualityGroup.getName() == model.name) exclusiveGroup: group onTriggered: { Cura.MachineManager.setQualityGroup(model.quality_group)