Use the profile for getting setting values, not the machine instance

This commit is contained in:
Arjen Hiemstra 2015-08-27 09:36:09 +02:00
parent 4d4192d6d6
commit e6e563cf09

View file

@ -45,9 +45,10 @@ class CuraEngineBackend(Backend):
self._onActiveViewChanged() self._onActiveViewChanged()
self._stored_layer_data = None self._stored_layer_data = None
self._settings = None
Application.getInstance().getMachineManager().activeMachineInstanceChanged.connect(self._onActiveMachineChanged) self._profile = None
self._onActiveMachineChanged() Application.getInstance().getMachineManager().activeProfileChanged.connect(self._onActiveProfileChanged)
self._onActiveProfileChanged()
self._change_timer = QTimer() self._change_timer = QTimer()
self._change_timer.setInterval(500) self._change_timer.setInterval(500)
@ -115,7 +116,7 @@ class CuraEngineBackend(Backend):
return return
object_groups = [] object_groups = []
if self._settings.getSettingValueByKey("print_sequence") == "One at a time": if self._profile.getSettingValue("print_sequence") == "one_at_a_time":
for node in OneAtATimeIterator(self._scene.getRoot()): for node in OneAtATimeIterator(self._scene.getRoot()):
temp_list = [] temp_list = []
children = node.getAllChildren() children = node.getAllChildren()
@ -141,7 +142,7 @@ class CuraEngineBackend(Backend):
if len(object_groups) == 0: if len(object_groups) == 0:
return #No point in slicing an empty build plate return #No point in slicing an empty build plate
if kwargs.get("settings", self._settings).hasErrorValue(): if kwargs.get("profile", self._profile).hasErrorValue():
return #No slicing if we have error values since those are by definition illegal values. return #No slicing if we have error values since those are by definition illegal values.
self._slicing = True self._slicing = True
@ -151,7 +152,7 @@ class CuraEngineBackend(Backend):
if self._report_progress: if self._report_progress:
self.processingProgress.emit(0.0) self.processingProgress.emit(0.0)
self._sendSettings(kwargs.get("settings", self._settings)) self._sendSettings(kwargs.get("profile", self._profile))
self._scene.acquireLock() self._scene.acquireLock()
@ -197,13 +198,14 @@ class CuraEngineBackend(Backend):
self._onChanged() self._onChanged()
def _onActiveMachineChanged(self):
if self._settings:
self._settings.settingChanged.disconnect(self._onSettingChanged)
self._settings = Application.getInstance().getMachineManager().getActiveMachineInstance() def _onActiveProfileChanged(self):
if self._settings: if self._profile:
self._settings.settingChanged.connect(self._onSettingChanged) self._profile.settingValueChanged.disconnect(self._onSettingChanged)
self._profile = Application.getInstance().getMachineManager().getActiveProfile()
if self._profile:
self._profile.settingValueChanged.connect(self._onSettingChanged)
self._onChanged() self._onChanged()
def _onSettingChanged(self, setting): def _onSettingChanged(self, setting):
@ -249,17 +251,17 @@ class CuraEngineBackend(Backend):
self._socket.registerMessageType(7, Cura_pb2.GCodePrefix) self._socket.registerMessageType(7, Cura_pb2.GCodePrefix)
def _onChanged(self): def _onChanged(self):
if not self._settings: if not self._profile:
return return
self._change_timer.start() self._change_timer.start()
def _sendSettings(self, settings): def _sendSettings(self, profile):
msg = Cura_pb2.SettingList() msg = Cura_pb2.SettingList()
for setting in settings.getAllSettings(include_machine=True): for key, value in profile.getAllSettingValues(include_machine = True).items():
s = msg.settings.add() s = msg.settings.add()
s.name = setting.getKey() s.name = key
s.value = str(setting.getValue()).encode("utf-8") s.value = str(value).encode("utf-8")
self._socket.sendMessage(msg) self._socket.sendMessage(msg)