CURA-4870 Manage the case when there is an empty material or variant in the printer and Cura needs to apply this configuration

This commit is contained in:
Diego Prado Gesto 2018-03-07 19:59:06 +01:00
parent 2818ff7f31
commit be8fc9f3f1

View file

@ -1032,13 +1032,22 @@ class MachineManager(QObject):
position = str(extruder_configuration.position) position = str(extruder_configuration.position)
variant_container_node = self._variant_manager.getVariantNode(self._global_container_stack.definition.getId(), extruder_configuration.hotendID) variant_container_node = self._variant_manager.getVariantNode(self._global_container_stack.definition.getId(), extruder_configuration.hotendID)
material_container_node = self._material_manager.getMaterialNodeByType(self._global_container_stack, extruder_configuration.hotendID,extruder_configuration.material.guid) material_container_node = self._material_manager.getMaterialNodeByType(self._global_container_stack, extruder_configuration.hotendID,extruder_configuration.material.guid)
self._setVariantNode(position, variant_container_node) if variant_container_node:
self._setMaterial(position, material_container_node) self._setVariantNode(position, variant_container_node)
else:
self._global_container_stack.extruders[position].variant = self._empty_variant_container
if material_container_node:
self._setMaterial(position, material_container_node)
else:
self._global_container_stack.extruders[position].material = self._empty_material_container
self._updateMaterialWithVariant(position) self._updateMaterialWithVariant(position)
if configuration.buildplateConfiguration is not None: if configuration.buildplateConfiguration is not None:
global_variant_container_node = self._variant_manager.getBuildplateVariantNode(self._global_container_stack.definition.getId(), configuration.buildplateConfiguration) global_variant_container_node = self._variant_manager.getBuildplateVariantNode(self._global_container_stack.definition.getId(), configuration.buildplateConfiguration)
self._setGlobalVariant(global_variant_container_node) self._setGlobalVariant(global_variant_container_node)
else:
self._global_container_stack.variant = self._empty_variant_container
self._updateQualityWithMaterial() self._updateQualityWithMaterial()
@pyqtSlot("QVariant") @pyqtSlot("QVariant")