[QGIS Commit] r12098 - trunk/qgis/src/app/composer
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Fri Nov 13 03:48:00 EST 2009
Author: mhugent
Date: 2009-11-13 03:47:58 -0500 (Fri, 13 Nov 2009)
New Revision: 12098
Modified:
trunk/qgis/src/app/composer/qgscomposer.cpp
trunk/qgis/src/app/composer/qgscomposer.h
Log:
Cleanup items before reading from template. Fixes bug #2083
Modified: trunk/qgis/src/app/composer/qgscomposer.cpp
===================================================================
--- trunk/qgis/src/app/composer/qgscomposer.cpp 2009-11-13 08:14:22 UTC (rev 12097)
+++ trunk/qgis/src/app/composer/qgscomposer.cpp 2009-11-13 08:47:58 UTC (rev 12098)
@@ -184,7 +184,7 @@
connectSlots();
mComposition = new QgsComposition( mQgis->mapCanvas()->mapRenderer() );
- mComposition->setParent(mView);
+ mComposition->setParent( mView );
mView->setComposition( mComposition );
QgsCompositionWidget* compositionWidget = new QgsCompositionWidget( mCompositionOptionsFrame, mComposition );
@@ -220,13 +220,7 @@
QgsComposer::~QgsComposer()
{
- //delete all the items
- QMap<QgsComposerItem*, QWidget*>::iterator it = mItemWidgetMap.begin();
- for ( ; it != mItemWidgetMap.end(); ++it )
- {
- delete it.key();
- delete it.value();
- }
+ deleteItems();
}
void QgsComposer::setupTheme()
@@ -842,6 +836,7 @@
return;
}
+ deleteItems();
readXML( templateDocument );
//clean up after template read (e.g. legend and map extent)
@@ -1176,6 +1171,18 @@
setSelectionTool();
}
+void QgsComposer::deleteItems()
+{
+ //delete all the items
+ QMap<QgsComposerItem*, QWidget*>::iterator it = mItemWidgetMap.begin();
+ for ( ; it != mItemWidgetMap.end(); ++it )
+ {
+ delete it.key();
+ delete it.value();
+ }
+ mItemWidgetMap.clear();
+}
+
void QgsComposer::addComposerMap( QgsComposerMap* map )
{
if ( !map )
Modified: trunk/qgis/src/app/composer/qgscomposer.h
===================================================================
--- trunk/qgis/src/app/composer/qgscomposer.h 2009-11-13 08:14:22 UTC (rev 12097)
+++ trunk/qgis/src/app/composer/qgscomposer.h 2009-11-13 08:47:58 UTC (rev 12098)
@@ -246,6 +246,9 @@
//! Writes state under DOM element
void writeXML( QDomNode& parentNode, QDomDocument& doc );
+ //! Removes all the item from the graphics scene and deletes them
+ void deleteItems();
+
/**Composer title*/
QString mTitle;
More information about the QGIS-commit
mailing list