From 8e5183bad4140f31897c2add61bac1ea2ad12c16 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 22 Sep 2016 00:56:05 +0200 Subject: [PATCH] Ensure we remove ProcessLayersJob once it has finished Since it holds on to a fairly large amount of data. Contributes to CURA-2406 --- plugins/CuraEngineBackend/CuraEngineBackend.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/CuraEngineBackend/CuraEngineBackend.py b/plugins/CuraEngineBackend/CuraEngineBackend.py index ec9b050cdd..c24ea1cf76 100644 --- a/plugins/CuraEngineBackend/CuraEngineBackend.py +++ b/plugins/CuraEngineBackend/CuraEngineBackend.py @@ -336,6 +336,7 @@ class CuraEngineBackend(Backend): Logger.log("d", "Slicing took %s seconds", time() - self._slice_start_time ) if self._layer_view_active and (self._process_layers_job is None or not self._process_layers_job.isRunning()): self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_optimized_layer_data) + self._process_layers_job.finished.connect(self._onProcessLayersFinished) self._process_layers_job.start() self._stored_optimized_layer_data = [] @@ -411,6 +412,7 @@ class CuraEngineBackend(Backend): # if we are slicing, there is no need to re-calculate the data as it will be invalid in a moment. if self._stored_optimized_layer_data and not self._slicing: self._process_layers_job = ProcessSlicedLayersJob.ProcessSlicedLayersJob(self._stored_optimized_layer_data) + self._process_layers_job.finished.connect(self._onProcessLayersFinished) self._process_layers_job.start() self._stored_optimized_layer_data = [] else: @@ -463,3 +465,5 @@ class CuraEngineBackend(Backend): if self._active_extruder_stack: self._active_extruder_stack.containersChanged.connect(self._onChanged) + def _onProcessLayersFinished(self, job): + self._process_layers_job = None