chiark / gitweb /
Add keyboard control to gcode layer switching.
authordaid303 <daid303@gmail.com>
Wed, 17 Apr 2013 07:06:42 +0000 (09:06 +0200)
committerdaid303 <daid303@gmail.com>
Wed, 17 Apr 2013 07:06:42 +0000 (09:06 +0200)
Cura/gui/sceneView.py
Cura/util/sliceEngine.py

index ba2afe66459c961ca5e3282cba84791fa5a95639..c50b6091577d5bda1a86ec43bfb3cf616d0d04e7 100644 (file)
@@ -187,6 +187,9 @@ class SceneView(openglGui.glGuiPanel):
        def OnViewChange(self):
                if self.viewSelection.getValue() == 1:
                        self.viewMode = 'gcode'
+                       if self._gcode is not None:
+                               self.layerSelect.setRange(1, len(self._gcode.layerList) - 1)
+                               self.layerSelect.setValue(len(self._gcode.layerList) - 1)
                        self._selectObject(None)
                else:
                        self.viewMode = 'normal'
@@ -383,6 +386,18 @@ class SceneView(openglGui.glGuiPanel):
                        if self._selectedObj is not None:
                                self._deleteObject(self._selectedObj)
                                self.QueueRefresh()
+               if keyCode == wx.WXK_UP:
+                       self.layerSelect.setValue(self.layerSelect.getValue() + 1)
+                       self.QueueRefresh()
+               elif keyCode == wx.WXK_DOWN:
+                       self.layerSelect.setValue(self.layerSelect.getValue() - 1)
+                       self.QueueRefresh()
+               elif keyCode == wx.WXK_PAGEUP:
+                       self.layerSelect.setValue(self.layerSelect.getValue() + 10)
+                       self.QueueRefresh()
+               elif keyCode == wx.WXK_PAGEDOWN:
+                       self.layerSelect.setValue(self.layerSelect.getValue() - 10)
+                       self.QueueRefresh()
 
                if keyCode == wx.WXK_F3 and wx.GetKeyState(wx.WXK_SHIFT):
                        shaderEditor(self, self.ShaderUpdate, self._objectLoadShader.getVertexShader(), self._objectLoadShader.getFragmentShader())
index c967ca6b38f1b67160ae4c0e939351bf1cb26a51..6dd73514e357f5d52542291f62e6fce405b6c133 100644 (file)
@@ -39,7 +39,10 @@ class Slicer(object):
 
        def abortSlicer(self):
                if self._process is not None:
-                       self._process.terminate()
+                       try:
+                               self._process.terminate()
+                       except:
+                               pass
                        self._thread.join()
 
        def getGCodeFilename(self):