Browse Source

getActiveExtruderStack now returns stack based on machine_id instead of definiton ID

Contributes to CURA-1898
Jaime van Kessel 8 years ago
parent
commit
dfd56d049f
2 changed files with 5 additions and 8 deletions
  1. 5 7
      cura/Settings/ExtruderManager.py
  2. 0 1
      cura/Settings/MachineManager.py

+ 5 - 7
cura/Settings/ExtruderManager.py

@@ -35,10 +35,10 @@ class ExtruderManager(QObject):
     @pyqtProperty(str, notify = activeExtruderChanged)
     def activeExtruderStackId(self):
         if not UM.Application.getInstance().getGlobalContainerStack():
-            return None #No active machine, so no active extruder.
+            return None # No active machine, so no active extruder.
         try:
             return self._extruder_trains[UM.Application.getInstance().getGlobalContainerStack().getId()][str(self._active_extruder_index)].getId()
-        except KeyError: #Extruder index could be -1 if the global tab is selected, or the entry doesn't exist if the machine definition is wrong.
+        except KeyError: # Extruder index could be -1 if the global tab is selected, or the entry doesn't exist if the machine definition is wrong.
             return None
 
     ##  The instance of the singleton pattern.
@@ -74,11 +74,9 @@ class ExtruderManager(QObject):
     def getActiveExtruderStack(self):
         global_container_stack = UM.Application.getInstance().getGlobalContainerStack()
         if global_container_stack:
-            global_definition_container = UM.Application.getInstance().getGlobalContainerStack().getBottom()
-            if global_definition_container:
-                if global_definition_container.getId() in self._extruder_trains:
-                    if str(self._active_extruder_index) in self._extruder_trains[global_definition_container.getId()]:
-                        return self._extruder_trains[global_definition_container.getId()][str(self._active_extruder_index)]
+            if global_container_stack.getId() in self._extruder_trains:
+                if str(self._active_extruder_index) in self._extruder_trains[global_container_stack.getId()]:
+                    return self._extruder_trains[global_container_stack.getId()][str(self._active_extruder_index)]
         return None
 
     ##  Adds all extruders of a specific machine definition to the extruder

+ 0 - 1
cura/Settings/MachineManager.py

@@ -239,7 +239,6 @@ class MachineManager(QObject):
         if self._active_container_stack and self._active_container_stack != self._global_container_stack:
             self._active_container_stack.containersChanged.disconnect(self._onInstanceContainersChanged)
             self._active_container_stack.propertyChanged.disconnect(self._onGlobalPropertyChanged)
-
         self._active_container_stack = ExtruderManager.getInstance().getActiveExtruderStack()
         if self._active_container_stack:
             self._active_container_stack.containersChanged.connect(self._onInstanceContainersChanged)