Add high level functions for setting the variant, material and quality

using the name, id and quality_type respectively.
This commit is contained in:
Diego Prado Gesto 2018-03-19 17:25:49 +01:00
parent cc2ad9dec0
commit 51e7a18d1c

View File

@ -1218,6 +1218,16 @@ class MachineManager(QObject):
self._updateMaterialWithVariant(None) # Update all materials self._updateMaterialWithVariant(None) # Update all materials
self._updateQualityWithMaterial() self._updateQualityWithMaterial()
@pyqtSlot(str, str)
def setMaterialById(self, position, root_material_id):
machine_definition_id = self._global_container_stack.definition.id
position = str(position)
extruder_stack = self._global_container_stack.extruders[position]
variant_name = extruder_stack.variant.getName()
material_diameter = extruder_stack.approximateMaterialDiameter
material_node = self._material_manager.getMaterialNode(machine_definition_id, variant_name, material_diameter, root_material_id)
self.setMaterial(position, material_node)
@pyqtSlot(str, "QVariant") @pyqtSlot(str, "QVariant")
def setMaterial(self, position, container_node): def setMaterial(self, position, container_node):
position = str(position) position = str(position)
@ -1226,6 +1236,12 @@ class MachineManager(QObject):
self._setMaterial(position, container_node) self._setMaterial(position, container_node)
self._updateQualityWithMaterial() self._updateQualityWithMaterial()
@pyqtSlot(str, str)
def setVariantByName(self, position, variant_name):
machine_definition_id = self._global_container_stack.definition.id
variant_node = self._variant_manager.getVariantNode(machine_definition_id, variant_name)
self.setVariant(position, variant_node)
@pyqtSlot(str, "QVariant") @pyqtSlot(str, "QVariant")
def setVariant(self, position, container_node): def setVariant(self, position, container_node):
position = str(position) position = str(position)
@ -1235,6 +1251,13 @@ class MachineManager(QObject):
self._updateMaterialWithVariant(position) self._updateMaterialWithVariant(position)
self._updateQualityWithMaterial() self._updateQualityWithMaterial()
@pyqtSlot(str)
def setQualityGroupByQualityType(self, quality_type):
# Get all the quality groups for this global stack and filter out by quality_type
quality_group_dict = self._quality_manager.getQualityGroups(self._global_container_stack)
quality_group = quality_group_dict[quality_type]
self.setQualityGroup(quality_group)
@pyqtSlot(QObject) @pyqtSlot(QObject)
def setQualityGroup(self, quality_group, no_dialog = False): def setQualityGroup(self, quality_group, no_dialog = False):
self.blurSettings.emit() self.blurSettings.emit()