mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 07:33:57 -06:00
Don't require VariantManager any more from CuraStackBuilder
We now use the new container tree structure there. Contributes to issue CURA-6600.
This commit is contained in:
parent
e106692165
commit
d710a58233
2 changed files with 9 additions and 14 deletions
|
@ -20,6 +20,7 @@ class MachineNode(ContainerNode):
|
||||||
super().__init__(container_id)
|
super().__init__(container_id)
|
||||||
self.variants = {} # type: Dict[str, VariantNode] # mapping variant names to their nodes.
|
self.variants = {} # type: Dict[str, VariantNode] # mapping variant names to their nodes.
|
||||||
container_registry = ContainerRegistry.getInstance()
|
container_registry = ContainerRegistry.getInstance()
|
||||||
|
|
||||||
my_metadata = container_registry.findContainersMetadata(id = container_id)[0]
|
my_metadata = container_registry.findContainersMetadata(id = container_id)[0]
|
||||||
# Some of the metadata is cached upon construction here.
|
# Some of the metadata is cached upon construction here.
|
||||||
# ONLY DO THAT FOR METADATA THAT DOESN'T CHANGE DURING RUNTIME!
|
# ONLY DO THAT FOR METADATA THAT DOESN'T CHANGE DURING RUNTIME!
|
||||||
|
@ -28,6 +29,8 @@ class MachineNode(ContainerNode):
|
||||||
self.has_machine_quality = parseBool(my_metadata.get("has_machine_quality", "false"))
|
self.has_machine_quality = parseBool(my_metadata.get("has_machine_quality", "false"))
|
||||||
self.quality_definition = my_metadata.get("quality_definition", container_id)
|
self.quality_definition = my_metadata.get("quality_definition", container_id)
|
||||||
self.exclude_materials = my_metadata.get("exclude_materials", [])
|
self.exclude_materials = my_metadata.get("exclude_materials", [])
|
||||||
|
self.preferred_variant_name = my_metadata.get("preferred_variant_name", "")
|
||||||
|
|
||||||
container_registry.containerAdded.connect(self._variantAdded)
|
container_registry.containerAdded.connect(self._variantAdded)
|
||||||
self._loadAll()
|
self._loadAll()
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# Copyright (c) 2018 Ultimaker B.V.
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
@ -8,6 +8,7 @@ from UM.Logger import Logger
|
||||||
from UM.Settings.Interfaces import DefinitionContainerInterface
|
from UM.Settings.Interfaces import DefinitionContainerInterface
|
||||||
from UM.Settings.InstanceContainer import InstanceContainer
|
from UM.Settings.InstanceContainer import InstanceContainer
|
||||||
|
|
||||||
|
from cura.Machines.ContainerTree import ContainerTree
|
||||||
from cura.Machines.VariantType import VariantType
|
from cura.Machines.VariantType import VariantType
|
||||||
from .GlobalStack import GlobalStack
|
from .GlobalStack import GlobalStack
|
||||||
from .ExtruderStack import ExtruderStack
|
from .ExtruderStack import ExtruderStack
|
||||||
|
@ -38,14 +39,6 @@ class CuraStackBuilder:
|
||||||
|
|
||||||
machine_definition = definitions[0]
|
machine_definition = definitions[0]
|
||||||
|
|
||||||
# get variant container for the global stack
|
|
||||||
global_variant_container = application.empty_variant_container
|
|
||||||
global_variant_node = variant_manager.getDefaultVariantNode(machine_definition, VariantType.BUILD_PLATE)
|
|
||||||
if global_variant_node:
|
|
||||||
global_variant_container = global_variant_node.getContainer()
|
|
||||||
if not global_variant_container:
|
|
||||||
global_variant_container = application.empty_variant_container
|
|
||||||
|
|
||||||
generated_name = registry.createUniqueName("machine", "", name, machine_definition.getName())
|
generated_name = registry.createUniqueName("machine", "", name, machine_definition.getName())
|
||||||
# Make sure the new name does not collide with any definition or (quality) profile
|
# Make sure the new name does not collide with any definition or (quality) profile
|
||||||
# createUniqueName() only looks at other stacks, but not at definitions or quality profiles
|
# createUniqueName() only looks at other stacks, but not at definitions or quality profiles
|
||||||
|
@ -56,7 +49,7 @@ class CuraStackBuilder:
|
||||||
new_global_stack = cls.createGlobalStack(
|
new_global_stack = cls.createGlobalStack(
|
||||||
new_stack_id = generated_name,
|
new_stack_id = generated_name,
|
||||||
definition = machine_definition,
|
definition = machine_definition,
|
||||||
variant_container = global_variant_container,
|
variant_container = application.empty_variant_container,
|
||||||
material_container = application.empty_material_container,
|
material_container = application.empty_material_container,
|
||||||
quality_container = application.empty_quality_container,
|
quality_container = application.empty_quality_container,
|
||||||
)
|
)
|
||||||
|
@ -108,16 +101,15 @@ class CuraStackBuilder:
|
||||||
def createExtruderStackWithDefaultSetup(cls, global_stack: "GlobalStack", extruder_position: int) -> None:
|
def createExtruderStackWithDefaultSetup(cls, global_stack: "GlobalStack", extruder_position: int) -> None:
|
||||||
from cura.CuraApplication import CuraApplication
|
from cura.CuraApplication import CuraApplication
|
||||||
application = CuraApplication.getInstance()
|
application = CuraApplication.getInstance()
|
||||||
variant_manager = application.getVariantManager()
|
|
||||||
material_manager = application.getMaterialManager()
|
material_manager = application.getMaterialManager()
|
||||||
registry = application.getContainerRegistry()
|
registry = application.getContainerRegistry()
|
||||||
|
|
||||||
# get variant container for extruders
|
# get variant container for extruders
|
||||||
extruder_variant_container = application.empty_variant_container
|
extruder_variant_container = application.empty_variant_container
|
||||||
extruder_variant_node = variant_manager.getDefaultVariantNode(global_stack.definition, VariantType.NOZZLE,
|
machine_node = ContainerTree.getInstance().machines[global_stack.definition.getId()]
|
||||||
global_stack = global_stack)
|
extruder_variant_node = machine_node.variants.get(machine_node.preferred_variant_name)
|
||||||
extruder_variant_name = None
|
extruder_variant_name = None
|
||||||
if extruder_variant_node:
|
if extruder_variant_node is not None:
|
||||||
extruder_variant_container = extruder_variant_node.getContainer()
|
extruder_variant_container = extruder_variant_node.getContainer()
|
||||||
if not extruder_variant_container:
|
if not extruder_variant_container:
|
||||||
extruder_variant_container = application.empty_variant_container
|
extruder_variant_container = application.empty_variant_container
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue