@@ -60,7 +60,7 @@ bool QgsLayerDefinition::loadLayerDefinition( const QString &path, QgsProject *p
60
60
61
61
bool QgsLayerDefinition::loadLayerDefinition ( QDomDocument doc, QgsProject *project, QgsLayerTreeGroup *rootGroup, QString &errorMessage, QgsReadWriteContext &context )
62
62
{
63
- Q_UNUSED ( errorMessage )
63
+ errorMessage. clear ();
64
64
65
65
QgsLayerTreeGroup *root = new QgsLayerTreeGroup ();
66
66
@@ -172,7 +172,7 @@ bool QgsLayerDefinition::loadLayerDefinition( QDomDocument doc, QgsProject *proj
172
172
loadInLegend = false ;
173
173
}
174
174
175
- QList<QgsMapLayer *> layers = QgsLayerDefinition::loadLayerDefinitionLayers ( doc, context );
175
+ QList<QgsMapLayer *> layers = QgsLayerDefinition::loadLayerDefinitionLayersInternal ( doc, context, errorMessage );
176
176
177
177
project->addMapLayers ( layers, loadInLegend );
178
178
@@ -195,7 +195,6 @@ bool QgsLayerDefinition::loadLayerDefinition( QDomDocument doc, QgsProject *proj
195
195
rootGroup->insertChildNodes ( -1 , nodes );
196
196
197
197
return true ;
198
-
199
198
}
200
199
201
200
bool QgsLayerDefinition::exportLayerDefinition ( QString path, const QList<QgsLayerTreeNode *> &selectedTreeNodes, QString &errorMessage )
@@ -275,6 +274,12 @@ QDomDocument QgsLayerDefinition::exportLayerDefinitionLayers( const QList<QgsMap
275
274
}
276
275
277
276
QList<QgsMapLayer *> QgsLayerDefinition::loadLayerDefinitionLayers ( QDomDocument &document, QgsReadWriteContext &context )
277
+ {
278
+ QString errorMessage;
279
+ return loadLayerDefinitionLayersInternal ( document, context, errorMessage );
280
+ }
281
+
282
+ QList<QgsMapLayer *> QgsLayerDefinition::loadLayerDefinitionLayersInternal ( QDomDocument &document, QgsReadWriteContext &context, QString &errorMessage )
278
283
{
279
284
QList<QgsMapLayer *> layers;
280
285
QDomElement layerElem = document.documentElement ().firstChildElement ( QStringLiteral ( " projectlayers" ) ).firstChildElement ( QStringLiteral ( " maplayer" ) );
@@ -287,7 +292,6 @@ QList<QgsMapLayer *> QgsLayerDefinition::loadLayerDefinitionLayers( QDomDocument
287
292
while ( ! layerElem.isNull () )
288
293
{
289
294
const QString type = layerElem.attribute ( QStringLiteral ( " type" ) );
290
- QgsDebugMsg ( type );
291
295
QgsMapLayer *layer = nullptr ;
292
296
293
297
if ( type == QLatin1String ( " vector" ) )
@@ -307,14 +311,18 @@ QList<QgsMapLayer *> QgsLayerDefinition::loadLayerDefinitionLayers( QDomDocument
307
311
QString typeName = layerElem.attribute ( QStringLiteral ( " name" ) );
308
312
layer = QgsApplication::pluginLayerRegistry ()->createLayer ( typeName );
309
313
}
314
+ else
315
+ {
316
+ errorMessage = QObject::tr ( " Unsupported layer type: %1" ).arg ( type );
317
+ }
310
318
311
- if ( ! layer )
312
- continue ;
313
-
314
- // always add the layer, even if the source is invalid -- this allows users to fix the source
315
- // at a later stage and still retain all the layer properties intact
316
- layer-> readLayerXml ( layerElem, context ) ;
317
- layers << layer;
319
+ if ( layer )
320
+ {
321
+ // always add the layer, even if the source is invalid -- this allows users to fix the source
322
+ // at a later stage and still retain all the layer properties intact
323
+ layer-> readLayerXml ( layerElem, context );
324
+ layers << layer ;
325
+ }
318
326
layerElem = layerElem.nextSiblingElement ( QStringLiteral ( " maplayer" ) );
319
327
}
320
328
return layers;
@@ -342,7 +350,6 @@ QList<QgsMapLayer *> QgsLayerDefinition::loadLayerDefinitionLayers( const QStrin
342
350
return QgsLayerDefinition::loadLayerDefinitionLayers ( doc, context );
343
351
}
344
352
345
-
346
353
void QgsLayerDefinition::DependencySorter::init ( const QDomDocument &doc )
347
354
{
348
355
// Determine a loading order of layers based on a graph of dependencies
0 commit comments