Skip to content
Permalink
Browse files
Revert "[FEATURE] Allow using secondary zoom wheel on mouse to magnif…
…y canvas"

This reverts commit ecc4925.

Works very badly for touchpads, where horizontal movement is interpreted
as a magnify request
  • Loading branch information
nyalldawson committed Mar 19, 2017
1 parent 6f430a6 commit 0d3cf5748304988374b93324ee7ada67202336f4
Showing with 3 additions and 13 deletions.
  1. +3 −13 src/gui/qgsmapcanvas.cpp
@@ -1404,35 +1404,25 @@ void QgsMapCanvas::wheelEvent( QWheelEvent *e )
}

double zoomFactor = mWheelZoomFactor;
double delta = e->orientation() == Qt::Vertical ? e->angleDelta().y() : e->angleDelta().x();

// "Normal" mouse have an angle delta of 120, precision mouses provide data faster, in smaller steps
zoomFactor = 1.0 + ( zoomFactor - 1.0 ) / 120.0 * qAbs( delta );
zoomFactor = 1.0 + ( zoomFactor - 1.0 ) / 120.0 * qAbs( e->angleDelta().y() );

if ( e->modifiers() & Qt::ControlModifier )
{
//holding ctrl while wheel zooming results in a finer zoom
zoomFactor = 1.0 + ( zoomFactor - 1.0 ) / 20.0;
}

double signedWheelFactor = delta > 0 ? 1 / zoomFactor : zoomFactor;
double signedWheelFactor = e->angleDelta().y() > 0 ? 1 / zoomFactor : zoomFactor;

// zoom map to mouse cursor by scaling
QgsPoint oldCenter = center();
QgsPoint mousePos( getCoordinateTransform()->toMapPoint( e->x(), e->y() ) );
QgsPoint newCenter( mousePos.x() + ( ( oldCenter.x() - mousePos.x() ) * signedWheelFactor ),
mousePos.y() + ( ( oldCenter.y() - mousePos.y() ) * signedWheelFactor ) );

switch ( e->orientation() )
{
case Qt::Vertical:
zoomByFactor( signedWheelFactor, &newCenter );
break;

case Qt::Horizontal:
setMagnificationFactor( mapSettings().magnificationFactor() / signedWheelFactor );
break;
}
zoomByFactor( signedWheelFactor, &newCenter );
}

void QgsMapCanvas::setWheelFactor( double factor )

0 comments on commit 0d3cf57

Please sign in to comment.