diff --git a/src/mapserver/qgsprojectparser.cpp b/src/mapserver/qgsprojectparser.cpp index 2f803e53a2b..04d1ce8fe68 100644 --- a/src/mapserver/qgsprojectparser.cpp +++ b/src/mapserver/qgsprojectparser.cpp @@ -4080,7 +4080,25 @@ void QgsProjectParser::addDrawingOrderEmbeddedGroup( const QDomElement& groupEle return; } - QDomNodeList layerNodeList = doc->elementsByTagName( "legendlayer" ); + //find requested group + QString groupName = groupElem.attribute( "name" ); + QDomElement embeddedGroupElem; //group element in source project file + QDomNodeList groupList = doc->elementsByTagName( "legendgroup" ); + for ( int i = 0; i < groupList.size(); ++i ) + { + if ( groupList.at( i ).toElement().attribute( "name" ) == groupName ) + { + embeddedGroupElem = groupList.at( i ).toElement(); + break; + } + } + + if ( embeddedGroupElem.isNull() ) //group does not exist in project file + { + return; + } + + QDomNodeList layerNodeList = embeddedGroupElem.elementsByTagName( "legendlayer" ); QDomElement layerElem; QStringList layerNames; QString layerName;