@@ -38,7 +38,7 @@ class TestQgsMapCanvas : public QObject
38
38
Q_OBJECT
39
39
public:
40
40
TestQgsMapCanvas ()
41
- : mCanvas ( 0 )
41
+ : mCanvas ( nullptr )
42
42
{}
43
43
44
44
private slots:
@@ -50,6 +50,7 @@ class TestQgsMapCanvas : public QObject
50
50
void testMagnification ();
51
51
void testMagnificationExtent ();
52
52
void testMagnificationScale ();
53
+ void testZoomByWheel ();
53
54
54
55
private:
55
56
QgsMapCanvas* mCanvas ;
@@ -360,5 +361,39 @@ void TestQgsMapCanvas::testMagnificationScale()
360
361
QCOMPARE ( initialScale, mCanvas ->scale () );
361
362
}
362
363
364
+ void TestQgsMapCanvas::testZoomByWheel ()
365
+ {
366
+ mCanvas ->setExtent ( QgsRectangle ( 0 , 0 , 10 , 10 ) );
367
+ QgsRectangle initialExtent = mCanvas ->extent ();
368
+ double originalWidth = initialExtent.width ();
369
+ double originalHeight = initialExtent.height ();
370
+
371
+ mCanvas ->setWheelFactor ( 2 );
372
+
373
+ // test zoom out
374
+ QWheelEvent e ( QPoint ( 0 , 0 ), -1 , Qt::NoButton, Qt::NoModifier );
375
+ mCanvas ->wheelEvent ( &e );
376
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().width (), originalWidth * 2.0 , 0.1 ) );
377
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().height (), originalHeight * 2.0 , 0.1 ) );
378
+
379
+ // test zoom in
380
+ e = QWheelEvent ( QPoint ( 0 , 0 ), 1 , Qt::NoButton, Qt::NoModifier );
381
+ mCanvas ->wheelEvent ( &e );
382
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().width (), originalWidth, 0.1 ) );
383
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().height (), originalHeight, 0.1 ) );
384
+
385
+ // test zoom out with ctrl
386
+ e = QWheelEvent ( QPoint ( 0 , 0 ), -1 , Qt::NoButton, Qt::ControlModifier );
387
+ mCanvas ->wheelEvent ( &e );
388
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().width (), 1.05 * originalWidth, 0.1 ) );
389
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().height (), 1.05 * originalHeight, 0.1 ) );
390
+
391
+ // test zoom in with ctrl
392
+ e = QWheelEvent ( QPoint ( 0 , 0 ), 1 , Qt::NoButton, Qt::ControlModifier );
393
+ mCanvas ->wheelEvent ( &e );
394
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().width (), originalWidth, 0.1 ) );
395
+ QVERIFY ( qgsDoubleNear ( mCanvas ->extent ().height (), originalHeight, 0.1 ) );
396
+ }
397
+
363
398
QTEST_MAIN ( TestQgsMapCanvas )
364
399
#include " testqgsmapcanvas.moc"
0 commit comments