mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-12 06:19:05 +08:00
Pre-filter qualities on other properties before filtering on material
This prevents a LOT of double queries. Contributes to issue CURA-6600.
This commit is contained in:
parent
5bbb44bfdf
commit
42ba9a9f39
@ -36,12 +36,13 @@ class MaterialNode(ContainerNode):
|
|||||||
my_metadata = container_registry.findInstanceContainersMetadata(id = self.container_id)[0]
|
my_metadata = container_registry.findInstanceContainersMetadata(id = self.container_id)[0]
|
||||||
my_material_type = my_metadata.get("material")
|
my_material_type = my_metadata.get("material")
|
||||||
qualities = []
|
qualities = []
|
||||||
|
qualities_any_material = container_registry.findInstanceContainersMetadata(type = "quality", definition = self.variant.machine.quality_definition, variant = self.variant.variant_name)
|
||||||
for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type):
|
for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", material = my_material_type):
|
||||||
qualities.extend(container_registry.findInstanceContainersMetadata(type = "quality", definition = self.variant.machine.quality_definition, variant = self.variant.variant_name, material = material_metadata["id"]))
|
qualities.extend((quality for quality in qualities_any_material if quality["material"] == material_metadata["id"]))
|
||||||
if not qualities: # No quality profiles found. Go by GUID then.
|
if not qualities: # No quality profiles found. Go by GUID then.
|
||||||
my_guid = my_metadata.get("material")
|
my_guid = my_metadata.get("material")
|
||||||
for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", guid = my_guid):
|
for material_metadata in container_registry.findInstanceContainersMetadata(type = "material", guid = my_guid):
|
||||||
qualities.extend(container_registry.findInstanceContainersMetadata(type = "quality", definition = self.variant.machine.quality_definition, variant = self.variant.variant_name, material = material_metadata["id"]))
|
qualities.extend((quality for quality in qualities_any_material if quality["material"] == material_metadata["id"]))
|
||||||
|
|
||||||
for quality in qualities:
|
for quality in qualities:
|
||||||
quality_id = quality["id"]
|
quality_id = quality["id"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user