Allow setting visibilities to be upgraded

CURA-8810_version_upgrade
This commit is contained in:
jelle Spijker 2021-04-01 16:15:47 +02:00 committed by Jelle Spijker
parent 85fa07f6dd
commit 77ea5e5e89
No known key found for this signature in database
GPG key ID: 6662DC033BE6B99A
4 changed files with 49 additions and 9 deletions

View file

@ -467,6 +467,7 @@ class CuraApplication(QtApplication):
("user", InstanceContainer.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.UserInstanceContainer, "application/x-uranium-instancecontainer"),
("definition_changes", InstanceContainer.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.DefinitionChangesContainer, "application/x-uranium-instancecontainer"),
("variant", InstanceContainer.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.VariantInstanceContainer, "application/x-uranium-instancecontainer"),
("setting_visibility", SettingVisibilityPresetsModel.Version * 1000000 + self.SettingVersion): (self.ResourceTypes.SettingVisibilityPreset, "application/x-uranium-preferences"),
}
)

View file

@ -19,6 +19,8 @@ class SettingVisibilityPresetsModel(QObject):
onItemsChanged = pyqtSignal()
activePresetChanged = pyqtSignal()
Version = 2
def __init__(self, preferences: Preferences, parent = None) -> None:
super().__init__(parent)

View file

@ -92,3 +92,35 @@ class VersionUpgrade48to49(VersionUpgrade):
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]
def upgradeSettingVisibility(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades setting visibility to have a version number and move moved settings to a different category
This updates the post-processing scripts with new parameters.
:param serialized: The original contents of the stack.
:param filename: The original file name of the stack.
:return: A list of new file names, and a list of the new contents for
those files.
"""
parser = configparser.ConfigParser(interpolation = None, allow_no_value=True)
parser.read_string(serialized)
moved_settings = ["top_bottom_extruder_nr", "top_bottom_thickness", "top_thickness", "top_layers",
"bottom_thickness", "bottom_layers", "ironing_enabled"]
# add version number for the first time
parser["general"]["version"] = "2"
if "top_bottom" not in parser:
parser["top_bottom"] = {}
if "shell" in parser:
for setting in parser["shell"]:
if setting in moved_settings:
parser["top_bottom"][setting] = None
del parser["shell"][setting]
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]

View file

@ -20,6 +20,7 @@ def getMetaData() -> Dict[str, Any]:
("definition_changes", 4000016): ("definition_changes", 4000017, upgrade.upgradeInstanceContainer),
("quality_changes", 4000016): ("quality_changes", 4000017, upgrade.upgradeInstanceContainer),
("quality", 4000016): ("quality", 4000017, upgrade.upgradeInstanceContainer),
("setting_visibility", 1000000): ("setting_visibility", 2000017, upgrade.upgradeSettingVisibility),
("user", 4000016): ("user", 4000017, upgrade.upgradeInstanceContainer),
},
"sources": {
@ -47,6 +48,10 @@ def getMetaData() -> Dict[str, Any]:
"get_version": upgrade.getCfgVersion,
"location": {"./quality"}
},
"setting_visibility": {
"get_version": upgrade.getCfgVersion,
"location": {"./setting_visibility"}
},
"user": {
"get_version": upgrade.getCfgVersion,
"location": {"./user"}