From 7f1b060ef90fb42bec8e2a4614552a8dc217f91b Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Mon, 24 Oct 2016 13:50:49 +0200 Subject: [PATCH 1/3] SettingInstanceManager now also watches containerchanged of extruder stacks CURA-2674 --- cura/Settings/SettingInheritanceManager.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cura/Settings/SettingInheritanceManager.py b/cura/Settings/SettingInheritanceManager.py index 84002128c7..b110febd87 100644 --- a/cura/Settings/SettingInheritanceManager.py +++ b/cura/Settings/SettingInheritanceManager.py @@ -56,9 +56,11 @@ class SettingInheritanceManager(QObject): if new_active_stack != self._active_container_stack: # Check if changed if self._active_container_stack: # Disconnect signal from old container (if any) self._active_container_stack.propertyChanged.disconnect(self._onPropertyChanged) + self._active_container_stack.containersChanged.disconnect(self._onContainersChanged) self._active_container_stack = new_active_stack self._active_container_stack.propertyChanged.connect(self._onPropertyChanged) + self._active_container_stack.containersChanged.connect(self._onContainersChanged) self._update() # Ensure that the settings_with_inheritance_warning list is populated. def _onPropertyChanged(self, key, property_name): @@ -178,7 +180,9 @@ class SettingInheritanceManager(QObject): self._onActiveExtruderChanged() def _onContainersChanged(self, container): - self._onActiveExtruderChanged() + # TODO: Multiple container changes in sequence now cause quite a few recalculations. + # This isn't that big of an issue, but it could be in the future. + self._update() @staticmethod def createSettingInheritanceManager(engine=None, script_engine=None): From be0e48664a4d99d89131845263aaece122c73247 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Mon, 24 Oct 2016 14:24:02 +0200 Subject: [PATCH 2/3] Remove manually specified utf-8 encoding Since SaveFile now defaults to UTF-8 --- cura/CuraApplication.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 7c45408488..ec52c7aea1 100644 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -382,7 +382,7 @@ class CuraApplication(QtApplication): if path: instance.setPath(path) - with SaveFile(path, "wt", -1, "utf-8") as f: + with SaveFile(path, "wt") as f: f.write(data) for stack in ContainerRegistry.getInstance().findContainerStacks(): @@ -409,7 +409,7 @@ class CuraApplication(QtApplication): path = Resources.getStoragePath(self.ResourceTypes.ExtruderStack, file_name) if path: stack.setPath(path) - with SaveFile(path, "wt", -1, "utf-8") as f: + with SaveFile(path, "wt") as f: f.write(data) From bfec96f58425517cb89fa91d4c41a085fa515c70 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Mon, 24 Oct 2016 14:24:49 +0200 Subject: [PATCH 3/3] Set encoding to utf-8 when writing files Since we assume utf-8 in a lot of places. Contributes to CURA-2692 --- .../RemovableDriveOutputDevice/RemovableDriveOutputDevice.py | 2 +- plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py index 8b6dce8292..3bd957ec5e 100644 --- a/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py +++ b/plugins/RemovableDriveOutputDevice/RemovableDriveOutputDevice.py @@ -67,7 +67,7 @@ class RemovableDriveOutputDevice(OutputDevice): try: Logger.log("d", "Writing to %s", file_name) # Using buffering greatly reduces the write time for many lines of gcode - self._stream = open(file_name, "wt", buffering = 1) + self._stream = open(file_name, "wt", buffering = 1, encoding = "utf-8") job = WriteMeshJob(writer, self._stream, node, MeshWriter.OutputMode.TextMode) job.setFileName(file_name) job.progress.connect(self._onProgress) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py index 2053b8acf9..4491a00d3d 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py @@ -111,7 +111,7 @@ class MachineInstance: user_profile_file = os.path.join(user_storage, urllib.parse.quote_plus(self._name) + "_current_settings.inst.cfg") if not os.path.exists(user_storage): os.makedirs(user_storage) - with open(user_profile_file, "w") as file_handle: + with open(user_profile_file, "w", encoding = "utf-8") as file_handle: user_profile.write(file_handle) version_upgrade_manager.upgradeExtraFile(user_storage, urllib.parse.quote_plus(self._name), "user")