From 227d9600dc4db7d750f7565983ed2b0e1ab19d9e Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Fri, 13 Feb 2015 18:04:32 +0100 Subject: [PATCH] Make the available machines a list and do not assume we have an active machine everywhere in the code --- CuraEngineBackend.py | 17 +++++++++++++++-- ProcessSlicedObjectListJob.py | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/CuraEngineBackend.py b/CuraEngineBackend.py index 244536e7c6..11c4ac85e4 100644 --- a/CuraEngineBackend.py +++ b/CuraEngineBackend.py @@ -20,8 +20,9 @@ class CuraEngineBackend(Backend): self._scene = Application.getInstance().getController().getScene() self._scene.sceneChanged.connect(self._onSceneChanged) - self._settings = Application.getInstance().getMachineSettings() - self._settings.settingChanged.connect(self._onSettingChanged) + self._settings = None + Application.getInstance().activeMachineChanged.connect(self._onActiveMachineChanged) + self._onActiveMachineChanged() self._changeTimer = None @@ -41,6 +42,15 @@ class CuraEngineBackend(Backend): 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): self._onChanged() @@ -69,6 +79,9 @@ class CuraEngineBackend(Backend): self._socket.registerMessageType(6, Cura_pb2.SettingList) def _onChanged(self): + if not self._settings: + return + if self._changeTimer: return diff --git a/ProcessSlicedObjectListJob.py b/ProcessSlicedObjectListJob.py index 2819153758..7cb5fa6760 100644 --- a/ProcessSlicedObjectListJob.py +++ b/ProcessSlicedObjectListJob.py @@ -22,7 +22,7 @@ class ProcessSlicedObjectListJob(Job): if type(node) is SceneNode and node.getMeshData(): objectIdMap[id(node)] = node - layerHeight = Application.getInstance().getMachineSettings().getSettingValueByKey('layer_height') + layerHeight = Application.getInstance().getActiveMachine().getSettingValueByKey('layer_height') for object in self._message.objects: mesh = objectIdMap[object.id].getMeshData()