From b85b39ff355c735f86e31db618961c68481bdfbc Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Mon, 23 Apr 2018 11:29:18 +0200 Subject: [PATCH] CURA-5188 If the auto_slice option was enabled in previous version, keep it like this in the new version. Since the default value of this preference changed, we don't want to confuse users that still use the auto_slice option. Those users with clean install or intalling Cura for the first time will have this preference disabled. --- .../VersionUpgrade32to33.py | 28 +++++++++++++++++++ .../VersionUpgrade32to33/__init__.py | 6 ++++ 2 files changed, 34 insertions(+) diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py index 3de451632f..18851b82c7 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/VersionUpgrade32to33.py @@ -85,6 +85,34 @@ class VersionUpgrade32to33(VersionUpgrade): setting_version = int(parser.get("metadata", "setting_version", fallback = 0)) return format_version * 1000000 + setting_version + ## Upgrades a preferences file from version 3.2 to 3.3. + # + # \param serialised The serialised form of a preferences file. + # \param filename The name of the file to upgrade. + def upgradePreferences(self, serialised, filename): + parser = configparser.ConfigParser(interpolation = None) + parser.read_string(serialised) + + # Update version numbers + if "general" not in parser: + parser["general"] = {} + parser["general"]["version"] = "6" + if "metadata" not in parser: + parser["metadata"] = {} + parser["metadata"]["setting_version"] = "4" + + # The auto_slice preference changed its default value to "disabled" so if there is no value in previous versions, + # then it means the desired value is auto_slice "enabled" + if "auto_slice" not in parser["general"]: + parser["general"]["auto_slice"] = "True" + elif parser["general"]["auto_slice"] == "False": # If the value is False, then remove the entry + del parser["general"]["auto_slice"] + + # Re-serialise the file. + output = io.StringIO() + parser.write(output) + return [filename], [output.getvalue()] + ## Upgrades a container stack from version 3.2 to 3.3. # # \param serialised The serialised form of a container stack. diff --git a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py index ae4bf7b2f9..5073be772d 100644 --- a/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py +++ b/plugins/VersionUpgrade/VersionUpgrade32to33/__init__.py @@ -9,6 +9,8 @@ def getMetaData(): return { "version_upgrade": { # From To Upgrade function + ("preferences", 5000004): ("preferences", 6000004, upgrade.upgradePreferences), + ("machine_stack", 3000004): ("machine_stack", 4000004, upgrade.upgradeStack), ("extruder_train", 3000004): ("extruder_train", 4000004, upgrade.upgradeStack), @@ -18,6 +20,10 @@ def getMetaData(): ("variant", 2000004): ("variant", 3000004, upgrade.upgradeVariants) }, "sources": { + "preferences": { + "get_version": upgrade.getCfgVersion, + "location": {"."} + }, "machine_stack": { "get_version": upgrade.getCfgVersion, "location": {"./machine_instances"}