From 519d28a142b6426bcc62f6765de90f97282ce516 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Thu, 9 Apr 2020 21:52:23 +0200 Subject: [PATCH] Fix upgrading user containers, which list the printer definition rather than the extruder --- .../VersionUpgrade46to47.py | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py b/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py index cd1b623342..2022821960 100644 --- a/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py +++ b/plugins/VersionUpgrade/VersionUpgrade46to47/VersionUpgrade46to47.py @@ -77,17 +77,25 @@ class VersionUpgrade46to47(VersionUpgrade): if parser["general"]["definition"] == "deltacomb_extruder_0": parser["general"]["definition"] = "deltacomb_base_extruder_0" elif parser["general"]["definition"] == "deltacomb_extruder_1": # Split up the second Deltacomb extruder into 3, creating an extra two extruders. - third_extruder_changes = copy.deepcopy(parser) - fourth_extruder_changes = copy.deepcopy(parser) + parser_e2 = copy.deepcopy(parser) + parser_e3 = copy.deepcopy(parser) parser["general"]["definition"] = "deltacomb_base_extruder_1" - third_extruder_changes["general"]["definition"] = "deltacomb_base_extruder_2" - fourth_extruder_changes["general"]["definition"] = "deltacomb_base_extruder_3" - results.append((third_extruder_changes, filename + "_e2_upgrade")) # Hopefully not already taken. - results.append((fourth_extruder_changes, filename + "_e3_upgrade")) # Hopefully not already taken. - elif parser["general"]["definition"] == "deltacomb": # Global stack. + parser_e2["general"]["definition"] = "deltacomb_base_extruder_2" + parser_e3["general"]["definition"] = "deltacomb_base_extruder_3" + results.append((parser_e2, filename + "_e2_upgrade")) # Hopefully not already taken. + results.append((parser_e3, filename + "_e3_upgrade")) + elif parser["general"]["definition"] == "deltacomb": # On the global stack OR the per-extruder user container. parser["general"]["definition"] = "deltacomb_dc20" + if "metadata" in parser and "extruder" in parser["metadata"]: # Per-extruder user container. + parser_e2 = copy.deepcopy(parser) + parser_e3 = copy.deepcopy(parser) + parser_e2["metadata"]["extruder"] += "_e2_upgrade" + parser_e3["metadata"]["extruder"] += "_e3_upgrade" + results.append((parser_e2, filename + "_e2_upgrade")) + results.append((parser_e3, filename + "_e3_upgrade")) + # Now go upgrade with the generic instance container method. final_serialised = [] final_filenames = []