From: daid303 Date: Fri, 19 Apr 2013 20:00:18 +0000 (+0200) Subject: Load GCode in background thread instead of the slice thread. X-Git-Tag: 13.05~70 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a92a99689eefbada93c25905674dcfb454cf6ce8;p=cura.git Load GCode in background thread instead of the slice thread. --- diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 1b9de02e..9245789d 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -6,6 +6,7 @@ import time import os import traceback import shutil +import threading import OpenGL OpenGL.ERROR_CHECKING = False @@ -245,6 +246,8 @@ class SceneView(openglGui.glGuiPanel): self._selectedObj.scaleUpTo(self._machineSize - numpy.array(profile.calculateObjectSizeOffsets() + [0.0], numpy.float32) * 2) self._scene.pushFree() self._selectObject(self._selectedObj) + self.updateProfileToControls() + self.sceneUpdated() def OnMirror(self, axis): if self._selectedObj is None: @@ -341,9 +344,14 @@ class SceneView(openglGui.glGuiPanel): if ready: self._gcode = gcodeInterpreter.gcode() self._gcode.progressCallback = self._gcodeLoadCallback - self._gcode.load(self._slicer.getGCodeFilename()) + self._thread = threading.Thread(target=self._loadGCode) + self._thread.daemon = True + self._thread.start() self.QueueRefresh() + def _loadGCode(self): + self._gcode.load(self._slicer.getGCodeFilename()) + def _gcodeLoadCallback(self, progress): if self._gcode is None: return True