mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Fix material upgrade and version checking
CURA-4519 Less duplicated code, but it's still one of the worst parts...
This commit is contained in:
parent
a623c2ae75
commit
25c41062e1
3 changed files with 14 additions and 20 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue