From aefb36d1ec53bc9bd5e5d7b76f925de054d8efba Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 22 Aug 2016 13:42:14 +0200 Subject: [PATCH] Update activeValidationState if setting validation changed This was removed from onGlobalSettingChanged but never re-added anywhere. I've updated it to check for both the global and the active stack, since some settings modify only the global stack (such as layer height). Contributes to issue CURA-2006. --- cura/Settings/MachineManager.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index fb139164d9..23dcf8ba94 100644 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -251,6 +251,20 @@ class MachineManager(QObject): self.activeQualityChanged.emit() def _onPropertyChanged(self, key, property_name): + if property_name == "validationState": + if self._active_stack_valid: + if self._active_container_stack.getProperty(key, "settable_per_extruder"): + changed_validation_state = self._active_container_stack.getProperty(key, property_name) + else: + changed_validation_state = self._global_container_stack.getProperty(key, property_name) + if changed_validation_state in (UM.Settings.ValidatorState.Exception, UM.Settings.ValidatorState.MaximumError, UM.Settings.ValidatorState.MinimumError): + self._active_stack_valid = False + self.activeValidationChanged.emit() + else: + if not self._checkStackForErrors(self._active_container_stack) and not self._checkStackForErrors(self._global_container_stack): + self._active_stack_valid = True + self.activeValidationChanged.emit() + self.activeStackChanged.emit() @pyqtSlot(str)