mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-12 01:07:52 -06:00
Make merged settings extensible
This way it's: - documented at the top of the file to make it easier to find all the changes, and - easier to extend the list of merged settings. Contributes to issue CURA-7077.
This commit is contained in:
parent
824dd59e76
commit
dbda415bba
1 changed files with 15 additions and 10 deletions
|
@ -3,6 +3,12 @@ from typing import Tuple, List
|
|||
import io
|
||||
from UM.VersionUpgrade import VersionUpgrade
|
||||
|
||||
# Settings that were merged into one. Each one is a pair of settings. If both
|
||||
# are overwritten, the key wins. If only the key or the value is overwritten,
|
||||
# that value is used in the key.
|
||||
_merged_settings = {
|
||||
"machine_head_with_fans_polygon": "machine_head_polygon"
|
||||
}
|
||||
|
||||
class VersionUpgrade44to45(VersionUpgrade):
|
||||
def getCfgVersion(self, serialised: str) -> int:
|
||||
|
@ -37,17 +43,16 @@ class VersionUpgrade44to45(VersionUpgrade):
|
|||
# Update version number.
|
||||
parser["metadata"]["setting_version"] = "11"
|
||||
|
||||
# Merged preferences: machine_head_polygon and machine_head_with_fans_polygon -> machine_head_with_fans_polygon
|
||||
# When both are present, machine_head_polygon will be removed
|
||||
# When only one of the two is present, it's value will be used
|
||||
if "values" in parser:
|
||||
# merge machine_head_with_fans_polygon (preferred) and machine_head_polygon
|
||||
if "machine_head_with_fans_polygon" in parser["values"]:
|
||||
if "machine_head_polygon" in parser["values"]:
|
||||
del parser["values"]["machine_head_polygon"]
|
||||
elif "machine_head_polygon" in parser["values"]:
|
||||
parser["values"]["machine_head_with_fans_polygon"] = parser["values"]["machine_head_polygon"]
|
||||
del parser["values"]["machine_head_polygon"]
|
||||
# Merged settings: When two settings are merged, one is preferred.
|
||||
# If the preferred one is available, that value is taken regardless
|
||||
# of the other one. If only the non-preferred one is available, that
|
||||
# value is moved to the preferred setting value.
|
||||
for preferred, removed in _merged_settings.items():
|
||||
if removed in parser["values"]:
|
||||
if preferred not in parser["values"]:
|
||||
parser["values"][preferred] = parser["values"][removed]
|
||||
del parser["values"][removed]
|
||||
|
||||
result = io.StringIO()
|
||||
parser.write(result)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue