Fix iterating over 'hardware compatible' keys

This is both faster and actually functions properly.

Contributes to issue CURA-6272.
This commit is contained in:
Ghostkeeper 2019-03-05 15:25:39 +01:00
parent a7f9fc5f6b
commit 943503cac7
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276

View file

@ -945,11 +945,9 @@ class XmlMaterialProfile(InstanceContainer):
for machine in data.iterfind("./um:settings/um:machine", cls.__namespaces): for machine in data.iterfind("./um:settings/um:machine", cls.__namespaces):
machine_compatibility = common_compatibility machine_compatibility = common_compatibility
for entry in machine.iterfind("./um:setting", cls.__namespaces): for entry in machine.iterfind("./um:setting[@key='hardware compatible']", cls.__namespaces):
key = entry.get("key") if entry.text is not None:
if key == "hardware compatible": machine_compatibility = cls._parseCompatibleValue(entry.text)
if entry.text is not None:
machine_compatibility = cls._parseCompatibleValue(entry.text)
for identifier in machine.iterfind("./um:machine_identifier", cls.__namespaces): for identifier in machine.iterfind("./um:machine_identifier", cls.__namespaces):
machine_id_list = product_id_map.get(identifier.get("product"), []) machine_id_list = product_id_map.get(identifier.get("product"), [])
@ -1020,11 +1018,9 @@ class XmlMaterialProfile(InstanceContainer):
continue continue
hotend_compatibility = machine_compatibility hotend_compatibility = machine_compatibility
for entry in hotend.iterfind("./um:setting", cls.__namespaces): for entry in hotend.iterfind("./um:setting[@key='hardware compatible']", cls.__namespaces):
key = entry.get("key") if entry.text is not None:
if key == "hardware compatible": hotend_compatibility = cls._parseCompatibleValue(entry.text)
if entry.text is not None:
hotend_compatibility = cls._parseCompatibleValue(entry.text)
new_hotend_specific_material_id = container_id + "_" + machine_id + "_" + hotend_name.replace(" ", "_") new_hotend_specific_material_id = container_id + "_" + machine_id + "_" + hotend_name.replace(" ", "_")