Browse Source

EngineBackend should trigger auto-slice on changes

CURA-4107

CuraEngineBackend should trigger auto-slice on value changes, not
changes on the active extruder.
Lipu Fei 7 years ago
parent
commit
05879e0dfc
1 changed files with 2 additions and 19 deletions
  1. 2 19
      plugins/CuraEngineBackend/CuraEngineBackend.py

+ 2 - 19
plugins/CuraEngineBackend/CuraEngineBackend.py

@@ -88,10 +88,6 @@ class CuraEngineBackend(QObject, Backend):
         Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged)
         self._onGlobalStackChanged()
 
-        self._active_extruder_stack = None
-        ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged)
-        self._onActiveExtruderChanged()
-
         Application.getInstance().stacksValidationFinished.connect(self._onStackErrorCheckFinished)
 
         # A flag indicating if an error check was scheduled
@@ -622,6 +618,7 @@ class CuraEngineBackend(QObject, Backend):
 
             for extruder in extruders:
                 extruder.propertyChanged.disconnect(self._onSettingChanged)
+                extruder.containersChanged.disconnect(self._onChanged)
 
         self._global_container_stack = Application.getInstance().getGlobalContainerStack()
 
@@ -631,23 +628,9 @@ class CuraEngineBackend(QObject, Backend):
             extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
             for extruder in extruders:
                 extruder.propertyChanged.connect(self._onSettingChanged)
-            self._onActiveExtruderChanged()
+                extruder.containersChanged.connect(self._onChanged)
             self._onChanged()
 
-    def _onActiveExtruderChanged(self):
-        if self._global_container_stack:
-            # Connect all extruders of the active machine. This might cause a few connects that have already happend,
-            # but that shouldn't cause issues as only new / unique connections are added.
-            extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
-            for extruder in extruders:
-                extruder.propertyChanged.connect(self._onSettingChanged)
-        if self._active_extruder_stack:
-            self._active_extruder_stack.containersChanged.disconnect(self._onChanged)
-
-        self._active_extruder_stack = ExtruderManager.getInstance().getActiveExtruderStack()
-        if self._active_extruder_stack:
-            self._active_extruder_stack.containersChanged.connect(self._onChanged)
-
     def _onProcessLayersFinished(self, job):
         self._process_layers_job = None