@@ -709,7 +709,7 @@ void QgsWMSProjectParser::addDrawingOrder( QDomElement& parentElem, QDomDocument
709
709
parentElem.appendChild ( layerDrawingOrderElem );
710
710
}
711
711
712
- void QgsWMSProjectParser::addDrawingOrder ( QDomElement groupElem, bool useDrawingOrder, QMap<int , QString>& orderedLayerList ) const
712
+ void QgsWMSProjectParser::addDrawingOrderEmbeddedGroup ( QDomElement groupElem, bool useDrawingOrder, QMap<int , QString>& orderedLayerList ) const
713
713
{
714
714
if ( groupElem.isNull () )
715
715
{
@@ -801,6 +801,43 @@ void QgsWMSProjectParser::addDrawingOrder( QDomElement groupElem, bool useDrawin
801
801
}
802
802
}
803
803
804
+ void QgsWMSProjectParser::addDrawingOrder ( QDomElement elem, bool useDrawingOrder, QMap<int , QString>& orderedLayerList ) const
805
+ {
806
+ if ( elem.isNull () )
807
+ {
808
+ return ;
809
+ }
810
+
811
+ if ( elem.tagName () == " legendgroup" )
812
+ {
813
+ if ( elem.attribute ( " embedded" ) == " 1" )
814
+ {
815
+ addDrawingOrderEmbeddedGroup ( elem, useDrawingOrder, orderedLayerList );
816
+ }
817
+ else
818
+ {
819
+ QDomNodeList groupChildren = elem.childNodes ();
820
+ for ( int i = 0 ; i < groupChildren.size (); ++i )
821
+ {
822
+ addDrawingOrder ( groupChildren.at ( i ).toElement (), useDrawingOrder, orderedLayerList );
823
+ }
824
+ }
825
+ }
826
+ else if ( elem.tagName () == " legendlayer" )
827
+ {
828
+ QString layerName = elem.attribute ( " name" );
829
+ if ( useDrawingOrder )
830
+ {
831
+ int drawingOrder = elem.attribute ( " drawingOrder" , " -1" ).toInt ();
832
+ orderedLayerList.insert ( drawingOrder, layerName );
833
+ }
834
+ else
835
+ {
836
+ orderedLayerList.insert ( orderedLayerList.size (), layerName );
837
+ }
838
+ }
839
+ }
840
+
804
841
void QgsWMSProjectParser::addLayers ( QDomDocument &doc,
805
842
QDomElement &parentLayer,
806
843
const QDomElement &legendElem,
0 commit comments