diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index d5d9c0e727..5e78c04900 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -340,7 +340,7 @@ class QualityManager(QObject): return quality_group_dict - def getDefaultQualityType(self, machine: "GlobalStack") -> QualityGroup: + def getDefaultQualityType(self, machine: "GlobalStack") -> Optional[QualityGroup]: preferred_quality_type = machine.definition.getMetaDataEntry("preferred_quality_type") quality_group_dict = self.getQualityGroups(machine) quality_group = quality_group_dict.get(preferred_quality_type) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 4f6c7c179e..772c01191c 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1444,6 +1444,12 @@ class MachineManager(QObject): @pyqtSlot(QObject) def setQualityGroup(self, quality_group: QualityGroup, no_dialog: bool = False, global_stack: Optional["GlobalStack"] = None) -> None: if global_stack is not None and global_stack != self._global_container_stack: + if quality_group is None: + Logger.log("e", "Could not set quality group because quality group is None") + return + if quality_group.node_for_global is None: + Logger.log("e", "Could not set quality group [%s] because it has no node_for_global", str(quality_group)) + return global_stack.quality = quality_group.node_for_global.getContainer() for extruder_nr, extruder_stack in global_stack.extruders.items(): extruder_stack.quality = quality_group.nodes_for_extruders[extruder_nr].getContainer()