mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 15:44:04 -06:00
Do not override filter_by_material if no material is found
CURA-3884 We rely on the machine to decide whether it needs machine specific materials, so we don't override the filter_by_material flag when looking for quality profiles for a material.
This commit is contained in:
parent
654b9cfa1c
commit
6bcc1c296d
1 changed files with 13 additions and 11 deletions
|
@ -202,7 +202,11 @@ class QualityManager:
|
||||||
if quality_definition_id is not None:
|
if quality_definition_id is not None:
|
||||||
machine_definition = ContainerRegistry.getInstance().findDefinitionContainers(id=quality_definition_id)[0]
|
machine_definition = ContainerRegistry.getInstance().findDefinitionContainers(id=quality_definition_id)[0]
|
||||||
|
|
||||||
|
# for convenience
|
||||||
if material_containers is None:
|
if material_containers is None:
|
||||||
|
material_containers = []
|
||||||
|
|
||||||
|
if not material_containers:
|
||||||
active_stacks = ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks()
|
active_stacks = ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks()
|
||||||
if active_stacks:
|
if active_stacks:
|
||||||
material_containers = [stack.material for stack in active_stacks]
|
material_containers = [stack.material for stack in active_stacks]
|
||||||
|
@ -219,24 +223,22 @@ class QualityManager:
|
||||||
filter_by_material = whole_machine_definition.getMetaDataEntry("has_materials")
|
filter_by_material = whole_machine_definition.getMetaDataEntry("has_materials")
|
||||||
else:
|
else:
|
||||||
criteria["definition"] = "fdmprinter"
|
criteria["definition"] = "fdmprinter"
|
||||||
material_ids = set()
|
|
||||||
# Stick the material IDs in a set
|
# Stick the material IDs in a set
|
||||||
if material_containers is None or len(material_containers) == 0:
|
material_ids = set()
|
||||||
filter_by_material = False
|
for material_instance in material_containers:
|
||||||
else:
|
if material_instance is not None:
|
||||||
for material_instance in material_containers:
|
# Add the parent material too.
|
||||||
if material_instance is not None:
|
for basic_material in self._getBasicMaterials(material_instance):
|
||||||
# Add the parent material too.
|
material_ids.add(basic_material.getId())
|
||||||
for basic_material in self._getBasicMaterials(material_instance):
|
material_ids.add(material_instance.getId())
|
||||||
material_ids.add(basic_material.getId())
|
|
||||||
material_ids.add(material_instance.getId())
|
|
||||||
|
|
||||||
containers = ContainerRegistry.getInstance().findInstanceContainers(**criteria)
|
containers = ContainerRegistry.getInstance().findInstanceContainers(**criteria)
|
||||||
|
|
||||||
result = []
|
result = []
|
||||||
for container in containers:
|
for container in containers:
|
||||||
# If the machine specifies we should filter by material, exclude containers that do not match any active material.
|
# If the machine specifies we should filter by material, exclude containers that do not match any active material.
|
||||||
if filter_by_material and container.getMetaDataEntry("material") not in material_ids and not "global_quality" in kwargs:
|
if filter_by_material and container.getMetaDataEntry("material") not in material_ids and "global_quality" not in kwargs:
|
||||||
continue
|
continue
|
||||||
result.append(container)
|
result.append(container)
|
||||||
return result
|
return result
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue