Skip to content

Commit 22f5769

Browse files
author
wonder
committed
More roboust zoom tool - prevent zooming to empty extent
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@6970 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent 656d5e2 commit 22f5769

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/gui/qgsmaptoolzoom.cpp

+13-9
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ QgsMapToolZoom::QgsMapToolZoom(QgsMapCanvas* canvas, bool zoomOut)
3737

3838
void QgsMapToolZoom::canvasMoveEvent(QMouseEvent * e)
3939
{
40-
if (e->state() != Qt::LeftButton)
40+
if ( ! (e->buttons() & Qt::LeftButton) )
4141
return;
4242

4343
if (!mDragging)
@@ -54,12 +54,18 @@ void QgsMapToolZoom::canvasMoveEvent(QMouseEvent * e)
5454

5555
void QgsMapToolZoom::canvasPressEvent(QMouseEvent * e)
5656
{
57+
if (e->button() != Qt::LeftButton)
58+
return;
59+
5760
mZoomRect.setRect(0, 0, 0, 0);
5861
}
5962

6063

6164
void QgsMapToolZoom::canvasReleaseEvent(QMouseEvent * e)
6265
{
66+
if (e->button() != Qt::LeftButton)
67+
return;
68+
6369
if (mDragging)
6470
{
6571
mDragging = false;
@@ -83,6 +89,12 @@ void QgsMapToolZoom::canvasReleaseEvent(QMouseEvent * e)
8389
r.setYmax(ur.y());
8490
r.normalize();
8591

92+
// prevent zooming to an empty extent
93+
if (r.width() == 0 || r.height() == 0)
94+
{
95+
return;
96+
}
97+
8698
if (mZoomOut)
8799
{
88100
QgsPoint cer = r.center();
@@ -91,18 +103,10 @@ void QgsMapToolZoom::canvasReleaseEvent(QMouseEvent * e)
91103
double sf;
92104
if (mZoomRect.width() > mZoomRect.height())
93105
{
94-
if(r.width() == 0)//prevent nan map extent
95-
{
96-
return;
97-
}
98106
sf = extent.width() / r.width();
99107
}
100108
else
101109
{
102-
if(r.height() == 0)//prevent nan map extent
103-
{
104-
return;
105-
}
106110
sf = extent.height() / r.height();
107111
}
108112
r.expand(sf);

0 commit comments

Comments
 (0)