diff --git a/cura/Backups/BackupsManager.py b/cura/Backups/BackupsManager.py index ba6fcab8d7..99e74bfa4d 100644 --- a/cura/Backups/BackupsManager.py +++ b/cura/Backups/BackupsManager.py @@ -48,9 +48,10 @@ class BackupsManager: # We don't want to store the data at this point as that would override the just-restored backup. self._application.windowClosed(save_data = False) - ## Here we try to disable the auto-save plug-in as it might interfere with + ## Here we try to disable the auto-save plug-in and other saving as it might interfere with # restoring a back-up. def _disableAutoSave(self) -> None: + self._application.enableSave(False) auto_save = self._application.getAutoSave() # The auto save is only not created if the application has not yet started. if auto_save: @@ -58,8 +59,9 @@ class BackupsManager: else: Logger.log("e", "Unable to disable the autosave as application init has not been completed") - ## Re-enable auto-save after we're done. + ## Re-enable auto-save and other saving after we're done. def _enableAutoSave(self) -> None: + self._application.enableSave(True) auto_save = self._application.getAutoSave() # The auto save is only not created if the application has not yet started. if auto_save: diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index e58e03bf67..4d13ef6c78 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -242,6 +242,7 @@ class CuraApplication(QtApplication): # Backups self._auto_save = None # type: Optional[AutoSave] + self._enable_save = True self._container_registry_class = CuraContainerRegistry # Redefined here in order to please the typing. @@ -685,15 +686,20 @@ class CuraApplication(QtApplication): self._message_box_callback = None self._message_box_callback_arguments = [] + def enableSave(self, enable: bool): + self._enable_save = enable + # Cura has multiple locations where instance containers need to be saved, so we need to handle this differently. def saveSettings(self) -> None: - if not self.started: + if not self.started or not self._enable_save: # Do not do saving during application start or when data should not be saved on quit. return ContainerRegistry.getInstance().saveDirtyContainers() self.savePreferences() def saveStack(self, stack): + if not self._enable_save: + return ContainerRegistry.getInstance().saveContainer(stack) @pyqtSlot(str, result = QUrl)