Only fall back to use fdmprinter when the quality profiles for the current machine cannot be found

CURA-4139

UM2 family don't have machine material, but they do have their dedicated
profiles. When Cura searches for quality profiles, it should only fall
back to use "fdmprinter" as the definition if no quality profile can be
found for the current machine.
This commit is contained in:
Lipu Fei 2017-08-30 14:59:09 +02:00
parent e8e8081215
commit 23544ad1fe

View file

@ -233,13 +233,16 @@ class QualityManager:
filter_by_material = False
machine_definition = self.getParentMachineDefinition(machine_definition)
criteria["definition"] = machine_definition.getId()
found_containers_with_machine_definition = ContainerRegistry.getInstance().findInstanceContainers(**criteria)
whole_machine_definition = self.getWholeMachineDefinition(machine_definition)
if whole_machine_definition.getMetaDataEntry("has_machine_quality"):
definition_id = machine_definition.getMetaDataEntry("quality_definition", whole_machine_definition.getId())
criteria["definition"] = definition_id
filter_by_material = whole_machine_definition.getMetaDataEntry("has_materials")
else:
# only fall back to "fdmprinter" when there is no container for this machine
elif not found_containers_with_machine_definition:
criteria["definition"] = "fdmprinter"
# Stick the material IDs in a set