[QGIS Commit] r13585 - trunk/qgis/src/core/composer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sat May 29 04:08:40 EDT 2010
Author: mhugent
Date: 2010-05-29 04:08:39 -0400 (Sat, 29 May 2010)
New Revision: 13585
Modified:
trunk/qgis/src/core/composer/qgscomposerarrow.cpp
trunk/qgis/src/core/composer/qgscomposition.cpp
Log:
Fix for zList sort problem and added call to composer item readXML in composer arrow
Modified: trunk/qgis/src/core/composer/qgscomposerarrow.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposerarrow.cpp 2010-05-28 21:58:35 UTC (rev 13584)
+++ trunk/qgis/src/core/composer/qgscomposerarrow.cpp 2010-05-29 08:08:39 UTC (rev 13585)
@@ -302,7 +302,7 @@
composerArrowElem.appendChild( stopPointElem );
elem.appendChild( composerArrowElem );
- return true;
+ return _writeXML( composerArrowElem, doc );
}
bool QgsComposerArrow::readXML( const QDomElement& itemElem, const QDomDocument& doc )
@@ -325,6 +325,15 @@
mArrowColor = QColor( red, green, blue, alpha );
}
+ //restore general composer item properties
+ //needs to be before start point / stop point because setSceneRect()
+ QDomNodeList composerItemList = itemElem.elementsByTagName( "ComposerItem" );
+ if ( composerItemList.size() > 0 )
+ {
+ QDomElement composerItemElem = composerItemList.at( 0 ).toElement();
+ _readXML( composerItemElem, doc );
+ }
+
//start point
QDomNodeList startPointList = itemElem.elementsByTagName( "StartPoint" );
if ( startPointList.size() > 0 )
@@ -343,15 +352,6 @@
mStopPoint.setY( stopPointElem.attribute( "y", "0.0" ).toDouble() );
}
-
- //restore general composer item properties
- QDomNodeList composerItemList = itemElem.elementsByTagName( "ComposerItem" );
- if ( composerItemList.size() > 0 )
- {
- QDomElement composerItemElem = composerItemList.at( 0 ).toElement();
- _readXML( composerItemElem, doc );
- }
-
adaptItemSceneRect();
return true;
}
Modified: trunk/qgis/src/core/composer/qgscomposition.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgscomposition.cpp 2010-05-28 21:58:35 UTC (rev 13584)
+++ trunk/qgis/src/core/composer/qgscomposition.cpp 2010-05-29 08:08:39 UTC (rev 13585)
@@ -537,6 +537,11 @@
void QgsComposition::sortZList()
{
+ if ( mItemZList.size() < 2 )
+ {
+ return;
+ }
+
#ifdef QGISDEBUG
//debug: list before sorting
QgsDebugMsg( "before sorting" );
@@ -547,51 +552,24 @@
}
#endif
- QMutableLinkedListIterator<QgsComposerItem*> it( mItemZList );
- int previousZ, afterZ; //z values of items before and after
- QgsComposerItem* previousItem;
- QgsComposerItem* afterItem;
+ QLinkedList<QgsComposerItem*>::const_iterator lIt = mItemZList.constBegin();
+ QLinkedList<QgsComposerItem*> sortedList;
- while ( it.hasNext() )
+ for ( ; lIt != mItemZList.constEnd(); ++lIt )
{
- previousItem = it.next();
- if ( previousItem )
+ QLinkedList<QgsComposerItem*>::iterator insertIt = sortedList.begin();
+ for ( ; insertIt != sortedList.end(); ++insertIt )
{
- previousZ = previousItem->zValue();
- }
- else
- {
- previousZ = -1;
- }
-
- if ( !it.hasNext() )
- {
- break; //this is the end...
- }
- afterItem = it.peekNext();
-
- if ( afterItem )
- {
- afterZ = afterItem->zValue();
- }
- else
- {
- afterZ = -1;
- }
-
- if ( previousZ > afterZ )
- {
- //swap items
- if ( previousItem && afterItem )
+ if (( *lIt )->zValue() < ( *insertIt )->zValue() )
{
- it.remove();
- it.next();
- it.insert( previousItem );
- it.previous();
+ break;
}
}
+ sortedList.insert( insertIt, ( *lIt ) );
}
+ mItemZList = sortedList;
+
#ifdef QGISDEBUG
//debug: list after sorting
//debug: list before sorting
More information about the QGIS-commit
mailing list