WIP: use new QualityChangesGroups

This commit is contained in:
Lipu Fei 2018-02-14 10:47:30 +01:00
parent d84ea07e9e
commit bf2317a74d
6 changed files with 97 additions and 23 deletions

View file

@ -134,11 +134,13 @@ class MachineManager(QObject):
containers[0].nameChanged.connect(self._onMaterialNameChanged)
### NEW
self._current_quality_group = None
self._current_root_material_id = {}
self._current_quality_group = None
self._current_quality_changes_group = None
### NEW
activeQualityGroupChanged = pyqtSignal()
activeQualityChangesGroupChanged = pyqtSignal()
globalContainerChanged = pyqtSignal() # Emitted whenever the global stack is changed (ie: when changing between printers, changing a global profile, but not when changing a value)
activeMaterialChanged = pyqtSignal()
@ -1502,6 +1504,27 @@ class MachineManager(QObject):
self._current_root_material_id[position] = self._global_container_stack.extruders[position].material.getMetaDataEntry("base_file")
return self._current_root_material_id
def _setQualityChangesGroup(self, quality_changes_group):
self._current_quality_changes_group = quality_changes_group
# TODO: quality_changes groups depend on a quality_type. Here it's fetching the quality_types every time.
# Can we do this better, like caching the quality group a quality_changes group depends on?
quality_manager = Application.getInstance()._quality_manager
quality_group_dict = quality_manager.getQualityGroups(self._global_container_stack)
quality_type = quality_changes_group.quality_type
container = self._empty_quality_changes_container
if quality_changes_group.node_for_global is not None:
container = quality_changes_group.node_for_global.getContainer()
self._global_container_stack.qualityChanges = container
self._global_container_stack.quality = quality_group_dict[quality_type]
for position, extruder in self._global_container_stack.extruders.items():
container = quality_changes_group.nodes_for_extruders.get(position,
self._empty_quality_changes_container)
extruder.qualityChanges = container
def _setEmptyQuality(self):
self._current_quality_group = None
self._global_container_stack.quality = self._empty_quality_container
@ -1510,9 +1533,13 @@ class MachineManager(QObject):
extruder.quality = self._empty_quality_container
extruder.qualityChanges = self._empty_quality_changes_container
self.activeQualityGroupChanged.emit()
def _setQualityGroup(self, quality_group, empty_quality_changes = True):
self._current_quality_group = quality_group
#TODO: check quality_changes
# Set quality and quality_changes for the GlobalStack
self._global_container_stack.quality = quality_group.node_for_global.getContainer()
if empty_quality_changes: