Correctly parse styles for layer in groups

This commit is contained in:
Alessandro Pasotti 2018-11-06 14:57:34 +01:00
parent 39e0b7be7a
commit 6e85a893ea

View File

@ -311,7 +311,8 @@ void QgsLayerTreeUtils::storeOriginalLayersProperties( QgsLayerTreeGroup *group,
const QDomNodeList mlNodeList( doc->documentElement()
.firstChildElement( QStringLiteral( "projectlayers" ) )
.elementsByTagName( QStringLiteral( "maplayer" ) ) );
for ( QgsLayerTreeNode *node : group->children() )
std::function<void ( QgsLayerTreeNode * )> _store = [ & ]( QgsLayerTreeNode * node )
{
if ( QgsLayerTree::isLayer( node ) )
{
@ -337,6 +338,19 @@ void QgsLayerTreeUtils::storeOriginalLayersProperties( QgsLayerTreeGroup *group,
}
}
}
else if ( QgsLayerTree::isGroup( node ) )
{
const QList<QgsLayerTreeNode *> constChildren( node->children( ) );
for ( const auto &childNode : constChildren )
{
_store( childNode );
}
}
};
for ( QgsLayerTreeNode *node : group->children() )
{
_store( node );
}
}