Make get[ConfigurationType|Version]FromSerialized class methods

This way we can call them before an instance has been created, in order to upgrade the serialized forms.

Contributes to issue CURA-4243.
This commit is contained in:
Ghostkeeper 2017-11-01 16:18:08 +01:00
parent e48b151d40
commit d369f92020
No known key found for this signature in database
GPG key ID: 5252B696FB5E7C7A

View file

@ -14,7 +14,6 @@ from UM.Logger import Logger
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
import UM.Dictionary import UM.Dictionary
from UM.PluginRegistry import PluginRegistry
from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
@ -37,7 +36,8 @@ class XmlMaterialProfile(InstanceContainer):
# #
# \param xml_version: The version number found in an XML file. # \param xml_version: The version number found in an XML file.
# \return The corresponding setting_version. # \return The corresponding setting_version.
def xmlVersionToSettingVersion(self, xml_version: str) -> int: @classmethod
def xmlVersionToSettingVersion(cls, xml_version: str) -> int:
if xml_version == "1.3": if xml_version == "1.3":
return 3 return 3
return 0 #Older than 1.3. return 0 #Older than 1.3.
@ -398,18 +398,20 @@ class XmlMaterialProfile(InstanceContainer):
self._dirty = False self._dirty = False
self._path = "" self._path = ""
def getConfigurationTypeFromSerialized(self, serialized: str) -> Optional[str]: @classmethod
def getConfigurationTypeFromSerialized(cls, serialized: str) -> Optional[str]:
return "materials" return "materials"
def getVersionFromSerialized(self, serialized: str) -> Optional[int]: @classmethod
def getVersionFromSerialized(cls, serialized: str) -> Optional[int]:
data = ET.fromstring(serialized) data = ET.fromstring(serialized)
version = 1 version = 1
# get setting version # get setting version
if "version" in data.attrib: if "version" in data.attrib:
setting_version = self.xmlVersionToSettingVersion(data.attrib["version"]) setting_version = cls.xmlVersionToSettingVersion(data.attrib["version"])
else: else:
setting_version = self.xmlVersionToSettingVersion("1.2") setting_version = cls.xmlVersionToSettingVersion("1.2")
return version * 1000000 + setting_version return version * 1000000 + setting_version