From 532cfd840498c0abef1a01363e54a2508c418e2b Mon Sep 17 00:00:00 2001 From: ChrisTerBeke Date: Wed, 22 Nov 2017 10:48:21 +0100 Subject: [PATCH] Fix showing correct quality changes in dropdown list after upgrading - CURA-4482 --- cura/Settings/CuraContainerRegistry.py | 6 ++++++ cura/Settings/MachineManager.py | 12 +++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 5cfe867bc2..7abe5b35f5 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -449,6 +449,12 @@ class CuraContainerRegistry(ContainerRegistry): extruder_stack.setVariantById(variant_id) extruder_stack.setMaterialById("default") extruder_stack.setQualityById("default") + quality_changes_id = "default" + if machine.qualityChanges.getId() != "empty_quality_changes": + extruder_quality_changes_container = self.findInstanceContainers(name = machine.qualityChanges.getName(), extruder = extruder_id) + if extruder_quality_changes_container: + quality_changes_id = extruder_quality_changes_container[0].getId() + extruder_stack.setQualityChangesById(quality_changes_id) self.addContainer(extruder_stack) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e49e90c4ab..002c84fb67 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -620,11 +620,9 @@ class MachineManager(QObject): @pyqtProperty(str, notify=activeQualityChanged) def activeQualityId(self) -> str: if self._active_container_stack: - quality = self._active_container_stack.qualityChanges - if quality and not isinstance(quality, type(self._empty_quality_changes_container)): - return quality.getId() quality = self._active_container_stack.quality - if quality: + quality_changes = self._active_container_stack.qualityChanges + if quality and quality_changes and isinstance(quality_changes, type(self._empty_quality_changes_container)) and not isinstance(quality, type(self._empty_quality_container)): return quality.getId() return "" @@ -690,9 +688,9 @@ class MachineManager(QObject): @pyqtProperty(str, notify = activeQualityChanged) def activeQualityChangesId(self) -> str: if self._active_container_stack: - changes = self._active_container_stack.qualityChanges - if changes and changes.getId() != "empty": - return changes.getId() + quality_changes = self._active_container_stack.qualityChanges + if quality_changes and not isinstance(quality_changes, type(self._empty_quality_changes_container)): + return quality_changes.getId() return "" ## Check if a container is read_only