From 87add2c8def1c31ce059d689fb727157c680315c Mon Sep 17 00:00:00 2001 From: Konstantinos Karmas Date: Wed, 15 Sep 2021 12:26:18 +0200 Subject: [PATCH] Revert "Revert "Use optional last output (file) name from output-dev to set project name."" This reverts commit 24ff3692bd5b73828a1c5a58cdd55400cdddad9c. --- cura/UI/PrintInformation.py | 16 ++++++++++++---- .../src/DigitalFactoryOutputDevice.py | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/cura/UI/PrintInformation.py b/cura/UI/PrintInformation.py index 852763cbfd..9640326c91 100644 --- a/cura/UI/PrintInformation.py +++ b/cura/UI/PrintInformation.py @@ -13,6 +13,7 @@ from UM.Qt.Duration import Duration from UM.Scene.SceneNode import SceneNode from UM.i18n import i18nCatalog from UM.MimeTypeDatabase import MimeTypeDatabase, MimeTypeNotFoundError +from UM.OutputDevice import OutputDevice if TYPE_CHECKING: from cura.CuraApplication import CuraApplication @@ -67,7 +68,8 @@ class PrintInformation(QObject): self._application.globalContainerStackChanged.connect(self._updateJobName) self._application.globalContainerStackChanged.connect(self.setToZeroPrintInformation) self._application.fileLoaded.connect(self.setBaseName) - self._application.workspaceLoaded.connect(self._onWorkspaceLoaded) + self._application.workspaceLoaded.connect(self.setProjectName) + self._application.getOutputDeviceManager().writeStarted.connect(self._onOutputStart) self._application.getMachineManager().rootMaterialChanged.connect(self._onActiveMaterialsChanged) self._application.getInstance().getPreferences().preferenceChanged.connect(self._onPreferencesChanged) @@ -440,6 +442,12 @@ class PrintInformation(QObject): self.setToZeroPrintInformation(self._active_build_plate) - def _onWorkspaceLoaded(self, new_name: str) -> None: - """Update the job name whenever a new workspace is loaded.""" - self.setJobName(os.path.splitext(os.path.basename(new_name))[0]) + def _onOutputStart(self, output_device: OutputDevice) -> None: + """If this is the sort of output 'device' (like local or online file storage, rather than a printer), + the user could have altered the file-name, and thus the project name should be altered as well.""" + new_name = output_device.getLastOutputName() + if new_name is not None: + if len(os.path.dirname(new_name)) > 0: + self.setProjectName(new_name) + else: + self.setJobName(new_name) diff --git a/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py b/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py index 81891ff430..0a10ea034c 100644 --- a/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py +++ b/plugins/DigitalLibrary/src/DigitalFactoryOutputDevice.py @@ -111,7 +111,7 @@ class DigitalFactoryOutputDevice(ProjectOutputDevice): self._writing = True if new_name and Version(ApplicationMetadata.CuraSDKVersion) >= Version("7.8.0"): # setLastOutputName is only supported in sdk version 7.8.0 and up - self.setLastOutputName(new_name) + self.setLastOutputName(new_name) # On saving, the user can change the name, this should propagate. self.writeStarted.emit(self) def _onWriteFinished(self) -> None: