Skip to content

Commit 2129698

Browse files
committed
Link metadata widget to canvas
So that child widgets which can take properties from canvas can have full functionality
1 parent 433d659 commit 2129698

5 files changed

+19
-0
lines changed

python/gui/qgsmetadatawidget.sip

+5
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ Returns a list of MIME types available by default in the wizard.
7575
static QMap<QString, QString> parseTypes();
7676
%Docstring
7777
Returns a list of types available by default in the wizard.
78+
%End
79+
80+
void setMapCanvas( QgsMapCanvas *canvas );
81+
%Docstring
82+
Sets a map ``canvas`` associated with the widget.
7883
%End
7984

8085
};

src/app/qgsrasterlayerproperties.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ QgsRasterLayerProperties::QgsRasterLayerProperties( QgsMapLayer *lyr, QgsMapCanv
245245
layout->setMargin( 0 );
246246
mMetadataWidget = new QgsMetadataWidget( this, mRasterLayer );
247247
mMetadataWidget->layout()->setContentsMargins( -1, 0, -1, 0 );
248+
mMetadataWidget->setMapCanvas( mMapCanvas );
248249
layout->addWidget( mMetadataWidget );
249250
metadataFrame->setLayout( layout );
250251

src/app/qgsvectorlayerproperties.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,7 @@ QgsVectorLayerProperties::QgsVectorLayerProperties(
287287
metadataLayout->setMargin( 0 );
288288
mMetadataWidget = new QgsMetadataWidget( this, mLayer );
289289
mMetadataWidget->layout()->setContentsMargins( -1, 0, -1, 0 );
290+
mMetadataWidget->setMapCanvas( QgisApp::instance()->mapCanvas() );
290291
metadataLayout->addWidget( mMetadataWidget );
291292
metadataFrame->setLayout( metadataLayout );
292293

src/gui/qgsmetadatawidget.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include "qgslogger.h"
2929
#include "qgslayermetadatavalidator.h"
3030
#include "qgsapplication.h"
31+
#include "qgsmapcanvas.h"
3132

3233
QgsMetadataWidget::QgsMetadataWidget( QWidget *parent, QgsMapLayer *layer )
3334
: QWidget( parent ),
@@ -805,6 +806,12 @@ QMap<QString, QString> QgsMetadataWidget::parseTypes()
805806
return types;
806807
}
807808

809+
void QgsMetadataWidget::setMapCanvas( QgsMapCanvas *canvas )
810+
{
811+
if ( canvas )
812+
spatialExtentSelector->setCurrentExtent( canvas->extent(), canvas->mapSettings().destinationCrs() );
813+
}
814+
808815
void QgsMetadataWidget::acceptMetadata()
809816
{
810817
saveMetadata( mMetadata );

src/gui/qgsmetadatawidget.h

+5
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ class GUI_EXPORT QgsMetadataWidget : public QWidget, private Ui::QgsMetadataWidg
9393
*/
9494
static QMap<QString, QString> parseTypes();
9595

96+
/**
97+
* Sets a map \a canvas associated with the widget.
98+
*/
99+
void setMapCanvas( QgsMapCanvas *canvas );
100+
96101
private:
97102
void updatePanel() const;
98103
void fillSourceFromLayer() const;

0 commit comments

Comments
 (0)