Remove old settings from resource files

Contributes to CURA-10077
This commit is contained in:
jspijker 2023-01-27 17:11:10 +01:00
parent f2fd58454a
commit 871017da73
15 changed files with 164 additions and 34 deletions

View file

@ -0,0 +1,94 @@
# Copyright (c) 2023 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher.
import configparser
from typing import Tuple, List
import io
from UM.VersionUpgrade import VersionUpgrade
_removed_settings = {
"limit_support_retractions",
"material_flow_dependent_temperature",
}
class VersionUpgrade52to53(VersionUpgrade):
def upgradePreferences(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades preferences to remove from the visibility list the settings that were removed in this version.
It also changes the preferences to have the new version number.
This removes any settings that were removed in the new Cura version.
:param serialized: The original contents of the preferences file.
:param filename: The file name of the preferences file.
:return: A list of new file names, and a list of the new contents for
those files.
"""
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialized)
# Update version number.
parser["metadata"]["setting_version"] = "21"
# Remove deleted settings from the visible settings list.
if "general" in parser and "visible_settings" in parser["general"]:
visible_settings = set(parser["general"]["visible_settings"].split(";"))
for removed in _removed_settings:
if removed in visible_settings:
visible_settings.remove(removed)
parser["general"]["visible_settings"] = ";".join(visible_settings)
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]
def upgradeInstanceContainer(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades instance containers to remove the settings that were removed in this version.
It also changes the instance containers to have the new version number.
This removes any settings that were removed in the new Cura version and updates settings that need to be updated
with a new value.
:param serialized: The original contents of the instance container.
:param filename: The original file name of the instance container.
:return: A list of new file names, and a list of the new contents for
those files.
"""
parser = configparser.ConfigParser(interpolation = None, comment_prefixes = ())
parser.read_string(serialized)
# Update version number.
parser["metadata"]["setting_version"] = "21"
if "values" in parser:
# Remove deleted settings from the instance containers.
for removed in _removed_settings:
if removed in parser["values"]:
del parser["values"][removed]
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]
def upgradeStack(self, serialized: str, filename: str) -> Tuple[List[str], List[str]]:
"""
Upgrades stacks to have the new version number.
: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)
parser.read_string(serialized)
# Update version number.
if "metadata" not in parser:
parser["metadata"] = {}
parser["metadata"]["setting_version"] = "21"
result = io.StringIO()
parser.write(result)
return [filename], [result.getvalue()]

View file

@ -0,0 +1,59 @@
# Copyright (c) 2023 UltiMaker
# Cura is released under the terms of the LGPLv3 or higher.
from typing import Any, Dict, TYPE_CHECKING
from . import VersionUpgrade52to53
if TYPE_CHECKING:
from UM.Application import Application
upgrade = VersionUpgrade52to53.VersionUpgrade52to53()
def getMetaData() -> Dict[str, Any]:
return {
"version_upgrade": {
# From To Upgrade function
("preferences", 7000019): ("preferences", 7000020, upgrade.upgradePreferences),
("machine_stack", 5000019): ("machine_stack", 5000020, upgrade.upgradeStack),
("extruder_train", 5000019): ("extruder_train", 5000020, upgrade.upgradeStack),
("definition_changes", 4000019): ("definition_changes", 4000020, upgrade.upgradeInstanceContainer),
("quality_changes", 4000019): ("quality_changes", 4000020, upgrade.upgradeInstanceContainer),
("quality", 4000019): ("quality", 4000020, upgrade.upgradeInstanceContainer),
("user", 4000019): ("user", 4000020, 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}

View file

@ -0,0 +1,8 @@
{
"name": "Version Upgrade to 5.3",
"author": "UltiMaker",
"version": "1.0.0",
"description": "Upgrades configurations from Cura 5.2 to Cura 5.3.",
"api": 8,
"i18n-catalog": "cura"
}

View file

@ -2409,7 +2409,7 @@
"minimum_value_warning": "0", "minimum_value_warning": "0",
"maximum_value_warning": "285", "maximum_value_warning": "285",
"maximum_value": "365", "maximum_value": "365",
"enabled": "machine_nozzle_temp_enabled and not (material_flow_dependent_temperature)", "enabled": "machine_nozzle_temp_enabled",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
@ -2471,7 +2471,7 @@
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "10.0", "maximum_value_warning": "10.0",
"maximum_value": "machine_nozzle_heat_up_speed", "maximum_value": "machine_nozzle_heat_up_speed",
"enabled": "material_flow_dependent_temperature or (extruders_enabled_count > 1 and material_final_print_temperature != material_print_temperature)", "enabled": "extruders_enabled_count > 1 and material_final_print_temperature != material_print_temperature",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
@ -4103,16 +4103,6 @@
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },
"limit_support_retractions":
{
"label": "Limit Support Retractions",
"description": "Omit retraction when moving from support to support in a straight line. Enabling this setting saves print time, but can lead to excessive stringing within the support structure.",
"type": "bool",
"default_value": true,
"enabled": "retraction_enable and (support_enable or support_meshes_present)",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"retraction_combing": "retraction_combing":
{ {
"label": "Combing Mode", "label": "Combing Mode",
@ -6836,16 +6826,6 @@
"default_value": false, "default_value": false,
"settable_per_mesh": true "settable_per_mesh": true
}, },
"material_flow_dependent_temperature":
{
"label": "Auto Temperature",
"description": "Change the temperature for each layer automatically with the average flow speed of that layer.",
"type": "bool",
"default_value": false,
"enabled": "machine_nozzle_temp_enabled and False",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"material_flow_temp_graph": "material_flow_temp_graph":
{ {
"label": "Flow Temperature Graph", "label": "Flow Temperature Graph",
@ -6853,7 +6833,7 @@
"unit": "[[mm\u00b3,\u00b0C]]", "unit": "[[mm\u00b3,\u00b0C]]",
"type": "str", "type": "str",
"default_value": "[[3.5, 200],[7.0, 240]]", "default_value": "[[3.5, 200],[7.0, 240]]",
"enabled": "False and machine_nozzle_temp_enabled and material_flow_dependent_temperature", "enabled": "False and machine_nozzle_temp_enabled",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true "settable_per_extruder": true
}, },

View file

@ -53,7 +53,6 @@
"jerk_enabled": { "value": false }, "jerk_enabled": { "value": false },
"layer_height": { "value": 0.16 }, "layer_height": { "value": 0.16 },
"layer_height_0": { "value": 0.32 }, "layer_height_0": { "value": 0.32 },
"limit_support_retractions": { "value": true },
"line_width": { "value": 0.4 }, "line_width": { "value": 0.4 },
"machine_depth": { "default_value": 300 }, "machine_depth": { "default_value": 300 },
"machine_end_gcode": { "default_value": "M104 S0\n M140 S0\n ;Retract the filament\n G92 E1\n G1 E-1 F300\n G28 X0 Y0\n G1 Y300 F3000 ;Move bed forward\n M84" }, "machine_end_gcode": { "default_value": "M104 S0\n M140 S0\n ;Retract the filament\n G92 E1\n G1 E-1 F300\n G28 X0 Y0\n G1 Y300 F3000 ;Move bed forward\n M84" },

View file

@ -41,7 +41,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.08 layer_height = 0.08
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 0 material_bed_temperature = 0
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -41,7 +41,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.24 layer_height = 0.24
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 0 material_bed_temperature = 0
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -41,7 +41,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.16 layer_height = 0.16
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 0 material_bed_temperature = 0
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -40,7 +40,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.08 layer_height = 0.08
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 50 material_bed_temperature = 50
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -38,7 +38,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.28 layer_height = 0.28
layer_height_0 = 0.4 layer_height_0 = 0.4
limit_support_retractions = True
line_width = 0.6 line_width = 0.6
material_bed_temperature = 50 material_bed_temperature = 50
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -40,7 +40,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.24 layer_height = 0.24
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 50 material_bed_temperature = 50
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -40,7 +40,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.16 layer_height = 0.16
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 50 material_bed_temperature = 50
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -40,7 +40,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.08 layer_height = 0.08
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 0 material_bed_temperature = 0
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -40,7 +40,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.24 layer_height = 0.24
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 0 material_bed_temperature = 0
material_final_print_temperature = 220 material_final_print_temperature = 220

View file

@ -40,7 +40,6 @@ ironing_enabled = False
jerk_enabled = False jerk_enabled = False
layer_height = 0.16 layer_height = 0.16
layer_height_0 = 0.24 layer_height_0 = 0.24
limit_support_retractions = True
line_width = 0.4 line_width = 0.4
material_bed_temperature = 0 material_bed_temperature = 0
material_final_print_temperature = 220 material_final_print_temperature = 220