diff --git a/python/gui/qgsmetadatawidget.sip b/python/gui/qgsmetadatawidget.sip index d871b51bd73b..37473780d976 100644 --- a/python/gui/qgsmetadatawidget.sip +++ b/python/gui/qgsmetadatawidget.sip @@ -75,6 +75,11 @@ Returns a list of MIME types available by default in the wizard. static QMap parseTypes(); %Docstring Returns a list of types available by default in the wizard. +%End + + void setMapCanvas( QgsMapCanvas *canvas ); +%Docstring +Sets a map ``canvas`` associated with the widget. %End }; diff --git a/src/app/qgsrasterlayerproperties.cpp b/src/app/qgsrasterlayerproperties.cpp index 6d41512ab7e2..953ec35e8c0d 100644 --- a/src/app/qgsrasterlayerproperties.cpp +++ b/src/app/qgsrasterlayerproperties.cpp @@ -245,6 +245,7 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer *lyr, QgsMapCanv layout->setMargin( 0 ); mMetadataWidget = new QgsMetadataWidget( this, mRasterLayer ); mMetadataWidget->layout()->setContentsMargins( -1, 0, -1, 0 ); + mMetadataWidget->setMapCanvas( mMapCanvas ); layout->addWidget( mMetadataWidget ); metadataFrame->setLayout( layout ); diff --git a/src/app/qgsvectorlayerproperties.cpp b/src/app/qgsvectorlayerproperties.cpp index 824f8c2a4b13..3bc88c8e6c0f 100644 --- a/src/app/qgsvectorlayerproperties.cpp +++ b/src/app/qgsvectorlayerproperties.cpp @@ -287,6 +287,7 @@ QgsVectorLayerProperties::QgsVectorLayerProperties( metadataLayout->setMargin( 0 ); mMetadataWidget = new QgsMetadataWidget( this, mLayer ); mMetadataWidget->layout()->setContentsMargins( -1, 0, -1, 0 ); + mMetadataWidget->setMapCanvas( QgisApp::instance()->mapCanvas() ); metadataLayout->addWidget( mMetadataWidget ); metadataFrame->setLayout( metadataLayout ); diff --git a/src/gui/qgsmetadatawidget.cpp b/src/gui/qgsmetadatawidget.cpp index e7390b967cb7..92b148df0260 100644 --- a/src/gui/qgsmetadatawidget.cpp +++ b/src/gui/qgsmetadatawidget.cpp @@ -28,6 +28,7 @@ #include "qgslogger.h" #include "qgslayermetadatavalidator.h" #include "qgsapplication.h" +#include "qgsmapcanvas.h" QgsMetadataWidget::QgsMetadataWidget( QWidget *parent, QgsMapLayer *layer ) : QWidget( parent ), @@ -805,6 +806,12 @@ QMap QgsMetadataWidget::parseTypes() return types; } +void QgsMetadataWidget::setMapCanvas( QgsMapCanvas *canvas ) +{ + if ( canvas ) + spatialExtentSelector->setCurrentExtent( canvas->extent(), canvas->mapSettings().destinationCrs() ); +} + void QgsMetadataWidget::acceptMetadata() { saveMetadata( mMetadata ); diff --git a/src/gui/qgsmetadatawidget.h b/src/gui/qgsmetadatawidget.h index 05c307001673..49f695c43c5b 100644 --- a/src/gui/qgsmetadatawidget.h +++ b/src/gui/qgsmetadatawidget.h @@ -93,6 +93,11 @@ class GUI_EXPORT QgsMetadataWidget : public QWidget, private Ui::QgsMetadataWidg */ static QMap parseTypes(); + /** + * Sets a map \a canvas associated with the widget. + */ + void setMapCanvas( QgsMapCanvas *canvas ); + private: void updatePanel() const; void fillSourceFromLayer() const;