[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdeedu/kgeography/src
From:       Laurent Garnier <lauranger () free ! fr>
Date:       2008-04-13 20:44:29
Message-ID: 1208119469.000259.27822.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 796593 by lauranger:

BUG:154556 partial; added moving with mid button, horizontal pan with shift wheel and \
zoom with ctrl-wheel

 M  +25 -0     mapwidget.cpp  
 M  +1 -0      mapwidget.h  


--- trunk/KDE/kdeedu/kgeography/src/mapwidget.cpp #796592:796593
@@ -20,6 +20,7 @@
 
 #include <kdebug.h>
 #include <klocale.h>
+#include <math.h>
 
 mapWidget::mapWidget(QWidget *parent) : QGraphicsView(parent)
 {
@@ -182,6 +183,30 @@
 	}
 }
 
+void mapWidget::wheelEvent(QWheelEvent *e)
+{
+	if ( e->modifiers() == Qt::NoModifier )
+	{
+		int delta = e->delta();
+		verticalScrollBar()->setValue(verticalScrollBar()->value() - delta);
+	}
+	else if ( e->modifiers()  == Qt::ShiftModifier )
+	{
+		int delta = e->delta();
+		horizontalScrollBar()->setValue(horizontalScrollBar()->value() + delta);
+	}
+	else if ( e->modifiers()  == Qt::ControlModifier )
+	{
+		int delta = e->delta();
+		if ( delta != 0 )
+		{
+			qreal rescale = pow(2, qreal(delta/120)/2.0);
+			QMatrix m(rescale, 0, 0, rescale, 0, 0);
+			setMatrix(m, true);
+		}
+	}
+}
+
 void mapWidget::setAutomaticZoom(bool automaticZoom)
 {
 	if (!automaticZoom) setOriginalImage();
--- trunk/KDE/kdeedu/kgeography/src/mapwidget.h #796592:796593
@@ -43,6 +43,7 @@
 		void mousePressEvent(QMouseEvent *e);
 		void mouseMoveEvent(QMouseEvent *e);
 		void mouseReleaseEvent(QMouseEvent *e);
+		void wheelEvent(QWheelEvent *e);
 		void resizeEvent(QResizeEvent *e);
 		void drawBackground(QPainter *painter, const QRectF &rect);
 	


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic