diff --git a/plugins/XmlMaterialProfile/XmlMaterialProfile.py b/plugins/XmlMaterialProfile/XmlMaterialProfile.py index 51a3c51a8b..86f90e8970 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialProfile.py +++ b/plugins/XmlMaterialProfile/XmlMaterialProfile.py @@ -33,9 +33,10 @@ class XmlMaterialProfile(InstanceContainer): # # \param xml_version: The version number found in an XML file. # \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": - return 4 + return CuraApplication.SettingVersion return 0 #Older than 1.3. def getInheritedFiles(self): @@ -407,15 +408,16 @@ class XmlMaterialProfile(InstanceContainer): def getConfigurationTypeFromSerialized(self, serialized: str) -> Optional[str]: return "materials" - def getVersionFromSerialized(self, serialized: str) -> Optional[int]: + @classmethod + def getVersionFromSerialized(cls, serialized: str) -> Optional[int]: data = ET.fromstring(serialized) - version = 1 + version = XmlMaterialProfile.Version # get setting version if "version" in data.attrib: - setting_version = self.xmlVersionToSettingVersion(data.attrib["version"]) + setting_version = XmlMaterialProfile.xmlVersionToSettingVersion(data.attrib["version"]) else: - setting_version = self.xmlVersionToSettingVersion("1.2") + setting_version = XmlMaterialProfile.xmlVersionToSettingVersion("1.2") return version * 1000000 + setting_version diff --git a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py index c882239dba..167a9f2849 100644 --- a/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py +++ b/plugins/XmlMaterialProfile/XmlMaterialUpgrader.py @@ -5,24 +5,16 @@ import xml.etree.ElementTree as ET from UM.VersionUpgrade import VersionUpgrade +from cura.CuraApplication import CuraApplication +from .XmlMaterialProfile import XmlMaterialProfile + class XmlMaterialUpgrader(VersionUpgrade): def getXmlVersion(self, serialized): - data = ET.fromstring(serialized) - - version = 1 - # get setting version - if "version" in data.attrib: - setting_version = self._xmlVersionToSettingVersion(data.attrib["version"]) - else: - setting_version = self._xmlVersionToSettingVersion("1.2") - - return version * 1000000 + setting_version + return XmlMaterialProfile.getVersionFromSerialized(serialized) def _xmlVersionToSettingVersion(self, xml_version: str) -> int: - if xml_version == "1.3": - return 2 - return 0 #Older than 1.3. + return XmlMaterialProfile.xmlVersionToSettingVersion(xml_version) def upgradeMaterial(self, serialised, filename): data = ET.fromstring(serialised) diff --git a/plugins/XmlMaterialProfile/__init__.py b/plugins/XmlMaterialProfile/__init__.py index 8173e9dd04..70a359ee76 100644 --- a/plugins/XmlMaterialProfile/__init__.py +++ b/plugins/XmlMaterialProfile/__init__.py @@ -19,7 +19,7 @@ def getMetaData(): "mimetype": "application/x-ultimaker-material-profile" }, "version_upgrade": { - ("materials", 1000000): ("materials", 1000003, upgrader.upgradeMaterial), + ("materials", 1000000): ("materials", 1000004, upgrader.upgradeMaterial), }, "sources": { "materials": {