Ensure that metadata entries in cura namespace are stored correctly

CURA-6672
This commit is contained in:
Jaime van Kessel 2019-07-22 16:41:08 +02:00
parent 678621469f
commit 00f21069e7

View file

@ -190,13 +190,16 @@ class XmlMaterialProfile(InstanceContainer):
## End Name Block ## End Name Block
for key, value in metadata.items(): for key, value in metadata.items():
builder.start(key) # type: ignore key_to_use = key
if key in self._metadata_tags_that_have_cura_namespace:
key_to_use = "cura:" + key_to_use
builder.start(key_to_use) # type: ignore
if value is not None: #Nones get handled well by the builder. if value is not None: #Nones get handled well by the builder.
#Otherwise the builder always expects a string. #Otherwise the builder always expects a string.
#Deserialize expects the stringified version. #Deserialize expects the stringified version.
value = str(value) value = str(value)
builder.data(value) builder.data(value)
builder.end(key) builder.end(key_to_use)
builder.end("metadata") builder.end("metadata")
## End Metadata Block ## End Metadata Block
@ -1183,6 +1186,8 @@ class XmlMaterialProfile(InstanceContainer):
def __str__(self): def __str__(self):
return "<XmlMaterialProfile '{my_id}' ('{name}') from base file '{base_file}'>".format(my_id = self.getId(), name = self.getName(), base_file = self.getMetaDataEntry("base_file")) return "<XmlMaterialProfile '{my_id}' ('{name}') from base file '{base_file}'>".format(my_id = self.getId(), name = self.getName(), base_file = self.getMetaDataEntry("base_file"))
_metadata_tags_that_have_cura_namespace = ["pva_compatible", "breakaway_compatible"]
# Map XML file setting names to internal names # Map XML file setting names to internal names
__material_settings_setting_map = { __material_settings_setting_map = {
"print temperature": "default_material_print_temperature", "print temperature": "default_material_print_temperature",