### Eclipse Workspace Patch 1.0 #P qgis Index: python/gui/qgsmapcanvas.sip =================================================================== --- python/gui/qgsmapcanvas.sip (revision 13487) +++ python/gui/qgsmapcanvas.sip (working copy) @@ -170,6 +170,9 @@ //! Zoom out with fixed factor void zoomOut( ); + + //! Zoom to a specific scale + void zoomScale( double scale ); //! Zoom with the factor supplied. Factor > 1 zooms in void zoomByFactor( double scaleFactor ); Index: src/gui/qgsmapcanvas.h =================================================================== --- src/gui/qgsmapcanvas.h (revision 13487) +++ src/gui/qgsmapcanvas.h (working copy) @@ -228,6 +228,9 @@ //! Zoom out with fixed factor void zoomOut( ); + //! Zoom to a specific scale + void zoomScale( double scale ); + //! Zoom with the factor supplied. Factor > 1 zooms out, interval (0,1) zooms in void zoomByFactor( double scaleFactor ); Index: src/gui/qgsmapcanvas.cpp =================================================================== --- src/gui/qgsmapcanvas.cpp (revision 13487) +++ src/gui/qgsmapcanvas.cpp (working copy) @@ -1432,6 +1432,14 @@ refresh(); } + +void QgsMapCanvas::zoomScale( double scale ) +{ + // Since it is an adjustment of scale, we do: + double factor = scale / mMapRenderer->scale(); + zoomByFactor( factor ); +} + void QgsMapCanvas::selectionChangedSlot() { // Find out which layer it was that sent the signal.