mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-12 01:07:52 -06:00
Refactor quality lookup table creation
This commit is contained in:
parent
a7448e4970
commit
e2a97e3a01
1 changed files with 13 additions and 37 deletions
|
@ -98,45 +98,22 @@ class QualityManager(QObject):
|
||||||
machine_node.addQualityMetadata(quality_type, metadata)
|
machine_node.addQualityMetadata(quality_type, metadata)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# Check if nozzle si specified
|
current_node = machine_node
|
||||||
if nozzle_name is not None:
|
intermediate_node_info_list = [nozzle_name, buildplate_name, root_material_id]
|
||||||
if nozzle_name not in machine_node.children_map:
|
current_intermediate_node_info_idx = 0
|
||||||
machine_node.children_map[nozzle_name] = QualityNode()
|
|
||||||
nozzle_node = cast(QualityNode, machine_node.children_map[nozzle_name])
|
|
||||||
|
|
||||||
# Check if buildplate is specified
|
while current_intermediate_node_info_idx < len(intermediate_node_info_list):
|
||||||
if buildplate_name is not None:
|
node_name = intermediate_node_info_list[current_intermediate_node_info_idx]
|
||||||
if buildplate_name not in nozzle_node.children_map:
|
if node_name is not None:
|
||||||
nozzle_node.children_map[buildplate_name] = QualityNode()
|
# There is specific information, update the current node to go deeper so we can add this quality
|
||||||
buildplate_node = cast(QualityNode, nozzle_node.children_map[buildplate_name])
|
# at the most specific branch in the lookup tree.
|
||||||
|
if node_name not in current_node.children_map:
|
||||||
|
current_node.children_map[node_name] = QualityNode()
|
||||||
|
current_node = cast(QualityNode, current_node.children_map[node_name])
|
||||||
|
|
||||||
if root_material_id is None:
|
current_intermediate_node_info_idx += 1
|
||||||
buildplate_node.addQualityMetadata(quality_type, metadata)
|
|
||||||
else:
|
|
||||||
if root_material_id not in buildplate_node.children_map:
|
|
||||||
buildplate_node.children_map[root_material_id] = QualityNode()
|
|
||||||
material_node = cast(QualityNode, buildplate_node.children_map[root_material_id])
|
|
||||||
|
|
||||||
material_node.addQualityMetadata(quality_type, metadata)
|
current_node.addQualityMetadata(quality_type, metadata)
|
||||||
|
|
||||||
else:
|
|
||||||
if root_material_id is None:
|
|
||||||
nozzle_node.addQualityMetadata(quality_type, metadata)
|
|
||||||
else:
|
|
||||||
if root_material_id not in nozzle_node.children_map:
|
|
||||||
nozzle_node.children_map[root_material_id] = QualityNode()
|
|
||||||
material_node = cast(QualityNode, nozzle_node.children_map[root_material_id])
|
|
||||||
|
|
||||||
material_node.addQualityMetadata(quality_type, metadata)
|
|
||||||
|
|
||||||
else:
|
|
||||||
# If nozzle is not specified, check if material is specified.
|
|
||||||
if root_material_id is not None:
|
|
||||||
if root_material_id not in machine_node.children_map:
|
|
||||||
machine_node.children_map[root_material_id] = QualityNode()
|
|
||||||
material_node = cast(QualityNode, machine_node.children_map[root_material_id])
|
|
||||||
|
|
||||||
material_node.addQualityMetadata(quality_type, metadata)
|
|
||||||
|
|
||||||
# Initialize the lookup tree for quality_changes profiles with following structure:
|
# Initialize the lookup tree for quality_changes profiles with following structure:
|
||||||
# <machine> -> <quality_type> -> <name>
|
# <machine> -> <quality_type> -> <name>
|
||||||
|
@ -337,7 +314,6 @@ class QualityManager(QObject):
|
||||||
quality_group = quality_group_dict[quality_type]
|
quality_group = quality_group_dict[quality_type]
|
||||||
if position not in quality_group.nodes_for_extruders:
|
if position not in quality_group.nodes_for_extruders:
|
||||||
quality_group.nodes_for_extruders[position] = quality_node
|
quality_group.nodes_for_extruders[position] = quality_node
|
||||||
#break
|
|
||||||
|
|
||||||
# Update availabilities for each quality group
|
# Update availabilities for each quality group
|
||||||
self._updateQualityGroupsAvailability(machine, quality_group_dict.values())
|
self._updateQualityGroupsAvailability(machine, quality_group_dict.values())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue