12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- # Copyright (c) 2016 Ultimaker B.V.
- # Cura is released under the terms of the AGPLv3 or higher.
- from UM.VersionUpgrade import VersionUpgrade # Superclass of the plugin.
- from . import MachineInstance # To upgrade machine instances.
- from . import Profile # To upgrade profiles.
- ## Converts configuration from Cura 2.1's file formats to Cura 2.2's.
- #
- # It converts the machine instances and profiles.
- class VersionUpgrade21to22(VersionUpgrade):
- ## Converts machine instances from format version 1 to version 2.
- #
- # \param serialised The serialised machine instance in version 1.
- # \return The serialised machine instance in version 2, or None if the
- # input was not of the correct format.
- def upgradeMachineInstance(self, serialised):
- machine_instance = MachineInstance.importFrom(serialised)
- if not machine_instance: #Invalid file format.
- return None
- return machine_instance.exportTo()
- ## Converts profiles from format version 1 to version 2.
- #
- # \param serialised The serialised profile in version 1.
- # \return The serialised profile in version 2, or None if the input was
- # not of the correct format.
- def upgradeProfile(self, serialised):
- profile = Profile.importFrom(serialised)
- if not profile: # Invalid file format.
- return None
- return profile.exportTo()
- ## Translates settings for the change from Cura 2.1 to 2.2.
- #
- # Each setting is changed in-place in the provided dictionary. This
- # changes the input parameter.
- #
- # \param settings A dictionary of settings (as key-value pairs) to update.
- # \return The same dictionary.
- @staticmethod
- def translateSettings(settings):
- for key, value in settings.items():
- if key == "speed_support_lines": # Setting key was changed for 2.2.
- del settings[key]
- settings["speed_support_infill"] = value
- if key == "retraction_combing": # Combing was made into an enum instead of a boolean.
- settings[key] = "off" if (value == "False") else "all"
- return settings
- ## Translates setting names for the change from Cura 2.1 to 2.2.
- #
- # The setting names are changed in-place in the provided list. This changes
- # the input parameter.
- #
- # \param settings A list of setting names to update.
- # \return The same list.
- @staticmethod
- def translateSettingNames(settings):
- for i in range(0, len(settings)):
- if settings[i] == "speed_support_lines":
- settings[i] = "speed_support_infill"
- return settings
|