@@ -846,8 +846,6 @@ QgsComposition* QgsProjectParser::initComposition( const QString& composerTempla
846
846
return 0 ;
847
847
}
848
848
849
- QList<QDomElement> scaleBarElemList;
850
-
851
849
// go through all the item elements and add them to the composition (and to the lists)
852
850
QDomNodeList itemNodes = composerElem.childNodes ();
853
851
for ( int i = 0 ; i < itemNodes.size (); ++i )
@@ -874,17 +872,6 @@ QgsComposition* QgsProjectParser::initComposition( const QString& composerTempla
874
872
legend->readXML ( currentElem, *mXMLDoc );
875
873
composition->addItem ( legend );
876
874
}
877
- else if ( elemName == " ComposerPicture" )
878
- {
879
- QgsComposerPicture* picture = new QgsComposerPicture ( composition );
880
- picture->readXML ( currentElem, *mXMLDoc );
881
- composition->addItem ( picture );
882
- }
883
- else if ( elemName == " ComposerScaleBar" )
884
- {
885
- // scalebars need to be loaded after the composer maps
886
- scaleBarElemList.push_back ( currentElem );
887
- }
888
875
else if ( elemName == " ComposerShape" )
889
876
{
890
877
QgsComposerShape* shape = new QgsComposerShape ( composition );
@@ -905,13 +892,23 @@ QgsComposition* QgsProjectParser::initComposition( const QString& composerTempla
905
892
}
906
893
}
907
894
908
- // scalebars need to be loaded after the composer maps to receive the correct size
909
- QList<QDomElement>::const_iterator scaleBarIt = scaleBarElemList.constBegin ();
910
- for ( ; scaleBarIt != scaleBarElemList.constEnd (); ++scaleBarIt )
895
+ // scalebars and pictures need to be loaded after the maps to receive the correct size / rotation
896
+ for ( int i = 0 ; i < itemNodes.size (); ++i )
911
897
{
912
- QgsComposerScaleBar* bar = new QgsComposerScaleBar ( composition );
913
- bar->readXML ( *scaleBarIt, *mXMLDoc );
914
- composition->addItem ( bar );
898
+ QDomElement currentElem = itemNodes.at ( i ).toElement ();
899
+ QString elemName = currentElem.tagName ();
900
+ if ( elemName == " ComposerPicture" )
901
+ {
902
+ QgsComposerPicture* picture = new QgsComposerPicture ( composition );
903
+ picture->readXML ( currentElem, *mXMLDoc );
904
+ composition->addItem ( picture );
905
+ }
906
+ else if ( elemName == " ComposerScaleBar" )
907
+ {
908
+ QgsComposerScaleBar* bar = new QgsComposerScaleBar ( composition );
909
+ bar->readXML ( currentElem, *mXMLDoc );
910
+ composition->addItem ( bar );
911
+ }
915
912
}
916
913
917
914
return composition;
0 commit comments