From 3730ea247d801c2369151eca833f2e25e23630bc Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Thu, 19 Sep 2019 14:26:18 +0200 Subject: [PATCH] Ensure that intent gets updated when changing quality / material CURA-6775 --- cura/Settings/MachineManager.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 4ff5ad95cd..8c4f9a0e80 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1109,6 +1109,7 @@ class MachineManager(QObject): self.activeQualityGroupChanged.emit() self.activeQualityChangesGroupChanged.emit() + self._updateIntentWithQuality() def _setQualityGroup(self, quality_group: Optional["QualityGroup"], empty_quality_changes: bool = True) -> None: if self._global_container_stack is None: @@ -1136,6 +1137,7 @@ class MachineManager(QObject): self.activeQualityGroupChanged.emit() self.activeQualityChangesGroupChanged.emit() + self._updateIntentWithQuality() def _fixQualityChangesGroupToNotSupported(self, quality_changes_group: "QualityChangesGroup") -> None: metadatas = [quality_changes_group.metadata_for_global] + list(quality_changes_group.metadata_per_extruder.values()) @@ -1277,6 +1279,21 @@ class MachineManager(QObject): current_quality_type, quality_type) self._setQualityGroup(candidate_quality_groups[quality_type], empty_quality_changes = True) + ## Update the current intent after the quality changed + def _updateIntentWithQuality(self): + global_stack = cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack() + if global_stack is None: + return + Logger.log("d", "Updating intent due to quality change") + + category = "default" + + for extruder in global_stack.extruderList: + current_category = extruder.intent.getMetaDataEntry("intent_category", "default") + if current_category != "default" and current_category != category: + category = current_category + self.setIntentByCategory(category) + ## Update the material profile in the current stacks when the variant is # changed. # \param position The extruder stack to update. If provided with None, all