[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