Save annotations to project.qgs in creation order (fix #14812)

Save annotations to project file in the order they were loaded or
created, so that annotations have the same display order each
time the project is opened.
This commit is contained in:
Simon Chenery 2016-05-16 22:03:25 +02:00 committed by Nyall Dawson
parent 0ff10aeb0e
commit 82d465cd94

View File

@ -1604,14 +1604,19 @@ void QgisApp::showStyleManagerV2()
void QgisApp::writeAnnotationItemsToProject( QDomDocument& doc ) void QgisApp::writeAnnotationItemsToProject( QDomDocument& doc )
{ {
QList<QgsAnnotationItem*> items = annotationItems(); QList<QgsAnnotationItem*> items = annotationItems();
QList<QgsAnnotationItem*>::const_iterator itemIt = items.constBegin(); QgsAnnotationItem* item;
for ( ; itemIt != items.constEnd(); ++itemIt ) QListIterator<QgsAnnotationItem*> i( items );
// save lowermost annotation (at end of list) first
i.toBack();
while ( i.hasPrevious() )
{ {
if ( ! *itemIt ) item = i.previous();
if ( ! item )
{ {
continue; continue;
} }
( *itemIt )->writeXML( doc ); item->writeXML( doc );
} }
} }