Skip to content

Commit 304ced9

Browse files
committed
Fix 10625 reverting addDrawingOrder to previous logic
1 parent 60d93b3 commit 304ced9

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

src/mapserver/qgswmsprojectparser.cpp

+38-1
Original file line numberDiff line numberDiff line change
@@ -709,7 +709,7 @@ void QgsWMSProjectParser::addDrawingOrder( QDomElement& parentElem, QDomDocument
709709
parentElem.appendChild( layerDrawingOrderElem );
710710
}
711711

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
713713
{
714714
if ( groupElem.isNull() )
715715
{
@@ -801,6 +801,43 @@ void QgsWMSProjectParser::addDrawingOrder( QDomElement groupElem, bool useDrawin
801801
}
802802
}
803803

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+
804841
void QgsWMSProjectParser::addLayers( QDomDocument &doc,
805842
QDomElement &parentLayer,
806843
const QDomElement &legendElem,

src/mapserver/qgswmsprojectparser.h

+3
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ class QgsWMSProjectParser: public QgsWMSConfigParser
129129
/**Adds drawing order info from layer element or group element (recursive)*/
130130
void addDrawingOrder( QDomElement groupElem, bool useDrawingOrder, QMap<int, QString>& orderedLayerList ) const;
131131

132+
/**Adds drawing order info from embedded layer element or embedded group element (recursive)*/
133+
void addDrawingOrderEmbeddedGroup( QDomElement groupElem, bool useDrawingOrder, QMap<int, QString>& orderedLayerList ) const;
134+
132135
void addLayers( QDomDocument &doc,
133136
QDomElement &parentLayer,
134137
const QDomElement &legendElem,

0 commit comments

Comments
 (0)