diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 21810d394c..1d6a401b43 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -926,6 +926,8 @@ class MachineManager(QObject): ExtruderManager.getInstance().extrudersChanged.emit(self._global_container_stack.getId()) # Make sure the front end reflects changes self.forceUpdateAllSettings() + # Also trigger the build plate compatibility to update + self.activeMaterialChanged.emit() def _onMachineNameChanged(self): self.globalContainerChanged.emit() @@ -1016,15 +1018,23 @@ class MachineManager(QObject): self.activeQualityGroupChanged.emit() self.activeQualityChangesGroupChanged.emit() + def _fixQualityChangesGroupToNotSupported(self, quality_changes_group): + nodes = [quality_changes_group.node_for_global] + list(quality_changes_group.nodes_for_extruders.values()) + containers = [n.getContainer() for n in nodes if n is not None] + for container in containers: + container.setMetaDataEntry("quality_type", "not_supported") + quality_changes_group.quality_type = "not_supported" + def _setQualityChangesGroup(self, quality_changes_group): quality_type = quality_changes_group.quality_type # A custom quality can be created based on "not supported". # In that case, do not set quality containers to empty. - if quality_type == "not_supported": - quality_group = None - else: + quality_group = None + if quality_type != "not_supported": quality_group_dict = self._quality_manager.getQualityGroups(self._global_container_stack) - quality_group = quality_group_dict[quality_type] + quality_group = quality_group_dict.get(quality_type) + if quality_group is None: + self._fixQualityChangesGroupToNotSupported(quality_changes_group) quality_changes_container = self._empty_quality_changes_container if quality_changes_group.node_for_global: diff --git a/resources/qml/Menus/ProfileMenu.qml b/resources/qml/Menus/ProfileMenu.qml index 5b9a5a3b73..ffd3c556b6 100644 --- a/resources/qml/Menus/ProfileMenu.qml +++ b/resources/qml/Menus/ProfileMenu.qml @@ -51,8 +51,7 @@ Menu MenuItem { text: model.name - checkable: model.available - enabled: model.available + checkable: true checked: Cura.MachineManager.activeQualityOrQualityChangesName == model.name exclusiveGroup: group onTriggered: Cura.MachineManager.setQualityChangesGroup(model.quality_changes_group)