mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-11 16:57:51 -06:00
Fix VariantManager.getVariant() and simplify NozzleModel
CURA-4606
This commit is contained in:
parent
55c3f06e73
commit
220e4a64c6
2 changed files with 23 additions and 11 deletions
|
@ -21,28 +21,32 @@ class NozzleModel(ListModel):
|
||||||
self.addRoleName(self.HotendNameRole, "hotend_name")
|
self.addRoleName(self.HotendNameRole, "hotend_name")
|
||||||
self.addRoleName(self.ContainerNodeRole, "container_node")
|
self.addRoleName(self.ContainerNodeRole, "container_node")
|
||||||
|
|
||||||
Application.getInstance().globalContainerStackChanged.connect(self._update)
|
self._application = Application.getInstance()
|
||||||
Application.getInstance().getMachineManager().activeVariantChanged.connect(self._update)
|
self._machine_manager = self._application.getMachineManager()
|
||||||
Application.getInstance().getMachineManager().activeStackChanged.connect(self._update)
|
self._variant_manager = self._application.getVariantManager()
|
||||||
Application.getInstance().getMachineManager().activeMaterialChanged.connect(self._update)
|
|
||||||
|
self._machine_manager.globalContainerChanged.connect(self._update)
|
||||||
|
self._machine_manager.activeVariantChanged.connect(self._update)
|
||||||
|
self._machine_manager.activeStackChanged.connect(self._update)
|
||||||
|
self._machine_manager.activeMaterialChanged.connect(self._update)
|
||||||
|
|
||||||
def _update(self):
|
def _update(self):
|
||||||
Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__))
|
Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__))
|
||||||
|
|
||||||
self.items.clear()
|
self.items.clear()
|
||||||
|
|
||||||
variant_manager = Application.getInstance()._variant_manager
|
global_stack = self._machine_manager.activeMachine
|
||||||
active_global_stack = Application.getInstance().getMachineManager()._global_container_stack
|
if global_stack is None:
|
||||||
if active_global_stack is None:
|
|
||||||
self.setItems([])
|
self.setItems([])
|
||||||
return
|
return
|
||||||
|
|
||||||
has_variants = parseBool(active_global_stack.getMetaDataEntry("has_variants", False))
|
has_variants = parseBool(global_stack.getMetaDataEntry("has_variants", False))
|
||||||
if not has_variants:
|
if not has_variants:
|
||||||
self.setItems([])
|
self.setItems([])
|
||||||
return
|
return
|
||||||
|
|
||||||
variant_node_dict = variant_manager.getVariantNodes(active_global_stack)
|
from cura.Machines.VariantManager import VariantType
|
||||||
|
variant_node_dict = self._variant_manager.getVariantNodes(global_stack, VariantType.NOZZLE)
|
||||||
if not variant_node_dict:
|
if not variant_node_dict:
|
||||||
self.setItems([])
|
self.setItems([])
|
||||||
return
|
return
|
||||||
|
|
|
@ -83,11 +83,19 @@ class VariantManager:
|
||||||
# Almost the same as getVariantMetadata() except that this returns an InstanceContainer if present.
|
# Almost the same as getVariantMetadata() except that this returns an InstanceContainer if present.
|
||||||
#
|
#
|
||||||
def getVariantNode(self, machine_definition_id: str, variant_name: str,
|
def getVariantNode(self, machine_definition_id: str, variant_name: str,
|
||||||
variant_type: Optional["VariantType"] = VariantType.NOZZLE) -> Optional["ContainerNode"]:
|
variant_type: Optional["VariantType"] = None) -> Optional["ContainerNode"]:
|
||||||
|
if variant_type is None:
|
||||||
|
variant_node = None
|
||||||
|
variant_type_dict = self._machine_to_variant_dict_map[machine_definition_id]
|
||||||
|
for variant_dict in variant_type_dict.values():
|
||||||
|
if variant_name in variant_dict:
|
||||||
|
variant_node = variant_dict[variant_name]
|
||||||
|
break
|
||||||
|
return variant_node
|
||||||
return self._machine_to_variant_dict_map[machine_definition_id].get(variant_type, {}).get(variant_name)
|
return self._machine_to_variant_dict_map[machine_definition_id].get(variant_type, {}).get(variant_name)
|
||||||
|
|
||||||
def getVariantNodes(self, machine: "GlobalStack",
|
def getVariantNodes(self, machine: "GlobalStack",
|
||||||
variant_type: Optional["VariantType"] = VariantType.NOZZLE) -> dict:
|
variant_type: Optional["VariantType"] = None) -> dict:
|
||||||
machine_definition_id = machine.definition.getId()
|
machine_definition_id = machine.definition.getId()
|
||||||
return self._machine_to_variant_dict_map.get(machine_definition_id, {}).get(variant_type, {})
|
return self._machine_to_variant_dict_map.get(machine_definition_id, {}).get(variant_type, {})
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue