Fix qualities lookup for custom materials

Search the qualities of the custom material based on the base_file
and not based on the id.

CURA-7070
This commit is contained in:
Kostas Karmas 2019-12-18 16:42:44 +01:00
parent 6c9b8f992f
commit cf6540f91d

View file

@ -89,12 +89,12 @@ class MaterialNode(ContainerNode):
qualities_any_material = container_registry.findInstanceContainersMetadata(type = "quality",
definition = self.variant.machine.quality_definition)
for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type):
qualities.extend((quality for quality in qualities_any_material if quality.get("material") == material_metadata["id"]))
qualities.extend((quality for quality in qualities_any_material if quality.get("material") == material_metadata["base_file"]))
if not qualities: # No quality profiles found. Go by GUID then.
my_guid = self.guid
for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", guid = my_guid):
qualities.extend((quality for quality in qualities_any_material if quality["material"] == material_metadata["id"]))
qualities.extend((quality for quality in qualities_any_material if quality["material"] == material_metadata["base_file"]))
if not qualities:
# There are still some machines that should use global profiles in the extruder, so do that now.