From 599dcb34bc7e45b329ce53404f8c4cc52ab734f0 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 26 Aug 2019 15:25:11 +0200 Subject: [PATCH] Fix sorting qualities by quality type Otherwise the dictionary ends up being filled by container ID which then causes the quality type to not be present in the dictionary, ending up with an empty list of quality groups. Contributes to issue CURA-6600. --- cura/Machines/MachineNode.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/cura/Machines/MachineNode.py b/cura/Machines/MachineNode.py index 80cb983daf..0629a02ad9 100644 --- a/cura/Machines/MachineNode.py +++ b/cura/Machines/MachineNode.py @@ -72,15 +72,16 @@ class MachineNode(ContainerNode): qualities_per_type_per_extruder[extruder_nr] = self.global_qualities else: # Use the actually specialised quality profiles. - qualities_per_type_per_extruder[extruder_nr] = self.variants[variant_name].materials[material_base].qualities + qualities_per_type_per_extruder[extruder_nr] = {node.getMetaDataEntry("quality_type"): node for node in self.variants[variant_name].materials[material_base].qualities.values()} # Create the quality group for each available type. quality_groups = {} for quality_type, global_quality_node in self.global_qualities.items(): quality_groups[quality_type] = QualityGroup(name = global_quality_node.container.getMetaDataEntry("name", "Unnamed profile"), quality_type = quality_type) quality_groups[quality_type].node_for_global = global_quality_node - for extruder, qualities_per_type in qualities_per_type_per_extruder: - quality_groups[quality_type].nodes_for_extruders[extruder] = qualities_per_type[quality_type] + for extruder, qualities_per_type in enumerate(qualities_per_type_per_extruder): + if quality_type in qualities_per_type: + quality_groups[quality_type].nodes_for_extruders[extruder] = qualities_per_type[quality_type] available_quality_types = set(quality_groups.keys()) for extruder_nr, qualities_per_type in enumerate(qualities_per_type_per_extruder):