diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index ab209e83cf..9ffd7010d9 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -119,6 +119,12 @@ class CuraApplication(QtApplication): Q_ENUMS(ResourceTypes) + # FIXME: This signal belongs to the MachineManager, but the CuraEngineBackend plugin requires on it. + # Because plugins are initialized before the ContainerRegistry, putting this signal in MachineManager + # will make it initialized before ContainerRegistry does, and it won't find the active machine, thus + # Cura will always show the Add Machine Dialog upon start. + stacksValidationFinished = pyqtSignal() # Emitted whenever a validation is finished + def __init__(self): # this list of dir names will be used by UM to detect an old cura directory for dir_name in ["extruders", "machine_instances", "materials", "plugins", "quality", "user", "variants"]: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index e15784b123..bbbf6b6e2e 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -115,7 +115,6 @@ 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 @@ -306,7 +305,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() + Application.getInstance().stacksValidationFinished.emit() def _onActiveExtruderStackChanged(self): self.blurSettings.emit() # Ensure no-one has focus. diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index 55db1c3c4b..e1386e8749 100755 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -77,7 +77,7 @@ class CuraEngineBackend(QObject, Backend): self._scene.sceneChanged.connect(self._onSceneChanged) # trigger auto-slicing on error check finished - Application.getInstance().getMachineManager().stacksValidationFinished.connect(self._onStackErrorCheckFinished) + Application.getInstance().stacksValidationFinished.connect(self._onStackErrorCheckFinished) # Listeners for receiving messages from the back-end. self._message_handlers["cura.proto.Layer"] = self._onLayerMessage