From c51647026cb6f0916f797af8be1117708c8cfa7b Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 10 Apr 2020 00:28:27 +0200 Subject: [PATCH] Also make IDs unique Took me a while to see why Cura was confusing the extruder stacks. It worked fine during the actual upgrade itself. Then later after the start-up sequence it suddenly re-wrote them wrongly. Why is there an ID field in here? Shouldn't it just take the file name as the ID? Stupid! --- .../VersionUpgrade46to47.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py b/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py index 455b5b4255..d1e8fa28f0 100644 --- a/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py +++ b/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py @@ -156,8 +156,7 @@ class VersionUpgrade46to47(VersionUpgrade): """ parser = configparser.ConfigParser(interpolation = None) parser.read_string(serialized) - result_parsers = [parser] - result_filenames = [filename] + results = [(parser, filename)] # Update version number. if "metadata" not in parser: @@ -176,31 +175,35 @@ class VersionUpgrade46to47(VersionUpgrade): parser["containers"]["7"] = "deltacomb_base_extruder_1" # Copy this extruder to extruder 3 and 4. extruder3 = copy.deepcopy(parser) + extruder4 = copy.deepcopy(parser) + + extruder3["general"]["id"] += "_e2_upgrade" extruder3["metadata"]["position"] = "2" extruder3["containers"]["0"] += "_e2_upgrade" if extruder3["containers"]["1"] != "empty_quality_changes": extruder3["containers"]["1"] += "_e2_upgrade" extruder3["containers"]["6"] += "_e2_upgrade" extruder3["containers"]["7"] = "deltacomb_base_extruder_2" - result_parsers.append(extruder3) - result_filenames.append(filename + "_e2_upgrade") - extruder4 = copy.deepcopy(parser) + results.append((extruder3, filename + "_e2_upgrade")) + + extruder4["general"]["id"] += "_e3_upgrade" extruder4["metadata"]["position"] = "3" extruder4["containers"]["0"] += "_e3_upgrade" if extruder4["containers"]["1"] != "empty_quality_changes": extruder4["containers"]["1"] += "_e3_upgrade" extruder4["containers"]["6"] += "_e3_upgrade" extruder4["containers"]["7"] = "deltacomb_base_extruder_3" - result_parsers.append(extruder4) - result_filenames.append(filename + "_e3_upgrade") + results.append((extruder4, filename + "_e3_upgrade")) elif parser["containers"]["7"] == "deltacomb": # Global stack. parser["containers"]["7"] = "deltacomb_dc20" parser["containers"]["3"] = "deltacomb_global_C" result_serialized = [] - for result_parser in result_parsers: + result_filenames = [] + for result_parser, result_filename in results: result_ss = io.StringIO() result_parser.write(result_ss) result_serialized.append(result_ss.getvalue()) + result_filenames.append(result_filename) return result_filenames, result_serialized