chiark / gitweb /
Added keyboard control for the 3D window to look around with cursor keys.
authordaid <daid303@gmail.com>
Thu, 19 Dec 2013 11:12:41 +0000 (12:12 +0100)
committerdaid <daid303@gmail.com>
Thu, 19 Dec 2013 11:12:41 +0000 (12:12 +0100)
Cura/gui/mainWindow.py
Cura/gui/newVersionDialog.py
Cura/gui/sceneView.py
changelog

index 7efb631dce2ce73df98b788b3a9ff4c366071e8a..99c0b2d85537ed406741adf8d54e49621020d407 100644 (file)
@@ -245,6 +245,7 @@ class mainWindow(wx.Frame):
                        self.Centre()
 
                self.updateSliceMode()
+               self.scene.SetFocus()
 
        def onTimer(self, e):
                #Check if there is something in the clipboard
index bb36d54082a8ef15c1109e795dd3a8305300cffd..106fc92b936a684ededa3b387b095ee503620334 100644 (file)
@@ -31,6 +31,7 @@ class newVersionDialog(wx.Dialog):
                s.Add(wx.StaticText(p, -1, '* Updated object boundaries for multi-object prints, allows for tighter fitting of objects on the build platform'))
                s.Add(wx.StaticText(p, -1, '* Updated time-estimate to greatly improve accuracy of the estimate.'))
                s.Add(wx.StaticText(p, -1, '* Fixed problem with retractions not happening when they should.'))
+               s.Add(wx.StaticText(p, -1, '* Added keyboard control for the 3D window to look around with cursor keys.'))
 
                self.hasUltimaker = None
                self.hasUltimaker2 = None
index 49c4ccc511aab39496a6368f1a2d27edc92e24ac..9e60a09281323474c104ccf7b7119bc8729f8fc2 100644 (file)
@@ -661,18 +661,68 @@ 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 self.viewMode == 'gcode':
+                       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()
+               else:
+                       if keyCode == wx.WXK_UP:
+                               if wx.GetKeyState(wx.WXK_SHIFT):
+                                       self._zoom /= 1.2
+                                       if self._zoom < 1:
+                                               self._zoom = 1
+                               else:
+                                       self._pitch -= 15
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_DOWN:
+                               if wx.GetKeyState(wx.WXK_SHIFT):
+                                       self._zoom *= 1.2
+                                       if self._zoom > numpy.max(self._machineSize) * 3:
+                                               self._zoom = numpy.max(self._machineSize) * 3
+                               else:
+                                       self._pitch += 15
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_LEFT:
+                               self._yaw -= 15
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_RIGHT:
+                               self._yaw += 15
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_NUMPAD_ADD or keyCode == wx.WXK_ADD or keyCode == ord('+') or keyCode == ord('='):
+                               self._zoom /= 1.2
+                               if self._zoom < 1:
+                                       self._zoom = 1
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_NUMPAD_SUBTRACT or keyCode == wx.WXK_SUBTRACT or keyCode == ord('-'):
+                               self._zoom *= 1.2
+                               if self._zoom > numpy.max(self._machineSize) * 3:
+                                       self._zoom = numpy.max(self._machineSize) * 3
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_HOME:
+                               self._yaw = 30
+                               self._pitch = 60
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_PAGEUP:
+                               self._yaw = 0
+                               self._pitch = 0
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_PAGEDOWN:
+                               self._yaw = 0
+                               self._pitch = 90
+                               self.QueueRefresh()
+                       elif keyCode == wx.WXK_END:
+                               self._yaw = 90
+                               self._pitch = 90
+                               self.QueueRefresh()
 
                if keyCode == wx.WXK_F3 and wx.GetKeyState(wx.WXK_SHIFT):
                        shaderEditor(self, self.ShaderUpdate, self._objectLoadShader.getVertexShader(), self._objectLoadShader.getFragmentShader())
index b3ea6b23be5250d81a67b331530208ac0d0fbcf8..ffad1f19c8b4f4906607b46a4617bf599e123e91 100644 (file)
--- a/changelog
+++ b/changelog
@@ -4,6 +4,7 @@ Development
 * Updated object boundaries for multi-object prints, allows for tighter fitting of objects on the build platform
 * Updated time-estimate to greatly improve accuracy of the estimate.
 * Fixed problem with retractions not happening when they should.
+* Added keyboard control for the 3D window to look around with cursor keys.
 
 Ultimaker2 - Firmware update - 13.12
 * Fixed the problem where aborting a print did not always home the head.