Browse Source

Fix custom quality profile upgrade for UM2 family

The custom quality profiles for the UM2 family used to be saved as
profiles for "fdmprinter". They now should be updated to set for
"ultimaker2".
Lipu Fei 7 years ago
parent
commit
aa7b456594
1 changed files with 16 additions and 17 deletions
  1. 16 17
      plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py

+ 16 - 17
plugins/VersionUpgrade/VersionUpgrade27to30/VersionUpgrade27to30.py

@@ -118,24 +118,23 @@ class VersionUpgrade27to30(VersionUpgrade):
         if not parser.has_section("general"):
             parser.add_section("general")
 
-        # Need to exclude the following names:
-        # - ultimaker2_plus
-        # - ultimaker2_go
-        # - ultimaker2_extended
-        # - ultimaker2_extended_plus
-        exclude_prefix_list = ["ultimaker2_plus_",
-                               "ultimaker2_go_",
-                               "ultimaker2_extended_",
-                               "ultimaker2_extended_plus_"]
+        # The ultimaker 2 family
+        ultimaker2_prefix_list = ["ultimaker2_extended_",
+                                  "ultimaker2_go_",
+                                  "ultimaker2_"]
+        # ultimaker 2+ is a different family, so don't do anything with those
+        exclude_prefix_list = ["ultimaker2_extended_plus_",
+                               "ultimaker2_plus_"]
+
+        # set machine definition to "ultimaker2" for the custom quality profiles that can be for the ultimaker 2 family
         file_base_name = os.path.basename(filename)
-        if file_base_name.startswith("ultimaker2_"):
-            skip_this = False
-            for exclude_prefix in exclude_prefix_list:
-                if file_base_name.startswith(exclude_prefix):
-                    skip_this = True
-                    break
-            if not skip_this:
-                parser["general"]["definition"] = "ultimaker2"
+        is_ultimaker2_family = not any(file_base_name.startswith(ep) for ep in exclude_prefix_list)
+        if not is_ultimaker2_family:
+            is_ultimaker2_family = any(file_base_name.startswith(ep) for ep in ultimaker2_prefix_list)
+
+        # ultimaker2 family quality profiles used to set as "fdmprinter" profiles
+        if is_ultimaker2_family and parser["general"]["definition"] == "fdmprinter":
+            parser["general"]["definition"] = "ultimaker2"
 
         # Update version numbers
         parser["general"]["version"] = "2"