mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-10 16:27:51 -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.
|
# \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 4
|
return CuraApplication.SettingVersion
|
||||||
return 0 #Older than 1.3.
|
return 0 #Older than 1.3.
|
||||||
|
|
||||||
def getInheritedFiles(self):
|
def getInheritedFiles(self):
|
||||||
|
@ -407,15 +408,16 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
def getConfigurationTypeFromSerialized(self, serialized: str) -> Optional[str]:
|
def getConfigurationTypeFromSerialized(self, 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 = XmlMaterialProfile.Version
|
||||||
# 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 = XmlMaterialProfile.xmlVersionToSettingVersion(data.attrib["version"])
|
||||||
else:
|
else:
|
||||||
setting_version = self.xmlVersionToSettingVersion("1.2")
|
setting_version = XmlMaterialProfile.xmlVersionToSettingVersion("1.2")
|
||||||
|
|
||||||
return version * 1000000 + setting_version
|
return version * 1000000 + setting_version
|
||||||
|
|
||||||
|
|
|
@ -5,24 +5,16 @@ import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
from UM.VersionUpgrade import VersionUpgrade
|
from UM.VersionUpgrade import VersionUpgrade
|
||||||
|
|
||||||
|
from cura.CuraApplication import CuraApplication
|
||||||
|
from .XmlMaterialProfile import XmlMaterialProfile
|
||||||
|
|
||||||
|
|
||||||
class XmlMaterialUpgrader(VersionUpgrade):
|
class XmlMaterialUpgrader(VersionUpgrade):
|
||||||
def getXmlVersion(self, serialized):
|
def getXmlVersion(self, serialized):
|
||||||
data = ET.fromstring(serialized)
|
return XmlMaterialProfile.getVersionFromSerialized(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
|
|
||||||
|
|
||||||
def _xmlVersionToSettingVersion(self, xml_version: str) -> int:
|
def _xmlVersionToSettingVersion(self, xml_version: str) -> int:
|
||||||
if xml_version == "1.3":
|
return XmlMaterialProfile.xmlVersionToSettingVersion(xml_version)
|
||||||
return 2
|
|
||||||
return 0 #Older than 1.3.
|
|
||||||
|
|
||||||
def upgradeMaterial(self, serialised, filename):
|
def upgradeMaterial(self, serialised, filename):
|
||||||
data = ET.fromstring(serialised)
|
data = ET.fromstring(serialised)
|
||||||
|
|
|
@ -19,7 +19,7 @@ def getMetaData():
|
||||||
"mimetype": "application/x-ultimaker-material-profile"
|
"mimetype": "application/x-ultimaker-material-profile"
|
||||||
},
|
},
|
||||||
"version_upgrade": {
|
"version_upgrade": {
|
||||||
("materials", 1000000): ("materials", 1000003, upgrader.upgradeMaterial),
|
("materials", 1000000): ("materials", 1000004, upgrader.upgradeMaterial),
|
||||||
},
|
},
|
||||||
"sources": {
|
"sources": {
|
||||||
"materials": {
|
"materials": {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue