@@ -35,7 +35,10 @@ QgsMetadataWidget::QgsMetadataWidget( QWidget *parent, QgsMapLayer *layer )
35
35
mLayer( layer )
36
36
{
37
37
setupUi ( this );
38
- mMetadata = layer->metadata ();
38
+ if ( mLayer )
39
+ {
40
+ mMetadata = mLayer ->metadata ();
41
+ }
39
42
tabWidget->setCurrentIndex ( 0 );
40
43
41
44
// Disable the encoding
@@ -107,15 +110,36 @@ QgsMetadataWidget::QgsMetadataWidget( QWidget *parent, QgsMapLayer *layer )
107
110
connect ( btnRemoveCategory, &QPushButton::clicked, this , &QgsMetadataWidget::removeSelectedCategories );
108
111
109
112
fillComboBox ();
113
+ if ( !mLayer )
114
+ {
115
+ btnAutoSource->setEnabled ( false );
116
+ btnAutoEncoding->setEnabled ( false );
117
+ btnAutoCrs->setEnabled ( false );
118
+ }
119
+ setMetadata ( mMetadata );
120
+ }
121
+
122
+ void QgsMetadataWidget::setMetadata ( const QgsLayerMetadata &layerMetadata )
123
+ {
124
+ mMetadata = layerMetadata;
110
125
setPropertiesFromLayer ();
111
126
}
112
127
113
- void QgsMetadataWidget::fillSourceFromLayer ()
128
+ QgsLayerMetadata QgsMetadataWidget::metadata ()
114
129
{
115
- lineEditIdentifier->setText ( mLayer ->publicSource () );
130
+ saveMetadata ( mMetadata );
131
+ return mMetadata ;
116
132
}
117
133
118
- void QgsMetadataWidget::addVocabulary ()
134
+ void QgsMetadataWidget::fillSourceFromLayer () const
135
+ {
136
+ if ( mLayer )
137
+ {
138
+ lineEditIdentifier->setText ( mLayer ->publicSource () );
139
+ }
140
+ }
141
+
142
+ void QgsMetadataWidget::addVocabulary () const
119
143
{
120
144
int row = tabKeywords->rowCount ();
121
145
tabKeywords->setRowCount ( row + 1 );
@@ -130,7 +154,7 @@ void QgsMetadataWidget::addVocabulary()
130
154
tabKeywords->setItem ( row, 1 , pCell );
131
155
}
132
156
133
- void QgsMetadataWidget::removeSelectedVocabulary ()
157
+ void QgsMetadataWidget::removeSelectedVocabulary () const
134
158
{
135
159
QItemSelectionModel *selectionModel = tabKeywords->selectionModel ();
136
160
const QModelIndexList selectedRows = selectionModel->selectedRows ();
@@ -152,7 +176,7 @@ void QgsMetadataWidget::addLicence()
152
176
}
153
177
}
154
178
155
- void QgsMetadataWidget::removeSelectedLicence ()
179
+ void QgsMetadataWidget::removeSelectedLicence () const
156
180
{
157
181
QItemSelectionModel *selectionModel = tabLicenses->selectionModel ();
158
182
const QModelIndexList selectedRows = selectionModel->selectedRows ();
@@ -173,7 +197,7 @@ void QgsMetadataWidget::addRight()
173
197
}
174
198
}
175
199
176
- void QgsMetadataWidget::removeSelectedRight ()
200
+ void QgsMetadataWidget::removeSelectedRight () const
177
201
{
178
202
QItemSelectionModel *selection = listRights->selectionModel ();
179
203
if ( selection->hasSelection () )
@@ -187,22 +211,22 @@ void QgsMetadataWidget::removeSelectedRight()
187
211
}
188
212
}
189
213
190
- void QgsMetadataWidget::addConstraint ()
214
+ void QgsMetadataWidget::addConstraint () const
191
215
{
192
216
int row = mConstraintsModel ->rowCount ();
193
217
mConstraintsModel ->setItem ( row, 0 , new QStandardItem ( QString ( tr ( " undefined %1" ) ).arg ( row + 1 ) ) );
194
218
mConstraintsModel ->setItem ( row, 1 , new QStandardItem ( QString ( tr ( " undefined %1" ) ).arg ( row + 1 ) ) );
195
219
}
196
220
197
- void QgsMetadataWidget::removeSelectedConstraint ()
221
+ void QgsMetadataWidget::removeSelectedConstraint () const
198
222
{
199
223
const QModelIndexList selectedRows = tabConstraints->selectionModel ()->selectedRows ();
200
224
mConstraintsModel ->removeRow ( selectedRows[0 ].row () );
201
225
}
202
226
203
- void QgsMetadataWidget::crsChanged ()
227
+ void QgsMetadataWidget::crsChanged () const
204
228
{
205
- if ( mCrs .isValid () )
229
+ if ( ( mCrs .isValid () ) && ( mLayer ) )
206
230
{
207
231
lblCurrentCrs->setText ( tr ( " CRS: %1 - %2" ).arg ( mCrs .authid (), mCrs .description () ) );
208
232
spatialExtentSelector->setEnabled ( true );
@@ -233,7 +257,7 @@ void QgsMetadataWidget::crsChanged()
233
257
}
234
258
}
235
259
236
- void QgsMetadataWidget::addAddress ()
260
+ void QgsMetadataWidget::addAddress () const
237
261
{
238
262
int row = tabAddresses->rowCount ();
239
263
tabAddresses->setRowCount ( row + 1 );
@@ -259,7 +283,7 @@ void QgsMetadataWidget::addAddress()
259
283
tabAddresses->setItem ( row, 5 , new QTableWidgetItem () );
260
284
}
261
285
262
- void QgsMetadataWidget::removeSelectedAddress ()
286
+ void QgsMetadataWidget::removeSelectedAddress () const
263
287
{
264
288
QItemSelectionModel *selectionModel = tabAddresses->selectionModel ();
265
289
const QModelIndexList selectedRows = selectionModel->selectedRows ();
@@ -281,7 +305,7 @@ void QgsMetadataWidget::fillCrsFromProvider()
281
305
crsChanged ();
282
306
}
283
307
284
- void QgsMetadataWidget::addLink ()
308
+ void QgsMetadataWidget::addLink () const
285
309
{
286
310
int row = mLinksModel ->rowCount ();
287
311
mLinksModel ->setItem ( row, 0 , new QStandardItem ( QString ( tr ( " undefined %1" ) ).arg ( row + 1 ) ) );
@@ -293,7 +317,7 @@ void QgsMetadataWidget::addLink()
293
317
mLinksModel ->setItem ( row, 6 , new QStandardItem () );
294
318
}
295
319
296
- void QgsMetadataWidget::removeSelectedLink ()
320
+ void QgsMetadataWidget::removeSelectedLink () const
297
321
{
298
322
const QModelIndexList selectedRows = tabLinks->selectionModel ()->selectedRows ();
299
323
mLinksModel ->removeRow ( selectedRows[0 ].row () );
@@ -310,7 +334,7 @@ void QgsMetadataWidget::addHistory()
310
334
}
311
335
}
312
336
313
- void QgsMetadataWidget::removeSelectedHistory ()
337
+ void QgsMetadataWidget::removeSelectedHistory () const
314
338
{
315
339
QItemSelectionModel *selection = listHistory->selectionModel ();
316
340
if ( selection->hasSelection () )
@@ -324,7 +348,7 @@ void QgsMetadataWidget::removeSelectedHistory()
324
348
}
325
349
}
326
350
327
- void QgsMetadataWidget::fillComboBox ()
351
+ void QgsMetadataWidget::fillComboBox () const
328
352
{
329
353
// Set default values in type combobox
330
354
// It is advised to use the ISO 19115 MD_ScopeCode values. E.g. 'dataset' or 'series'.
@@ -522,7 +546,7 @@ void QgsMetadataWidget::setPropertiesFromLayer()
522
546
mHistoryModel ->setStringList ( mMetadata .history () );
523
547
}
524
548
525
- void QgsMetadataWidget::saveMetadata ( QgsLayerMetadata &layerMetadata )
549
+ void QgsMetadataWidget::saveMetadata ( QgsLayerMetadata &layerMetadata ) const
526
550
{
527
551
layerMetadata.setParentIdentifier ( lineEditParentId->text () );
528
552
layerMetadata.setIdentifier ( lineEditIdentifier->text () );
@@ -635,7 +659,7 @@ void QgsMetadataWidget::saveMetadata( QgsLayerMetadata &layerMetadata )
635
659
layerMetadata.setHistory ( mHistoryModel ->stringList () );
636
660
}
637
661
638
- bool QgsMetadataWidget::checkMetadata ()
662
+ bool QgsMetadataWidget::checkMetadata () const
639
663
{
640
664
QgsLayerMetadata metadata = QgsLayerMetadata ();
641
665
saveMetadata ( metadata );
@@ -815,9 +839,11 @@ void QgsMetadataWidget::setMapCanvas( QgsMapCanvas *canvas )
815
839
void QgsMetadataWidget::acceptMetadata ()
816
840
{
817
841
saveMetadata ( mMetadata );
818
-
819
- // Save layer metadata properties
820
- mLayer ->setMetadata ( mMetadata );
842
+ if ( mLayer )
843
+ {
844
+ // Save layer metadata properties
845
+ mLayer ->setMetadata ( mMetadata );
846
+ }
821
847
}
822
848
823
849
void QgsMetadataWidget::setMetadata ( const QgsLayerMetadata &metadata )
@@ -826,7 +852,7 @@ void QgsMetadataWidget::setMetadata( const QgsLayerMetadata &metadata )
826
852
setPropertiesFromLayer ();
827
853
}
828
854
829
- void QgsMetadataWidget::syncFromCategoriesTabToKeywordsTab ()
855
+ void QgsMetadataWidget::syncFromCategoriesTabToKeywordsTab () const
830
856
{
831
857
if ( mCategoriesModel ->rowCount () > 0 )
832
858
{
@@ -847,7 +873,7 @@ void QgsMetadataWidget::syncFromCategoriesTabToKeywordsTab()
847
873
}
848
874
}
849
875
850
- void QgsMetadataWidget::updatePanel ()
876
+ void QgsMetadataWidget::updatePanel () const
851
877
{
852
878
int index = tabWidget->currentIndex ();
853
879
QString currentTabText = tabWidget->widget ( index )->objectName ();
0 commit comments