summaryrefslogtreecommitdiff
path: root/src/QGLView.cc
diff options
context:
space:
mode:
authorHenner Zeller <h.zeller@acm.org>2013-10-25 05:56:55 (GMT)
committerHenner Zeller <h.zeller@acm.org>2013-10-25 05:56:55 (GMT)
commit3e15f421136769c565a541c2af46c0f90c3e002e (patch)
tree1a222e6f27029c3d0d3653aa16ba06d21480e078 /src/QGLView.cc
parent54595cc9bfc64cb383790fb18efcdad16e8fe0b0 (diff)
o Key-press event in the QGLView were ignored, as it never got the
focus. Fix: Gain focus on mouse-click inside that view. o QGLView: make zoom-in as well possible on '=' key. On American keyboards, the '=' key is right next to the '-' (Minus) key, while '+' (plus) requires Shift-equals. o Provide a useful 'c' key-binding for 'center'. Very useful after getting lost in panning.
Diffstat (limited to 'src/QGLView.cc')
-rw-r--r--src/QGLView.cc16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/QGLView.cc b/src/QGLView.cc
index 8aaeaf2..5cb2e1b 100644
--- a/src/QGLView.cc
+++ b/src/QGLView.cc
@@ -167,15 +167,20 @@ void QGLView::paintGL()
void QGLView::keyPressEvent(QKeyEvent *event)
{
- if (event->key() == Qt::Key_Plus) {
+ switch (event->key()) {
+ case Qt::Key_Plus: // On many keyboards, this requires to press Shift-equals
+ case Qt::Key_Equal: // ...so simplify this a bit.
cam.viewer_distance *= 0.9;
updateGL();
- return;
- }
- if (event->key() == Qt::Key_Minus) {
+ break;
+ case Qt::Key_Minus:
cam.viewer_distance /= 0.9;
updateGL();
- return;
+ break;
+ case Qt::Key_C: // 'center'
+ cam.object_trans << 0, 0, 0;
+ updateGL();
+ break;
}
}
@@ -187,6 +192,7 @@ void QGLView::wheelEvent(QWheelEvent *event)
void QGLView::mousePressEvent(QMouseEvent *event)
{
+ setFocus();
mouse_drag_active = true;
last_mouse = event->globalPos();
}
contact: Jan Huwald // Impressum