mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Switch incorrect usage of getMachineExtruders to getActiveExtruderStacks
This commit is contained in:
parent
638f9fb941
commit
a8fc6aabcc
8 changed files with 24 additions and 32 deletions
|
@ -528,7 +528,7 @@ class BuildVolume(SceneNode):
|
||||||
def _onStackChanged(self):
|
def _onStackChanged(self):
|
||||||
if self._global_container_stack:
|
if self._global_container_stack:
|
||||||
self._global_container_stack.propertyChanged.disconnect(self._onSettingPropertyChanged)
|
self._global_container_stack.propertyChanged.disconnect(self._onSettingPropertyChanged)
|
||||||
extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())
|
extruders = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
extruder.propertyChanged.disconnect(self._onSettingPropertyChanged)
|
extruder.propertyChanged.disconnect(self._onSettingPropertyChanged)
|
||||||
|
|
||||||
|
@ -536,7 +536,7 @@ class BuildVolume(SceneNode):
|
||||||
|
|
||||||
if self._global_container_stack:
|
if self._global_container_stack:
|
||||||
self._global_container_stack.propertyChanged.connect(self._onSettingPropertyChanged)
|
self._global_container_stack.propertyChanged.connect(self._onSettingPropertyChanged)
|
||||||
extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())
|
extruders = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
extruder.propertyChanged.connect(self._onSettingPropertyChanged)
|
extruder.propertyChanged.connect(self._onSettingPropertyChanged)
|
||||||
|
|
||||||
|
|
|
@ -304,7 +304,7 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
||||||
if self._global_stack:
|
if self._global_stack:
|
||||||
self._global_stack.propertyChanged.disconnect(self._onSettingValueChanged)
|
self._global_stack.propertyChanged.disconnect(self._onSettingValueChanged)
|
||||||
self._global_stack.containersChanged.disconnect(self._onChanged)
|
self._global_stack.containersChanged.disconnect(self._onChanged)
|
||||||
extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_stack.getId())
|
extruders = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
extruder.propertyChanged.disconnect(self._onSettingValueChanged)
|
extruder.propertyChanged.disconnect(self._onSettingValueChanged)
|
||||||
|
|
||||||
|
@ -314,7 +314,7 @@ class ConvexHullDecorator(SceneNodeDecorator):
|
||||||
self._global_stack.propertyChanged.connect(self._onSettingValueChanged)
|
self._global_stack.propertyChanged.connect(self._onSettingValueChanged)
|
||||||
self._global_stack.containersChanged.connect(self._onChanged)
|
self._global_stack.containersChanged.connect(self._onChanged)
|
||||||
|
|
||||||
extruders = ExtruderManager.getInstance().getMachineExtruders(self._global_stack.getId())
|
extruders = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
extruder.propertyChanged.connect(self._onSettingValueChanged)
|
extruder.propertyChanged.connect(self._onSettingValueChanged)
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,10 @@ from UM.Scene.Selection import Selection
|
||||||
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
from UM.Scene.Iterator.BreadthFirstIterator import BreadthFirstIterator
|
||||||
from UM.Settings.ContainerRegistry import ContainerRegistry # Finding containers by ID.
|
from UM.Settings.ContainerRegistry import ContainerRegistry # Finding containers by ID.
|
||||||
from UM.Settings.SettingFunction import SettingFunction
|
from UM.Settings.SettingFunction import SettingFunction
|
||||||
from UM.Settings.SettingInstance import SettingInstance
|
|
||||||
from UM.Settings.ContainerStack import ContainerStack
|
from UM.Settings.ContainerStack import ContainerStack
|
||||||
from UM.Settings.PropertyEvaluationContext import PropertyEvaluationContext
|
from UM.Settings.PropertyEvaluationContext import PropertyEvaluationContext
|
||||||
|
|
||||||
from typing import Optional, List, TYPE_CHECKING, Union, Dict
|
from typing import Optional, List, TYPE_CHECKING, Dict, List
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from cura.Settings.ExtruderStack import ExtruderStack
|
from cura.Settings.ExtruderStack import ExtruderStack
|
||||||
|
@ -38,9 +37,10 @@ class ExtruderManager(QObject):
|
||||||
|
|
||||||
self._application = cura.CuraApplication.CuraApplication.getInstance()
|
self._application = cura.CuraApplication.CuraApplication.getInstance()
|
||||||
|
|
||||||
self._extruder_trains = {} # Per machine, a dictionary of extruder container stack IDs. Only for separately defined extruders.
|
# Per machine, a dictionary of extruder container stack IDs. Only for separately defined extruders.
|
||||||
|
self._extruder_trains = {} # type: Dict[str, List[ExtruderStack]]
|
||||||
self._active_extruder_index = -1 # Indicates the index of the active extruder stack. -1 means no active extruder stack
|
self._active_extruder_index = -1 # Indicates the index of the active extruder stack. -1 means no active extruder stack
|
||||||
self._selected_object_extruders = []
|
self._selected_object_extruders = [] # type: List[ExtruderStack]
|
||||||
self._addCurrentMachineExtruders()
|
self._addCurrentMachineExtruders()
|
||||||
|
|
||||||
Selection.selectionChanged.connect(self.resetSelectedObjectExtruders)
|
Selection.selectionChanged.connect(self.resetSelectedObjectExtruders)
|
||||||
|
@ -68,7 +68,7 @@ class ExtruderManager(QObject):
|
||||||
|
|
||||||
## Return extruder count according to extruder trains.
|
## Return extruder count according to extruder trains.
|
||||||
@pyqtProperty(int, notify = extrudersChanged)
|
@pyqtProperty(int, notify = extrudersChanged)
|
||||||
def extruderCount(self):
|
def extruderCount(self) -> int:
|
||||||
if not self._application.getGlobalContainerStack():
|
if not self._application.getGlobalContainerStack():
|
||||||
return 0 # No active machine, so no extruders.
|
return 0 # No active machine, so no extruders.
|
||||||
try:
|
try:
|
||||||
|
@ -83,11 +83,7 @@ class ExtruderManager(QObject):
|
||||||
|
|
||||||
global_container_stack = self._application.getGlobalContainerStack()
|
global_container_stack = self._application.getGlobalContainerStack()
|
||||||
if global_container_stack:
|
if global_container_stack:
|
||||||
global_stack_id = global_container_stack.getId()
|
extruder_stack_ids = {position: extruder.id for position, extruder in global_container_stack.extruders.items()}
|
||||||
|
|
||||||
if global_stack_id in self._extruder_trains:
|
|
||||||
for position in self._extruder_trains[global_stack_id]:
|
|
||||||
extruder_stack_ids[position] = self._extruder_trains[global_stack_id][position].getId()
|
|
||||||
|
|
||||||
return extruder_stack_ids
|
return extruder_stack_ids
|
||||||
|
|
||||||
|
@ -109,7 +105,7 @@ class ExtruderManager(QObject):
|
||||||
@pyqtSlot(int, result = str)
|
@pyqtSlot(int, result = str)
|
||||||
def getExtruderName(self, index):
|
def getExtruderName(self, index):
|
||||||
try:
|
try:
|
||||||
return list(self.getActiveExtruderStacks())[index].getName()
|
return self.getActiveExtruderStacks()[index].getName()
|
||||||
except IndexError:
|
except IndexError:
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
|
@ -318,7 +314,7 @@ class ExtruderManager(QObject):
|
||||||
## Returns extruders for a specific machine.
|
## Returns extruders for a specific machine.
|
||||||
#
|
#
|
||||||
# \param machine_id The machine to get the extruders of.
|
# \param machine_id The machine to get the extruders of.
|
||||||
def getMachineExtruders(self, machine_id: str):
|
def getMachineExtruders(self, machine_id: str) -> List["ExtruderStack"]:
|
||||||
if machine_id not in self._extruder_trains:
|
if machine_id not in self._extruder_trains:
|
||||||
return []
|
return []
|
||||||
return [self._extruder_trains[machine_id][name] for name in self._extruder_trains[machine_id]]
|
return [self._extruder_trains[machine_id][name] for name in self._extruder_trains[machine_id]]
|
||||||
|
@ -331,11 +327,7 @@ class ExtruderManager(QObject):
|
||||||
if not global_stack:
|
if not global_stack:
|
||||||
return []
|
return []
|
||||||
|
|
||||||
result = []
|
result = list(global_stack.extruders.values())
|
||||||
|
|
||||||
if global_stack.getId() in self._extruder_trains:
|
|
||||||
for extruder in sorted(self._extruder_trains[global_stack.getId()]):
|
|
||||||
result.append(self._extruder_trains[global_stack.getId()][extruder])
|
|
||||||
|
|
||||||
machine_extruder_count = global_stack.getProperty("machine_extruder_count", "value")
|
machine_extruder_count = global_stack.getProperty("machine_extruder_count", "value")
|
||||||
|
|
||||||
|
@ -404,7 +396,7 @@ class ExtruderManager(QObject):
|
||||||
global_stack = cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack()
|
global_stack = cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack()
|
||||||
|
|
||||||
result = []
|
result = []
|
||||||
for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()):
|
for extruder in ExtruderManager.getInstance().getActiveExtruderStacks():
|
||||||
if not extruder.isEnabled:
|
if not extruder.isEnabled:
|
||||||
continue
|
continue
|
||||||
# only include values from extruders that are "active" for the current machine instance
|
# only include values from extruders that are "active" for the current machine instance
|
||||||
|
@ -446,7 +438,7 @@ class ExtruderManager(QObject):
|
||||||
}
|
}
|
||||||
|
|
||||||
result = []
|
result = []
|
||||||
for extruder in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()):
|
for extruder in ExtruderManager.getInstance().getActiveExtruderStacks():
|
||||||
# only include values from extruders that are "active" for the current machine instance
|
# only include values from extruders that are "active" for the current machine instance
|
||||||
if int(extruder.getMetaDataEntry("position")) >= global_stack.getProperty("machine_extruder_count", "value", context = context):
|
if int(extruder.getMetaDataEntry("position")) >= global_stack.getProperty("machine_extruder_count", "value", context = context):
|
||||||
continue
|
continue
|
||||||
|
|
|
@ -171,7 +171,7 @@ class ExtrudersModel(UM.Qt.ListModel.ListModel):
|
||||||
# get machine extruder count for verification
|
# get machine extruder count for verification
|
||||||
machine_extruder_count = global_container_stack.getProperty("machine_extruder_count", "value")
|
machine_extruder_count = global_container_stack.getProperty("machine_extruder_count", "value")
|
||||||
|
|
||||||
for extruder in Application.getInstance().getExtruderManager().getMachineExtruders(global_container_stack.getId()):
|
for extruder in Application.getInstance().getExtruderManager().getActiveExtruderStacks():
|
||||||
position = extruder.getMetaDataEntry("position", default = "0") # Get the position
|
position = extruder.getMetaDataEntry("position", default = "0") # Get the position
|
||||||
try:
|
try:
|
||||||
position = int(position)
|
position = int(position)
|
||||||
|
|
|
@ -414,7 +414,7 @@ class MachineManager(QObject):
|
||||||
|
|
||||||
# Not a very pretty solution, but the extruder manager doesn't really know how many extruders there are
|
# Not a very pretty solution, but the extruder manager doesn't really know how many extruders there are
|
||||||
machine_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value")
|
machine_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value")
|
||||||
extruder_stacks = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())
|
extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
count = 1 # we start with the global stack
|
count = 1 # we start with the global stack
|
||||||
for stack in extruder_stacks:
|
for stack in extruder_stacks:
|
||||||
md = stack.getMetaData()
|
md = stack.getMetaData()
|
||||||
|
@ -437,7 +437,7 @@ class MachineManager(QObject):
|
||||||
if self._global_container_stack.getTop().findInstances():
|
if self._global_container_stack.getTop().findInstances():
|
||||||
return True
|
return True
|
||||||
|
|
||||||
stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
|
stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
for stack in stacks:
|
for stack in stacks:
|
||||||
if stack.getTop().findInstances():
|
if stack.getTop().findInstances():
|
||||||
return True
|
return True
|
||||||
|
@ -450,7 +450,7 @@ class MachineManager(QObject):
|
||||||
return 0
|
return 0
|
||||||
num_user_settings = 0
|
num_user_settings = 0
|
||||||
num_user_settings += len(self._global_container_stack.getTop().findInstances())
|
num_user_settings += len(self._global_container_stack.getTop().findInstances())
|
||||||
stacks = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
|
stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
for stack in stacks:
|
for stack in stacks:
|
||||||
num_user_settings += len(stack.getTop().findInstances())
|
num_user_settings += len(stack.getTop().findInstances())
|
||||||
return num_user_settings
|
return num_user_settings
|
||||||
|
@ -475,7 +475,7 @@ class MachineManager(QObject):
|
||||||
stack = ExtruderManager.getInstance().getActiveExtruderStack()
|
stack = ExtruderManager.getInstance().getActiveExtruderStack()
|
||||||
stacks = [stack]
|
stacks = [stack]
|
||||||
else:
|
else:
|
||||||
stacks = ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())
|
stacks = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
|
|
||||||
for stack in stacks:
|
for stack in stacks:
|
||||||
if stack is not None:
|
if stack is not None:
|
||||||
|
@ -640,7 +640,7 @@ class MachineManager(QObject):
|
||||||
if self._active_container_stack is None or self._global_container_stack is None:
|
if self._active_container_stack is None or self._global_container_stack is None:
|
||||||
return
|
return
|
||||||
new_value = self._active_container_stack.getProperty(key, "value")
|
new_value = self._active_container_stack.getProperty(key, "value")
|
||||||
extruder_stacks = [stack for stack in ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId())]
|
extruder_stacks = [stack for stack in ExtruderManager.getInstance().getActiveExtruderStacks()]
|
||||||
|
|
||||||
# check in which stack the value has to be replaced
|
# check in which stack the value has to be replaced
|
||||||
for extruder_stack in extruder_stacks:
|
for extruder_stack in extruder_stacks:
|
||||||
|
|
|
@ -343,7 +343,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
if not self._global_container_stack:
|
if not self._global_container_stack:
|
||||||
Logger.log("w", "Global container stack not assigned to CuraEngineBackend!")
|
Logger.log("w", "Global container stack not assigned to CuraEngineBackend!")
|
||||||
return
|
return
|
||||||
extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
|
extruders = ExtruderManager.getInstance().getActiveExtruderStacks()
|
||||||
error_keys = [] #type: List[str]
|
error_keys = [] #type: List[str]
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
error_keys.extend(extruder.getErrorKeys())
|
error_keys.extend(extruder.getErrorKeys())
|
||||||
|
|
|
@ -178,7 +178,7 @@ class ProcessSlicedLayersJob(Job):
|
||||||
# Find out colors per extruder
|
# Find out colors per extruder
|
||||||
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||||
manager = ExtruderManager.getInstance()
|
manager = ExtruderManager.getInstance()
|
||||||
extruders = list(manager.getMachineExtruders(global_container_stack.getId()))
|
extruders = manager.getActiveExtruderStacks()
|
||||||
if extruders:
|
if extruders:
|
||||||
material_color_map = numpy.zeros((len(extruders), 4), dtype=numpy.float32)
|
material_color_map = numpy.zeros((len(extruders), 4), dtype=numpy.float32)
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
|
|
|
@ -333,7 +333,7 @@ class StartSliceJob(Job):
|
||||||
"-1": self._buildReplacementTokens(global_stack)
|
"-1": self._buildReplacementTokens(global_stack)
|
||||||
}
|
}
|
||||||
|
|
||||||
for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(global_stack.getId()):
|
for extruder_stack in ExtruderManager.getInstance().getActiveExtruderStacks():
|
||||||
extruder_nr = extruder_stack.getProperty("extruder_nr", "value")
|
extruder_nr = extruder_stack.getProperty("extruder_nr", "value")
|
||||||
self._all_extruders_settings[str(extruder_nr)] = self._buildReplacementTokens(extruder_stack)
|
self._all_extruders_settings[str(extruder_nr)] = self._buildReplacementTokens(extruder_stack)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue