Make the available machines a list and do not assume we have an active machine everywhere in the code

This commit is contained in:
Arjen Hiemstra 2015-02-13 18:04:32 +01:00
parent 201ea272b0
commit 227d9600dc
2 changed files with 16 additions and 3 deletions

View file

@ -20,8 +20,9 @@ class CuraEngineBackend(Backend):
self._scene = Application.getInstance().getController().getScene() self._scene = Application.getInstance().getController().getScene()
self._scene.sceneChanged.connect(self._onSceneChanged) self._scene.sceneChanged.connect(self._onSceneChanged)
self._settings = Application.getInstance().getMachineSettings() self._settings = None
self._settings.settingChanged.connect(self._onSettingChanged) Application.getInstance().activeMachineChanged.connect(self._onActiveMachineChanged)
self._onActiveMachineChanged()
self._changeTimer = None self._changeTimer = None
@ -41,6 +42,15 @@ class CuraEngineBackend(Backend):
self._onChanged() self._onChanged()
def _onActiveMachineChanged(self):
if self._settings:
self._settings.settingChanged.disconnect(self._onSettingChanged)
self._settings = Application.getInstance().getActiveMachine()
if self._settings:
self._settings.settingChanged.connect(self._onSettingChanged)
self._onChanged()
def _onSettingChanged(self, setting): def _onSettingChanged(self, setting):
self._onChanged() self._onChanged()
@ -69,6 +79,9 @@ class CuraEngineBackend(Backend):
self._socket.registerMessageType(6, Cura_pb2.SettingList) self._socket.registerMessageType(6, Cura_pb2.SettingList)
def _onChanged(self): def _onChanged(self):
if not self._settings:
return
if self._changeTimer: if self._changeTimer:
return return

View file

@ -22,7 +22,7 @@ class ProcessSlicedObjectListJob(Job):
if type(node) is SceneNode and node.getMeshData(): if type(node) is SceneNode and node.getMeshData():
objectIdMap[id(node)] = node objectIdMap[id(node)] = node
layerHeight = Application.getInstance().getMachineSettings().getSettingValueByKey('layer_height') layerHeight = Application.getInstance().getActiveMachine().getSettingValueByKey('layer_height')
for object in self._message.objects: for object in self._message.objects:
mesh = objectIdMap[object.id].getMeshData() mesh = objectIdMap[object.id].getMeshData()