Skip to content

Commit

Permalink
Applied patch 1004 that adds zoom to direction of mouse cursor
Browse files Browse the repository at this point in the history
git-svn-id: http://svn.osgeo.org/qgis/trunk@8265 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
mhugent committed Mar 25, 2008
1 parent 26aafb7 commit 698d693
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
22 changes: 20 additions & 2 deletions src/gui/qgsmapcanvas.cpp
Expand Up @@ -819,12 +819,30 @@ void QgsMapCanvas::wheelEvent(QWheelEvent *e)
// 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;
Expand Down
2 changes: 1 addition & 1 deletion src/gui/qgsmapcanvas.h
Expand Up @@ -95,7 +95,7 @@ class GUI_EXPORT QgsMapCanvas : public QGraphicsView

public:

enum WheelAction { WheelZoom, WheelZoomAndRecenter, WheelNothing };
enum WheelAction { WheelZoom, WheelZoomAndRecenter, WheelZoomToMouseCursor, WheelNothing };

//! Constructor
QgsMapCanvas(QWidget * parent = 0, const char *name = 0);
Expand Down
5 changes: 5 additions & 0 deletions src/ui/qgsoptionsbase.ui
Expand Up @@ -487,6 +487,11 @@
<string>Zoom and recenter</string>
</property>
</item>
<item>
<property name="text" >
<string>Zoom to mouse cursor</string>
</property>
</item>
<item>
<property name="text" >
<string>Nothing</string>
Expand Down

0 comments on commit 698d693

Please sign in to comment.