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
|
import io
|
||||||
from UM.VersionUpgrade import VersionUpgrade
|
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):
|
class VersionUpgrade44to45(VersionUpgrade):
|
||||||
def getCfgVersion(self, serialised: str) -> int:
|
def getCfgVersion(self, serialised: str) -> int:
|
||||||
|
@ -37,17 +43,16 @@ class VersionUpgrade44to45(VersionUpgrade):
|
||||||
# Update version number.
|
# Update version number.
|
||||||
parser["metadata"]["setting_version"] = "11"
|
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:
|
if "values" in parser:
|
||||||
# merge machine_head_with_fans_polygon (preferred) and machine_head_polygon
|
# Merged settings: When two settings are merged, one is preferred.
|
||||||
if "machine_head_with_fans_polygon" in parser["values"]:
|
# If the preferred one is available, that value is taken regardless
|
||||||
if "machine_head_polygon" in parser["values"]:
|
# of the other one. If only the non-preferred one is available, that
|
||||||
del parser["values"]["machine_head_polygon"]
|
# value is moved to the preferred setting value.
|
||||||
elif "machine_head_polygon" in parser["values"]:
|
for preferred, removed in _merged_settings.items():
|
||||||
parser["values"]["machine_head_with_fans_polygon"] = parser["values"]["machine_head_polygon"]
|
if removed in parser["values"]:
|
||||||
del parser["values"]["machine_head_polygon"]
|
if preferred not in parser["values"]:
|
||||||
|
parser["values"][preferred] = parser["values"][removed]
|
||||||
|
del parser["values"][removed]
|
||||||
|
|
||||||
result = io.StringIO()
|
result = io.StringIO()
|
||||||
parser.write(result)
|
parser.write(result)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue