From f5a60a499a5e9741156070891a20a3e13d27a515 Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 21 Apr 2014 10:31:17 +1000 Subject: [PATCH] [FEATURE][composer] Add button to view current map item extent in main map canvas --- src/app/composer/qgscomposermapwidget.cpp | 18 +++++++ src/app/composer/qgscomposermapwidget.h | 1 + src/ui/qgscomposermapwidgetbase.ui | 65 +++++++++++++---------- 3 files changed, 55 insertions(+), 29 deletions(-) diff --git a/src/app/composer/qgscomposermapwidget.cpp b/src/app/composer/qgscomposermapwidget.cpp index 00a0de0a253e..2339ec430c61 100644 --- a/src/app/composer/qgscomposermapwidget.cpp +++ b/src/app/composer/qgscomposermapwidget.cpp @@ -15,6 +15,8 @@ * * ***************************************************************************/ +#include "qgisapp.h" +#include "qgsmapcanvas.h" #include "qgscomposermapwidget.h" #include "qgscomposeritemwidget.h" #include "qgscomposition.h" @@ -333,6 +335,22 @@ void QgsComposerMapWidget::on_mSetToMapCanvasExtentButton_clicked() } } +void QgsComposerMapWidget::on_mViewExtentInCanvasButton_clicked() +{ + if ( !mComposerMap ) + { + return; + } + + QgsRectangle currentMapExtent = *( mComposerMap->currentMapExtent() ); + + if ( !currentMapExtent.isEmpty() ) + { + QgisApp::instance()->mapCanvas()->setExtent( currentMapExtent ); + QgisApp::instance()->mapCanvas()->refresh(); + } +} + void QgsComposerMapWidget::on_mXMinLineEdit_editingFinished() { updateComposerExtentFromGui(); diff --git a/src/app/composer/qgscomposermapwidget.h b/src/app/composer/qgscomposermapwidget.h index 2727f041d8c0..b0e0a9ebb852 100644 --- a/src/app/composer/qgscomposermapwidget.h +++ b/src/app/composer/qgscomposermapwidget.h @@ -39,6 +39,7 @@ class QgsComposerMapWidget: public QWidget, private Ui::QgsComposerMapWidgetBase void on_mScaleLineEdit_editingFinished(); void on_mMapRotationSpinBox_valueChanged( double value ); void on_mSetToMapCanvasExtentButton_clicked(); + void on_mViewExtentInCanvasButton_clicked(); void on_mUpdatePreviewButton_clicked(); void on_mKeepLayerListCheckBox_stateChanged( int state ); void on_mDrawCanvasItemsCheckBox_stateChanged( int state ); diff --git a/src/ui/qgscomposermapwidgetbase.ui b/src/ui/qgscomposermapwidgetbase.ui index 90b27c85e37e..279f37da327f 100644 --- a/src/ui/qgscomposermapwidgetbase.ui +++ b/src/ui/qgscomposermapwidgetbase.ui @@ -56,7 +56,7 @@ 0 0 439 - 1638 + 1671 @@ -174,25 +174,25 @@ false - - - - - - - - + + + + true + - X max + X min false - mXMaxLineEdit + mXMinLineEdit + + + @@ -206,6 +206,25 @@ + + + + + + + X max + + + false + + + mXMaxLineEdit + + + + + + @@ -219,32 +238,20 @@ - - - - - + + - + Set to map canvas extent - - - - true - + + - X min - - - false - - - mXMinLineEdit + View extent in map canvas