Merge branch 'master' into layer_view3_cleanup

This commit is contained in:
Jack Ha 2017-02-15 10:57:24 +01:00
commit 78de5412a2
95 changed files with 3279 additions and 683 deletions

View file

@ -15,12 +15,8 @@ from UM.Platform import Platform
from UM.Scene.Iterator.DepthFirstIterator import DepthFirstIterator
import cura.Settings
from cura.OneAtATimeIterator import OneAtATimeIterator
from cura.Settings.ExtruderManager import ExtruderManager
from . import ProcessSlicedLayersJob
from . import ProcessGCodeJob
from . import StartSliceJob
import os
@ -72,6 +68,7 @@ class CuraEngineBackend(Backend):
self._scene.sceneChanged.connect(self._onSceneChanged)
self._pause_slicing = False
self._block_slicing = False # continueSlicing does not have effect if True
# Workaround to disable layer view processing if layer view is not active.
self._layer_view_active = False
@ -86,7 +83,7 @@ class CuraEngineBackend(Backend):
self._onGlobalStackChanged()
self._active_extruder_stack = None
cura.Settings.ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged)
ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged)
self._onActiveExtruderChanged()
# When you update a setting and other settings get changed through inheritance, many propertyChanged signals are fired.
@ -154,7 +151,7 @@ class CuraEngineBackend(Backend):
## Perform a slice of the scene.
def slice(self):
Logger.log("d", "Starting slice job...")
if self._pause_slicing:
if self._pause_slicing or self._block_slicing:
return
self._slice_start_time = time()
if not self._enabled or not self._global_container_stack: # We shouldn't be slicing.
@ -191,12 +188,13 @@ class CuraEngineBackend(Backend):
def pauseSlicing(self):
self.close()
self._pause_slicing = True
self.backendStateChange.emit(BackendState.Disabled)
if not self._pause_slicing:
self.close()
self._pause_slicing = True
self.backendStateChange.emit(BackendState.Disabled)
def continueSlicing(self):
if self._pause_slicing:
if self._pause_slicing and not self._block_slicing:
self._pause_slicing = False
self.backendStateChange.emit(BackendState.NotStarted)
@ -315,15 +313,19 @@ class CuraEngineBackend(Backend):
if source is self._scene.getRoot():
return
should_pause = False
should_pause = self._pause_slicing
block_slicing = False
for node in DepthFirstIterator(self._scene.getRoot()):
if node.callDecoration("isBlockSlicing"):
should_pause = True
block_slicing = True
gcode_list = node.callDecoration("getGCodeList")
if gcode_list is not None:
self._scene.gcode_list = gcode_list
if should_pause:
self._block_slicing = block_slicing
if should_pause or self._block_slicing:
self.pauseSlicing()
else:
self.continueSlicing()
@ -515,7 +517,7 @@ class CuraEngineBackend(Backend):
if self._active_extruder_stack:
self._active_extruder_stack.containersChanged.disconnect(self._onChanged)
self._active_extruder_stack = cura.Settings.ExtruderManager.getInstance().getActiveExtruderStack()
self._active_extruder_stack = ExtruderManager.getInstance().getActiveExtruderStack()
if self._active_extruder_stack:
self._active_extruder_stack.containersChanged.connect(self._onChanged)

View file

@ -16,8 +16,7 @@ from UM.Settings.Validator import ValidatorState
from UM.Settings.SettingRelation import RelationType
from cura.OneAtATimeIterator import OneAtATimeIterator
import cura.Settings
from cura.Settings.ExtruderManager import ExtruderManager
class StartJobResult(IntEnum):
Finished = 1
@ -84,7 +83,7 @@ class StartSliceJob(Job):
self.setResult(StartJobResult.BuildPlateError)
return
for extruder_stack in cura.Settings.ExtruderManager.getInstance().getMachineExtruders(stack.getId()):
for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(stack.getId()):
material = extruder_stack.findContainer({"type": "material"})
if material:
if material.getMetaDataEntry("compatible") == False:
@ -149,7 +148,7 @@ class StartSliceJob(Job):
self._buildGlobalSettingsMessage(stack)
self._buildGlobalInheritsStackMessage(stack)
for extruder_stack in cura.Settings.ExtruderManager.getInstance().getMachineExtruders(stack.getId()):
for extruder_stack in ExtruderManager.getInstance().getMachineExtruders(stack.getId()):
self._buildExtruderMessage(extruder_stack)
for group in object_groups: