[QGIS Commit] r8265 - in trunk/qgis/src: gui ui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Tue Mar 25 11:36:50 EDT 2008
Author: mhugent
Date: 2008-03-25 11:36:49 -0400 (Tue, 25 Mar 2008)
New Revision: 8265
Modified:
trunk/qgis/src/gui/qgsmapcanvas.cpp
trunk/qgis/src/gui/qgsmapcanvas.h
trunk/qgis/src/ui/qgsoptionsbase.ui
Log:
Applied patch 1004 that adds zoom to direction of mouse cursor
Modified: trunk/qgis/src/gui/qgsmapcanvas.cpp
===================================================================
--- trunk/qgis/src/gui/qgsmapcanvas.cpp 2008-03-25 07:50:49 UTC (rev 8264)
+++ trunk/qgis/src/gui/qgsmapcanvas.cpp 2008-03-25 15:36:49 UTC (rev 8265)
@@ -819,12 +819,30 @@
// zoom without changing extent
zoom(e->delta() > 0);
break;
-
+
case WheelZoomAndRecenter:
// zoom and don't change extent
zoomWithCenter(e->x(), e->y(), e->delta() > 0);
break;
-
+
+ case WheelZoomToMouseCursor:
+ {
+ // zoom map to mouse cursor
+ double scaleFactor = e->delta() > 0 ? 1 / mWheelZoomFactor : mWheelZoomFactor;
+
+ QgsPoint oldCenter(mMapRender->extent().center());
+ QgsPoint mousePos(getCoordinateTransform()->toMapPoint(e->x(), e->y()));
+ QgsPoint newCenter(mousePos.x() + ((oldCenter.x() - mousePos.x()) * scaleFactor),
+ mousePos.y() + ((oldCenter.y() - mousePos.y()) * scaleFactor));
+
+ // same as zoomWithCenter (no coordinate transformations are needed)
+ QgsRect extent = mMapRender->extent();
+ extent.scale(scaleFactor, &newCenter);
+ setExtent(extent);
+ refresh();
+ break;
+ }
+
case WheelNothing:
// well, nothing!
break;
Modified: trunk/qgis/src/gui/qgsmapcanvas.h
===================================================================
--- trunk/qgis/src/gui/qgsmapcanvas.h 2008-03-25 07:50:49 UTC (rev 8264)
+++ trunk/qgis/src/gui/qgsmapcanvas.h 2008-03-25 15:36:49 UTC (rev 8265)
@@ -95,7 +95,7 @@
public:
- enum WheelAction { WheelZoom, WheelZoomAndRecenter, WheelNothing };
+ enum WheelAction { WheelZoom, WheelZoomAndRecenter, WheelZoomToMouseCursor, WheelNothing };
//! Constructor
QgsMapCanvas(QWidget * parent = 0, const char *name = 0);
Modified: trunk/qgis/src/ui/qgsoptionsbase.ui
===================================================================
--- trunk/qgis/src/ui/qgsoptionsbase.ui 2008-03-25 07:50:49 UTC (rev 8264)
+++ trunk/qgis/src/ui/qgsoptionsbase.ui 2008-03-25 15:36:49 UTC (rev 8265)
@@ -489,6 +489,11 @@
</item>
<item>
<property name="text" >
+ <string>Zoom to mouse cursor</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
<string>Nothing</string>
</property>
</item>
More information about the QGIS-commit
mailing list