diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index 6869d99bc7..580d52b089 100644 --- a/cura/Machines/QualityManager.py +++ b/cura/Machines/QualityManager.py @@ -200,7 +200,9 @@ class QualityManager(QObject): machine_definition_id = getMachineDefinitionIDForQualitySearch(machine.definition) # This determines if we should only get the global qualities for the global stack and skip the global qualities for the extruder stacks - has_variant_materials = parseBool(machine.getMetaDataEntry("has_variant_materials", False)) + has_variants = machine.getHasVariants() + has_materials = machine.getHasMaterials() + has_variants_or_materials = has_variants or has_materials # To find the quality container for the GlobalStack, check in the following fall-back manner: # (1) the machine-specific node @@ -214,7 +216,7 @@ class QualityManager(QObject): for node in nodes_to_check: if node and node.quality_type_map: # Only include global qualities - if has_variant_materials: + if has_variants_or_materials: quality_node = list(node.quality_type_map.values())[0] is_global_quality = parseBool(quality_node.metadata.get("global_quality", False)) if not is_global_quality: @@ -302,7 +304,7 @@ class QualityManager(QObject): for node in nodes_to_check: if node and node.quality_type_map: - if has_variant_materials: + if has_variants_or_materials: # Only include variant qualities; skip non global qualities quality_node = list(node.quality_type_map.values())[0] is_global_quality = parseBool(quality_node.metadata.get("global_quality", False)) diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index 36084b7d4d..d7ebe804f4 100755 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -13,6 +13,8 @@ from UM.Settings.SettingInstance import InstanceState from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.Interfaces import PropertyEvaluationContext from UM.Logger import Logger +from UM.Util import parseBool + import cura.CuraApplication from . import Exceptions @@ -188,6 +190,12 @@ class GlobalStack(CuraContainerStack): def getHeadAndFansCoordinates(self): return self.getProperty("machine_head_with_fans_polygon", "value") + def getHasMaterials(self) -> bool: + return parseBool(self.getMetaDataEntry("has_materials", False)) + + def getHasVariants(self) -> bool: + return parseBool(self.getMetaDataEntry("has_variants", False)) + ## private: global_stack_mime = MimeType( diff --git a/resources/definitions/cartesio.def.json b/resources/definitions/cartesio.def.json index 57c16241a0..9c7a95cceb 100644 --- a/resources/definitions/cartesio.def.json +++ b/resources/definitions/cartesio.def.json @@ -11,7 +11,6 @@ "has_machine_quality": true, "has_materials": true, "has_machine_materials": true, - "has_variant_materials": true, "has_variants": true, "variants_name": "Tool", diff --git a/resources/definitions/ultimaker3.def.json b/resources/definitions/ultimaker3.def.json index b75d12ce44..b1daa6b780 100644 --- a/resources/definitions/ultimaker3.def.json +++ b/resources/definitions/ultimaker3.def.json @@ -13,7 +13,6 @@ "has_machine_quality": true, "has_materials": true, "has_machine_materials": true, - "has_variant_materials": true, "has_variants": true, "preferred_variant_name": "AA 0.4", "preferred_quality_type": "normal", diff --git a/resources/definitions/ultimaker3_extended.def.json b/resources/definitions/ultimaker3_extended.def.json index 1e6c322c73..eb3cda9320 100644 --- a/resources/definitions/ultimaker3_extended.def.json +++ b/resources/definitions/ultimaker3_extended.def.json @@ -13,7 +13,6 @@ "platform_offset": [0, 0, 0], "has_machine_quality": true, "has_machine_materials": true, - "has_variant_materials": true, "has_materials": true, "has_variants": true, "preferred_variant_name": "AA 0.4", diff --git a/resources/definitions/ultimaker_s5.def.json b/resources/definitions/ultimaker_s5.def.json index f6971d0da3..115c84c0db 100644 --- a/resources/definitions/ultimaker_s5.def.json +++ b/resources/definitions/ultimaker_s5.def.json @@ -15,7 +15,6 @@ "has_machine_quality": true, "has_materials": true, "has_machine_materials": true, - "has_variant_materials": true, "has_variant_buildplates": true, "has_variants": true, "preferred_variant_name": "AA 0.4",