mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 15:37:27 -06:00
Fix adding name when loading complete material file
Also, don't use setName since that only operates on the base file and sends out unnecessary signals. Contributes to issue CURA-4243.
This commit is contained in:
parent
ebe766a7c8
commit
aa52b9682e
1 changed files with 7 additions and 8 deletions
|
@ -451,8 +451,8 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
else:
|
else:
|
||||||
meta_data["setting_version"] = self.xmlVersionToSettingVersion("1.2") #1.2 and lower didn't have that version number there yet.
|
meta_data["setting_version"] = self.xmlVersionToSettingVersion("1.2") #1.2 and lower didn't have that version number there yet.
|
||||||
|
|
||||||
metadata = data.iterfind("./um:metadata/*", self.__namespaces)
|
meta_data["name"] = "Unknown Material" #In case the name tag is missing.
|
||||||
for entry in metadata:
|
for entry in data.iterfind("./um:metadata/*", self.__namespaces):
|
||||||
tag_name = _tag_without_namespace(entry)
|
tag_name = _tag_without_namespace(entry)
|
||||||
|
|
||||||
if tag_name == "name":
|
if tag_name == "name":
|
||||||
|
@ -462,9 +462,9 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
label = entry.find("./um:label", self.__namespaces)
|
label = entry.find("./um:label", self.__namespaces)
|
||||||
|
|
||||||
if label is not None:
|
if label is not None:
|
||||||
self.setName(label.text)
|
meta_data["name"] = label.text
|
||||||
else:
|
else:
|
||||||
self.setName(self._profile_name(material.text, color.text))
|
meta_data["name"] = self._profile_name(material.text, color.text)
|
||||||
meta_data["brand"] = brand.text
|
meta_data["brand"] = brand.text
|
||||||
meta_data["material"] = material.text
|
meta_data["material"] = material.text
|
||||||
meta_data["color_name"] = color.text
|
meta_data["color_name"] = color.text
|
||||||
|
@ -570,6 +570,7 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
is_new_material = True
|
is_new_material = True
|
||||||
|
|
||||||
new_material.setMetaData(copy.deepcopy(self.getMetaData()))
|
new_material.setMetaData(copy.deepcopy(self.getMetaData()))
|
||||||
|
new_material.getMetaData()["name"] = self.getName()
|
||||||
new_material.setDefinition(machine_id)
|
new_material.setDefinition(machine_id)
|
||||||
# Don't use setMetadata, as that overrides it for all materials with same base file
|
# Don't use setMetadata, as that overrides it for all materials with same base file
|
||||||
new_material.getMetaData()["compatible"] = machine_compatibility
|
new_material.getMetaData()["compatible"] = machine_compatibility
|
||||||
|
@ -621,11 +622,10 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
new_hotend_material = XmlMaterialProfile(new_hotend_id)
|
new_hotend_material = XmlMaterialProfile(new_hotend_id)
|
||||||
is_new_material = True
|
is_new_material = True
|
||||||
|
|
||||||
# Update the private directly, as we want to prevent the lookup that is done when using setName
|
|
||||||
new_hotend_material.setName(self.getName())
|
|
||||||
new_hotend_material.setMetaData(copy.deepcopy(self.getMetaData()))
|
new_hotend_material.setMetaData(copy.deepcopy(self.getMetaData()))
|
||||||
|
new_hotend_material.getMetaData()["name"] = self.getName()
|
||||||
new_hotend_material.setDefinition(machine_id)
|
new_hotend_material.setDefinition(machine_id)
|
||||||
new_hotend_material.addMetaDataEntry("variant", variant_containers[0]["id"])
|
new_hotend_material.getMetaData()["variant"] = variant_containers[0]["id"]
|
||||||
# Don't use setMetadata, as that overrides it for all materials with same base file
|
# Don't use setMetadata, as that overrides it for all materials with same base file
|
||||||
new_hotend_material.getMetaData()["compatible"] = hotend_compatibility
|
new_hotend_material.getMetaData()["compatible"] = hotend_compatibility
|
||||||
new_hotend_material.getMetaData()["machine_manufacturer"] = machine_manufacturer
|
new_hotend_material.getMetaData()["machine_manufacturer"] = machine_manufacturer
|
||||||
|
@ -789,7 +789,6 @@ class XmlMaterialProfile(InstanceContainer):
|
||||||
else:
|
else:
|
||||||
new_hotend_material_metadata = {}
|
new_hotend_material_metadata = {}
|
||||||
|
|
||||||
new_hotend_material_metadata["name"] = base_metadata["name"]
|
|
||||||
new_hotend_material_metadata.update(base_metadata)
|
new_hotend_material_metadata.update(base_metadata)
|
||||||
new_hotend_material_metadata["variant"] = variant_containers[0]["id"]
|
new_hotend_material_metadata["variant"] = variant_containers[0]["id"]
|
||||||
new_hotend_material_metadata["compatible"] = hotend_compatibility
|
new_hotend_material_metadata["compatible"] = hotend_compatibility
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue