Trigger auto-slice based on stackValidation instead of stack/setting changes

CURA-4084

Stack error checks are scheduled with a delay, and when a container is
changed (e.g. Quality), the auto-slice may get triggered before the
error check is done. Because the error check result is cached, the
auto-slicing will use the previous result instead of new. So, the
auto-slicing should be triggered when a stack validation is finished
instead of when a stack/setting gets changed.
This commit is contained in:
Lipu Fei 2017-07-26 14:00:02 +02:00
parent b08c4cd1dc
commit 93731b8d1f
2 changed files with 11 additions and 56 deletions

View file

@ -115,6 +115,7 @@ class MachineManager(QObject):
activeStackValueChanged = pyqtSignal() # Emitted whenever a value inside the active stack is changed.
activeStackValidationChanged = pyqtSignal() # Emitted whenever a validation inside active container is changed
stacksValidationChanged = pyqtSignal() # Emitted whenever a validation is changed
stacksValidationFinished = pyqtSignal() # Emitted whenever a validation is finished
blurSettings = pyqtSignal() # Emitted to force fields in the advanced sidebar to un-focus, so they update properly
@ -305,6 +306,7 @@ class MachineManager(QObject):
self._stacks_have_errors = self._checkStacksHaveErrors()
if old_stacks_have_errors != self._stacks_have_errors:
self.stacksValidationChanged.emit()
self.stacksValidationFinished.emit()
def _onActiveExtruderStackChanged(self):
self.blurSettings.emit() # Ensure no-one has focus.