Browse Source

Don't break if current settings machine is unknown

Currently it sets the user profile to 'empty', which is bad because empty is read-only. But it allows me to continue for now. I'll find a solution for that later.

Contributes to issue CURA-844.
Ghostkeeper 8 years ago
parent
commit
9c7a28fa2d

+ 5 - 1
plugins/VersionUpgrade/VersionUpgrade21to22/MachineInstance.py

@@ -79,9 +79,13 @@ class MachineInstance:
         if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #This machine now has machine-quality profiles.
         if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #This machine now has machine-quality profiles.
             active_profile += "_" + active_material #That means that the profile was split into multiple.
             active_profile += "_" + active_material #That means that the profile was split into multiple.
         variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name)
         variant = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translateVariant(self._variant_name, type_name)
+        if self._type_name in VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.machinesWithMachineQuality(): #The current settings profile is now machine-specific.
+            current_settings = "empty" #The profile didn't know the definition ID when it was upgraded, so it will have been invalid. Sorry, your current settings are lost now.
+        else:
+            current_settings = self._name + "_current_settings"
 
 
         containers = [
         containers = [
-            self._name + "_current_settings",
+            current_settings,
             active_profile,
             active_profile,
             active_material,
             active_material,
             variant,
             variant,

+ 1 - 1
plugins/VersionUpgrade/VersionUpgrade21to22/Profile.py

@@ -99,7 +99,7 @@ class Profile:
             translated_machine = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._machine_type_id)
             translated_machine = VersionUpgrade21to22.VersionUpgrade21to22.VersionUpgrade21to22.translatePrinter(self._machine_type_id)
             config.set("general", "definition", translated_machine)
             config.set("general", "definition", translated_machine)
         else:
         else:
-            config.set("general", "definition", "fdmprinter")
+            config.set("general", "definition", "fdmprinter") #In this case, the machine definition is unknown, and it might now have machine-specific profiles, in which case this will fail.
 
 
         config.add_section("metadata")
         config.add_section("metadata")
         if self._type:
         if self._type: