Get material IDs from correct definition id if quality_definition

For printers with a quality_definition, such as UM2E+, the material ID needs to be taken for the definition ID specified in the quality_definition metadata field. The self.activeQualityDefinitionId takes care of that, even though it is named wrong (as it applies to materials as well as quality profiles).

Contributes to issue CURA-2600.
This commit is contained in:
Ghostkeeper 2016-10-12 11:42:07 +02:00
parent 7914e90702
commit d9b428e6c8
No known key found for this signature in database
GPG key ID: 701948C5954A7385

View file

@ -134,7 +134,7 @@ class MachineManager(QObject):
definition_id = "fdmprinter"
if self._global_container_stack.getMetaDataEntry("has_machine_materials", False):
definition_id = self._global_container_stack.getBottom().getId()
definition_id = self.activeQualityDefinitionId
extruder_manager = ExtruderManager.getInstance()
containers = UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(type = "material", definition = definition_id, GUID = material_id)
if containers: # New material ID is known
@ -145,7 +145,7 @@ class MachineManager(QObject):
matching_extruder = extruder
break
if matching_extruder and matching_extruder.findContainer({"type":"material"}).getMetaDataEntry("GUID") != material_id:
if matching_extruder and matching_extruder.findContainer({"type": "material"}).getMetaDataEntry("GUID") != material_id:
# Save the material that needs to be changed. Multiple changes will be handled by the callback.
self._auto_materials_changed[str(index)] = containers[0].getId()
self._printer_output_devices[0].materialHotendChangedMessage(self._materialHotendChangedCallback)