@@ -184,7 +184,7 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title ): QMainWindow(),
184
184
connectSlots ();
185
185
186
186
mComposition = new QgsComposition ( mQgis ->mapCanvas ()->mapRenderer () );
187
- mComposition ->setParent (mView );
187
+ mComposition ->setParent ( mView );
188
188
mView ->setComposition ( mComposition );
189
189
190
190
QgsCompositionWidget* compositionWidget = new QgsCompositionWidget ( mCompositionOptionsFrame , mComposition );
@@ -220,13 +220,7 @@ QgsComposer::QgsComposer( QgisApp *qgis, const QString& title ): QMainWindow(),
220
220
221
221
QgsComposer::~QgsComposer ()
222
222
{
223
- // delete all the items
224
- QMap<QgsComposerItem*, QWidget*>::iterator it = mItemWidgetMap .begin ();
225
- for ( ; it != mItemWidgetMap .end (); ++it )
226
- {
227
- delete it.key ();
228
- delete it.value ();
229
- }
223
+ deleteItems ();
230
224
}
231
225
232
226
void QgsComposer::setupTheme ()
@@ -842,6 +836,7 @@ void QgsComposer::on_mActionLoadFromTemplate_triggered()
842
836
return ;
843
837
}
844
838
839
+ deleteItems ();
845
840
readXML ( templateDocument );
846
841
847
842
// clean up after template read (e.g. legend and map extent)
@@ -1176,6 +1171,18 @@ void QgsComposer::readXML( const QDomElement& composerElem, const QDomDocument&
1176
1171
setSelectionTool ();
1177
1172
}
1178
1173
1174
+ void QgsComposer::deleteItems ()
1175
+ {
1176
+ // delete all the items
1177
+ QMap<QgsComposerItem*, QWidget*>::iterator it = mItemWidgetMap .begin ();
1178
+ for ( ; it != mItemWidgetMap .end (); ++it )
1179
+ {
1180
+ delete it.key ();
1181
+ delete it.value ();
1182
+ }
1183
+ mItemWidgetMap .clear ();
1184
+ }
1185
+
1179
1186
void QgsComposer::addComposerMap ( QgsComposerMap* map )
1180
1187
{
1181
1188
if ( !map )
0 commit comments