From c223044541cac81ff4176635528bbeab70507587 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Sep 2016 12:45:20 +0200 Subject: [PATCH 1/2] Don't modify original dict while iterating over it Just store the results in a new dict and return that one. --- .../VersionUpgrade21to22.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 286667f5b0..2c1289e3f5 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -390,17 +390,20 @@ class VersionUpgrade21to22(VersionUpgrade): # \return The same dictionary. @staticmethod def translateSettings(settings): + new_settings = {} for key, value in settings.items(): if key in _removed_settings: - del settings[key] - elif key == "retraction_combing": #Combing was made into an enum instead of a boolean. - settings[key] = "off" if (value == "False") else "all" - elif key in _setting_name_translations: - del settings[key] - settings[_setting_name_translations[key]] = value + continue + if key == "retraction_combing": #Combing was made into an enum instead of a boolean. + new_settings[key] = "off" if (value == "False") else "all" + continue + if key in _setting_name_translations: + new_settings[_setting_name_translations[key]] = value + continue + new_settings[key] = value if "infill_overlap" in settings: # New setting, added in 2.3 - settings["skin_overlap"] = settings["infill_overlap"] - return settings + new_settings["skin_overlap"] = settings["infill_overlap"] + return new_settings ## Translates a setting name for the change from Cura 2.1 to 2.2. # From ef3b6905b7412809ad7af348ba40db7bfa9a4d55 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 15 Sep 2016 12:47:31 +0200 Subject: [PATCH 2/2] Translate skin overlap properly From this dict it also gets updated in other places, such as the preferences. Contributes to issue CURA-844. --- .../VersionUpgrade21to22/VersionUpgrade21to22.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py index 2c1289e3f5..2b5fc1f7ee 100644 --- a/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py +++ b/plugins/VersionUpgrade/VersionUpgrade21to22/VersionUpgrade21to22.py @@ -130,6 +130,7 @@ _setting_name_translations = { "remove_overlapping_walls_enabled": "travel_compensate_overlapping_walls_enabled", "remove_overlapping_walls_x_enabled": "travel_compensate_overlapping_walls_x_enabled", "retraction_hop": "retraction_hop_enabled", + "skin_overlap": "infill_overlap", "skirt_line_width": "skirt_brim_line_width", "skirt_minimal_length": "skirt_brim_minimal_length", "skirt_speed": "skirt_brim_speed", @@ -401,8 +402,6 @@ class VersionUpgrade21to22(VersionUpgrade): new_settings[_setting_name_translations[key]] = value continue new_settings[key] = value - if "infill_overlap" in settings: # New setting, added in 2.3 - new_settings["skin_overlap"] = settings["infill_overlap"] return new_settings ## Translates a setting name for the change from Cura 2.1 to 2.2.