Browse Source

Fixed signal routing when switching between different machines. CURA-2232

Jack Ha 8 years ago
parent
commit
e66548099a
1 changed files with 5 additions and 7 deletions
  1. 5 7
      cura/Settings/ExtruderManager.py

+ 5 - 7
cura/Settings/ExtruderManager.py

@@ -141,10 +141,9 @@ class ExtruderManager(QObject):
             for extruder_train in extruder_trains:
                 self._extruder_trains[machine_id][extruder_train.getMetaDataEntry("position")] = extruder_train
 
-                # Make sure the next stack is a stack that contains only the machine definition
-                if not extruder_train.getNextStack():
-                    extruder_train.setNextStack(UM.Application.getInstance().getGlobalContainerStack())
-                    changed = True
+                # regardless of what the next stack is, we have to set it again, because of signal routing.
+                extruder_train.setNextStack(UM.Application.getInstance().getGlobalContainerStack())
+                changed = True
         if changed:
             self.extrudersChanged.emit(machine_id)
 
@@ -260,9 +259,8 @@ class ExtruderManager(QObject):
             container_registry.addContainer(user_profile)
         container_stack.addContainer(user_profile)
 
-        # Make sure the next stack is a stack that contains only the machine definition
-        if not container_stack.getNextStack():
-            container_stack.setNextStack(UM.Application.getInstance().getGlobalContainerStack())
+        # regardless of what the next stack is, we have to set it again, because of signal routing.
+        container_stack.setNextStack(UM.Application.getInstance().getGlobalContainerStack())
 
         container_registry.addContainer(container_stack)