From 9561827bdad91604fc70e0c448c9b8c657c83a83 Mon Sep 17 00:00:00 2001 From: Diego Prado Gesto Date: Wed, 6 Dec 2017 14:12:51 +0100 Subject: [PATCH] CURA-4680 Checking if there is global stack in the ExtruderManager. Intead of checking for it in all the methods in MachineManager, now the check is done in ExtruderManager when there is no printer in the list. --- cura/Settings/ExtruderManager.py | 8 +++++--- cura/Settings/MachineManager.py | 19 ------------------- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/cura/Settings/ExtruderManager.py b/cura/Settings/ExtruderManager.py index 34b283107d..32e3867300 100755 --- a/cura/Settings/ExtruderManager.py +++ b/cura/Settings/ExtruderManager.py @@ -356,14 +356,16 @@ class ExtruderManager(QObject): # \return \type{List[ContainerStack]} a list of def getActiveExtruderStacks(self) -> List["ExtruderStack"]: global_stack = Application.getInstance().getGlobalContainerStack() + if not global_stack: + return None result = [] - machine_extruder_count = global_stack.getProperty("machine_extruder_count", "value") - - if global_stack and global_stack.getId() in self._extruder_trains: + 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") + return result[:machine_extruder_count] def __globalContainerStackChanged(self) -> None: diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index 253c5f793c..afd038b45d 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -499,10 +499,6 @@ class MachineManager(QObject): def activeVariantNames(self) -> List[str]: result = [] - # it can happen when there is no active machine - if self._global_container_stack is None: - return result - active_stacks = ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() if active_stacks is not None: for stack in active_stacks: @@ -516,10 +512,6 @@ class MachineManager(QObject): def activeMaterialNames(self) -> List[str]: result = [] - # it can happen when there is no active machine - if self._global_container_stack is None: - return result - active_stacks = ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks() if active_stacks is not None: for stack in active_stacks: @@ -541,10 +533,6 @@ class MachineManager(QObject): def allActiveVariantIds(self) -> Dict[str, str]: result = {} - # it can happen when there is no active machine - if self._global_container_stack is None: - return result - active_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() if active_stacks is not None: #If we have a global stack. for stack in active_stacks: @@ -564,14 +552,7 @@ class MachineManager(QObject): def allActiveMaterialIds(self) -> Dict[str, str]: result = {} - # it can happen when there is no active machine - if self._global_container_stack is None: - return result - active_stacks = ExtruderManager.getInstance().getActiveExtruderStacks() - - result[self._global_container_stack.getId()] = self._global_container_stack.material.getId() - if active_stacks is not None: # If we have extruder stacks for stack in active_stacks: material_container = stack.material