comparison panned.cpp @ 53:3c46b2ac45d3

* Put proper labels &c in changeset items; colour branches and users; etc
author Chris Cannam
date Fri, 12 Nov 2010 16:48:18 +0000
parents bd3accba9b3f
children 1394c8cbf991
comparison
equal deleted inserted replaced
52:384420567575 53:3c46b2ac45d3
17 17
18 #include "panned.h" 18 #include "panned.h"
19 19
20 #include <QScrollBar> 20 #include <QScrollBar>
21 #include <QGLWidget> 21 #include <QGLWidget>
22 #include <QWheelEvent>
22 23
23 #include <iostream> 24 #include <iostream>
24 25
25 Panned::Panned() 26 Panned::Panned()
26 { 27 {
64 emit pannedRectChanged(pr); 65 emit pannedRectChanged(pr);
65 } 66 }
66 } 67 }
67 68
68 void 69 void
70 Panned::zoomIn()
71 {
72 QMatrix m = matrix();
73 m.scale(1.0 / 1.1, 1.0 / 1.1);
74 setMatrix(m);
75 }
76
77 void
78 Panned::zoomOut()
79 {
80 QMatrix m = matrix();
81 m.scale(1.1, 1.1);
82 setMatrix(m);
83 }
84
85 void
69 Panned::slotSetPannedRect(QRectF pr) 86 Panned::slotSetPannedRect(QRectF pr)
70 { 87 {
71 centerOn(pr.center()); 88 centerOn(pr.center());
72 // setSceneRect(pr); 89 // setSceneRect(pr);
73 // m_pannedRect = pr; 90 // m_pannedRect = pr;
74 } 91 }
75 92
76 void 93 void
77 Panned::wheelEvent(QWheelEvent *ev) 94 Panned::wheelEvent(QWheelEvent *ev)
78 { 95 {
79 emit wheelEventReceived(ev); 96 if (ev->modifiers() & Qt::ControlModifier) {
80 QGraphicsView::wheelEvent(ev); 97 int d = ev->delta();
98 if (d > 0) {
99 while (d > 0) {
100 zoomOut();
101 d -= 120;
102 }
103 } else {
104 while (d < 0) {
105 zoomIn();
106 d += 120;
107 }
108 }
109 } else {
110 emit wheelEventReceived(ev);
111 QGraphicsView::wheelEvent(ev);
112 }
81 } 113 }
82 114
83 void 115 void
84 Panned::slotEmulateWheelEvent(QWheelEvent *ev) 116 Panned::slotEmulateWheelEvent(QWheelEvent *ev)
85 { 117 {