mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-24 06:39:38 +08:00
Add version-upgrader to 5.10
Nescesary because of the updated overhang wall-speed setting. part of CURA-12352
This commit is contained in:
parent
2db4d16a80
commit
2ca18cc205
@ -0,0 +1,68 @@
|
|||||||
|
import configparser
|
||||||
|
import io
|
||||||
|
from typing import Dict, Tuple, List
|
||||||
|
|
||||||
|
from UM.VersionUpgrade import VersionUpgrade
|
||||||
|
|
||||||
|
_RENAMED_SETTINGS = {
|
||||||
|
"wall_overhang_speed_factor": "wall_overhang_speed_factors"
|
||||||
|
} # type: Dict[str, str]
|
||||||
|
|
||||||
|
_NEW_SETTING_VERSION = "25"
|
||||||
|
|
||||||
|
|
||||||
|
class VersionUpgrade59to510(VersionUpgrade):
|
||||||
|
def upgradePreferences(self, serialized: str, filename: str):
|
||||||
|
parser = configparser.ConfigParser(interpolation = None)
|
||||||
|
parser.read_string(serialized)
|
||||||
|
|
||||||
|
# Fix 'renamed'(ish) settings for visibility
|
||||||
|
if "visible_settings" in parser["general"]:
|
||||||
|
all_setting_keys = parser["general"]["visible_settings"].strip().split(";")
|
||||||
|
if all_setting_keys:
|
||||||
|
for idx, key in enumerate(all_setting_keys):
|
||||||
|
if key in _RENAMED_SETTINGS:
|
||||||
|
all_setting_keys[idx] = _RENAMED_SETTINGS[key]
|
||||||
|
parser["general"]["visible_settings"] = ";".join(all_setting_keys)
|
||||||
|
|
||||||
|
# Update version number.
|
||||||
|
parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
|
||||||
|
|
||||||
|
result = io.StringIO()
|
||||||
|
parser.write(result)
|
||||||
|
return [filename], [result.getvalue()]
|
||||||
|
|
||||||
|
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
|
||||||
|
parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ())
|
||||||
|
parser.read_string(serialized)
|
||||||
|
|
||||||
|
# Update version number.
|
||||||
|
parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
|
||||||
|
|
||||||
|
if "values" in parser:
|
||||||
|
for old_name, new_name in _RENAMED_SETTINGS.items():
|
||||||
|
if old_name in parser["values"]:
|
||||||
|
parser["values"][new_name] = parser["values"][old_name]
|
||||||
|
del parser["values"][old_name]
|
||||||
|
if "wall_overhang_speed_factors" in parser["values"]:
|
||||||
|
old_value = float(parser["values"]["wall_overhang_speed_factors"])
|
||||||
|
new_value = [max(1, int(round(old_value)))]
|
||||||
|
parser["values"]["wall_overhang_speed_factor"] = str(new_value)
|
||||||
|
|
||||||
|
result = io.StringIO()
|
||||||
|
parser.write(result)
|
||||||
|
return [filename], [result.getvalue()]
|
||||||
|
|
||||||
|
def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
|
||||||
|
parser = configparser.ConfigParser(interpolation = None)
|
||||||
|
parser.read_string(serialized)
|
||||||
|
|
||||||
|
# Update version number.
|
||||||
|
if "metadata" not in parser:
|
||||||
|
parser["metadata"] = {}
|
||||||
|
|
||||||
|
parser["metadata"]["setting_version"] = _NEW_SETTING_VERSION
|
||||||
|
|
||||||
|
result = io.StringIO()
|
||||||
|
parser.write(result)
|
||||||
|
return [filename], [result.getvalue()]
|
60
plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py
Normal file
60
plugins/VersionUpgrade/VersionUpgrade59to510/__init__.py
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# Copyright (c) 2024 UltiMaker
|
||||||
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
|
from typing import Any, Dict, TYPE_CHECKING
|
||||||
|
|
||||||
|
from . import VersionUpgrade59to510
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from UM.Application import Application
|
||||||
|
|
||||||
|
upgrade = VersionUpgrade59to510.VersionUpgrade59to510()
|
||||||
|
|
||||||
|
def getMetaData() -> Dict[str, Any]:
|
||||||
|
return {
|
||||||
|
"version_upgrade": {
|
||||||
|
# From To Upgrade function
|
||||||
|
("preferences", 7000024): ("preferences", 7000025, upgrade.upgradePreferences),
|
||||||
|
("machine_stack", 6000024): ("machine_stack", 6000025, upgrade.upgradeStack),
|
||||||
|
("extruder_train", 6000024): ("extruder_train", 6000025, upgrade.upgradeStack),
|
||||||
|
("definition_changes", 4000024): ("definition_changes", 4000025, upgrade.upgradeInstanceContainer),
|
||||||
|
("quality_changes", 4000024): ("quality_changes", 4000025, upgrade.upgradeInstanceContainer),
|
||||||
|
("quality", 4000024): ("quality", 4000025, upgrade.upgradeInstanceContainer),
|
||||||
|
("user", 4000024): ("user", 4000025, upgrade.upgradeInstanceContainer),
|
||||||
|
("intent", 4000024): ("intent", 4000025, upgrade.upgradeInstanceContainer),
|
||||||
|
},
|
||||||
|
"sources": {
|
||||||
|
"preferences": {
|
||||||
|
"get_version": upgrade.getCfgVersion,
|
||||||
|
"location": {"."}
|
||||||
|
},
|
||||||
|
"machine_stack": {
|
||||||
|
"get_version": upgrade.getCfgVersion,
|
||||||
|
"location": {"./machine_instances"}
|
||||||
|
},
|
||||||
|
"extruder_train": {
|
||||||
|
"get_version": upgrade.getCfgVersion,
|
||||||
|
"location": {"./extruders"}
|
||||||
|
},
|
||||||
|
"definition_changes": {
|
||||||
|
"get_version": upgrade.getCfgVersion,
|
||||||
|
"location": {"./definition_changes"}
|
||||||
|
},
|
||||||
|
"quality_changes": {
|
||||||
|
"get_version": upgrade.getCfgVersion,
|
||||||
|
"location": {"./quality_changes"}
|
||||||
|
},
|
||||||
|
"quality": {
|
||||||
|
"get_version": upgrade.getCfgVersion,
|
||||||
|
"location": {"./quality"}
|
||||||
|
},
|
||||||
|
"user": {
|
||||||
|
"get_version": upgrade.getCfgVersion,
|
||||||
|
"location": {"./user"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def register(app: "Application") -> Dict[str, Any]:
|
||||||
|
return {"version_upgrade": upgrade}
|
8
plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json
Normal file
8
plugins/VersionUpgrade/VersionUpgrade59to510/plugin.json
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"name": "Version Upgrade 5.9 to 5.10",
|
||||||
|
"author": "Ultimaker B.V.",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "Upgrades configurations from Cura 5.9 to Cura 5.10",
|
||||||
|
"api": 8,
|
||||||
|
"i18n-catalog": "cura"
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user