mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-28 00:17:30 -05:00
[BUGFIX][QGIS Server] To avoid infinite loop in layer creation
Insert layer in registry and cache before addValueRelationLayersForLayer
This commit is contained in:
parent
605e0c43fe
commit
c55ef386de
@ -231,6 +231,8 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
|
||||
|
||||
if ( layer )
|
||||
{
|
||||
if ( !QgsMapLayerRegistry::instance()->mapLayer( id ) )
|
||||
QgsMapLayerRegistry::instance()->addMapLayer( layer, false, false );
|
||||
if ( layer->type() == QgsMapLayer::VectorLayer )
|
||||
addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
|
||||
|
||||
@ -270,11 +272,9 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
|
||||
layer->readLayerXML( const_cast<QDomElement&>( elem ) ); //should be changed to const in QgsMapLayer
|
||||
//layer->setLayerName( layerName( elem ) );
|
||||
|
||||
if ( layer->type() == QgsMapLayer::VectorLayer )
|
||||
{
|
||||
addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
|
||||
}
|
||||
|
||||
// Insert layer in registry and cache before addValueRelationLayersForLayer
|
||||
if ( !QgsMapLayerRegistry::instance()->mapLayer( id ) )
|
||||
QgsMapLayerRegistry::instance()->addMapLayer( layer, false, false );
|
||||
if ( useCache )
|
||||
{
|
||||
QgsMSLayerCache::instance()->insertLayer( absoluteUri, id, layer, mProjectPath );
|
||||
@ -284,6 +284,11 @@ QgsMapLayer* QgsServerProjectParser::createLayerFromElement( const QDomElement&
|
||||
//todo: fixme
|
||||
//mLayersToRemove.push_back( layer );
|
||||
}
|
||||
|
||||
if ( layer->type() == QgsMapLayer::VectorLayer )
|
||||
{
|
||||
addValueRelationLayersForLayer( dynamic_cast<QgsVectorLayer *>( layer ) );
|
||||
}
|
||||
}
|
||||
return layer;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user