From 51e7a18d1cb246a4920e812a19fa9f2dc6e8e9ec Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 19 Mar 2018 17:25:49 +0100 Subject: [PATCH] Add high level functions for setting the variant, material and quality using the name, id and quality_type respectively. --- cura/Settings/MachineManager.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 6debd8d68e..e9c777cd4d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1218,6 +1218,16 @@ class MachineManager(QObject): self._updateMaterialWithVariant(None) # Update all materials 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") def setMaterial(self, position, container_node): position = str(position) @@ -1226,6 +1236,12 @@ class MachineManager(QObject): self._setMaterial(position, container_node) 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") def setVariant(self, position, container_node): position = str(position) @@ -1235,6 +1251,13 @@ class MachineManager(QObject): self._updateMaterialWithVariant(position) 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) def setQualityGroup(self, quality_group, no_dialog = False): self.blurSettings.emit()