From 5cd1a83feb3264c07b781b7f3937e699c08844f1 Mon Sep 17 00:00:00 2001 From: Marco Hugentobler Date: Tue, 15 Apr 2014 13:59:34 +0200 Subject: [PATCH] Fix drawing order with embedded group --- src/app/legend/qgslegend.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/app/legend/qgslegend.cpp b/src/app/legend/qgslegend.cpp index 8c464b11db7..54cc836c58d 100644 --- a/src/app/legend/qgslegend.cpp +++ b/src/app/legend/qgslegend.cpp @@ -1504,15 +1504,22 @@ QList QgsLegend::canvasLayers() } embeddedGroupChildren.insert( ll ); } - QMap::iterator orderedLayersIt = orderedLayers.begin(); - for ( ; orderedLayersIt != orderedLayers.end(); ++orderedLayersIt ) + + if ( mUpdateDrawingOrder ) { - if ( mUpdateDrawingOrder ) + QMap::iterator orderedLayersIt = orderedLayers.begin(); + for ( ; orderedLayersIt != orderedLayers.end(); ++orderedLayersIt ) { layers.insert( layers.size(), orderedLayersIt.value() ); } - else + } + else //consider items are prepended with insertMulti + { + QMapIterator orderedLayersIt( orderedLayers ); + orderedLayersIt.toBack(); + while ( orderedLayersIt.hasPrevious() ) { + orderedLayersIt.previous(); layers.insertMulti( groupDrawingOrder, orderedLayersIt.value() ); } }