Switch out number of getActiveExtruderStacks for extruderList

It's essentially the same, but reduces the dependency of MachineManager
on the ExtruderManager
This commit is contained in:
Jaime van Kessel 2020-01-06 14:47:46 +01:00
parent 55dacee45f
commit e46febfea4
No known key found for this signature in database
GPG key ID: 3710727397403C91

View file

@ -227,7 +227,7 @@ class MachineManager(QObject):
except TypeError: except TypeError:
pass pass
for extruder_stack in ExtruderManager.getInstance().getActiveExtruderStacks(): for extruder_stack in self._global_container_stack.extruderList:
extruder_stack.propertyChanged.disconnect(self._onPropertyChanged) extruder_stack.propertyChanged.disconnect(self._onPropertyChanged)
extruder_stack.containersChanged.disconnect(self._onContainersChanged) extruder_stack.containersChanged.disconnect(self._onContainersChanged)
@ -257,7 +257,7 @@ class MachineManager(QObject):
self._global_container_stack.setMaterial(empty_material_container) self._global_container_stack.setMaterial(empty_material_container)
# Listen for changes on all extruder stacks # Listen for changes on all extruder stacks
for extruder_stack in ExtruderManager.getInstance().getActiveExtruderStacks(): for extruder_stack in self._global_container_stack.extruderList:
extruder_stack.propertyChanged.connect(self._onPropertyChanged) extruder_stack.propertyChanged.connect(self._onPropertyChanged)
extruder_stack.containersChanged.connect(self._onContainersChanged) extruder_stack.containersChanged.connect(self._onContainersChanged)
@ -365,7 +365,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().getActiveExtruderStacks() extruder_stacks = self._global_container_stack.extruderList
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()
@ -388,8 +388,7 @@ class MachineManager(QObject):
if self._global_container_stack.getTop().getNumInstances() != 0: if self._global_container_stack.getTop().getNumInstances() != 0:
return True return True
stacks = ExtruderManager.getInstance().getActiveExtruderStacks() for stack in self._global_container_stack.extruderList:
for stack in stacks:
if stack.getTop().getNumInstances() != 0: if stack.getTop().getNumInstances() != 0:
return True return True
@ -426,7 +425,7 @@ class MachineManager(QObject):
stack = ExtruderManager.getInstance().getActiveExtruderStack() stack = ExtruderManager.getInstance().getActiveExtruderStack()
stacks = [stack] stacks = [stack]
else: else:
stacks = ExtruderManager.getInstance().getActiveExtruderStacks() stacks = self._global_container_stack.extruderList
for stack in stacks: for stack in stacks:
if stack is not None: if stack is not None:
@ -611,10 +610,9 @@ 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().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 self._global_container_stack.extruderList:
if extruder_stack != self._active_container_stack and extruder_stack.getProperty(key, "value") != new_value: if extruder_stack != self._active_container_stack and extruder_stack.getProperty(key, "value") != new_value:
extruder_stack.userChanges.setProperty(key, "value", new_value) # TODO: nested property access, should be improved extruder_stack.userChanges.setProperty(key, "value", new_value) # TODO: nested property access, should be improved
@ -928,7 +926,7 @@ class MachineManager(QObject):
def _getContainerChangedSignals(self) -> List[Signal]: def _getContainerChangedSignals(self) -> List[Signal]:
if self._global_container_stack is None: if self._global_container_stack is None:
return [] return []
return [s.containersChanged for s in ExtruderManager.getInstance().getActiveExtruderStacks() + [self._global_container_stack]] return [s.containersChanged for s in self._global_container_stack.extruderList + [self._global_container_stack]]
@pyqtSlot(str, str, str) @pyqtSlot(str, str, str)
def setSettingForAllExtruders(self, setting_name: str, property_name: str, property_value: str) -> None: def setSettingForAllExtruders(self, setting_name: str, property_name: str, property_value: str) -> None: