@@ -261,7 +261,7 @@ bool QgsComposition::readXML( const QDomElement& compositionElem, const QDomDocu
261
261
return true ;
262
262
}
263
263
264
- void QgsComposition::addItemsFromXML ( const QDomElement& elem, const QDomDocument& doc, QPointF* pos )
264
+ void QgsComposition::addItemsFromXML ( const QDomElement& elem, const QDomDocument& doc, bool addUndoCommands, QPointF* pos )
265
265
{
266
266
QDomNodeList composerLabelList = elem.elementsByTagName ( " ComposerLabel" );
267
267
for ( int i = 0 ; i < composerLabelList.size (); ++i )
@@ -274,6 +274,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
274
274
newLabel->setItemPosition ( pos->x (), pos->y () );
275
275
}
276
276
addComposerLabel ( newLabel );
277
+ if ( addUndoCommands )
278
+ {
279
+ pushAddRemoveCommand ( newLabel, tr ( " Label added" ) );
280
+ }
277
281
}
278
282
// map
279
283
QDomNodeList composerMapList = elem.elementsByTagName ( " ComposerMap" );
@@ -287,6 +291,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
287
291
newMap->setItemPosition ( pos->x (), pos->y () );
288
292
}
289
293
addComposerMap ( newMap );
294
+ if ( addUndoCommands )
295
+ {
296
+ pushAddRemoveCommand ( newMap, tr ( " Map added" ) );
297
+ }
290
298
}
291
299
// arrow
292
300
QDomNodeList composerArrowList = elem.elementsByTagName ( " ComposerArrow" );
@@ -300,6 +308,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
300
308
newArrow->setItemPosition ( pos->x (), pos->y () );
301
309
}
302
310
addComposerArrow ( newArrow );
311
+ if ( addUndoCommands )
312
+ {
313
+ pushAddRemoveCommand ( newArrow, tr ( " Arrow added" ) );
314
+ }
303
315
}
304
316
// scalebar
305
317
QDomNodeList composerScaleBarList = elem.elementsByTagName ( " ComposerScaleBar" );
@@ -313,6 +325,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
313
325
newScaleBar->setItemPosition ( pos->x (), pos->y () );
314
326
}
315
327
addComposerScaleBar ( newScaleBar );
328
+ if ( addUndoCommands )
329
+ {
330
+ pushAddRemoveCommand ( newScaleBar, tr ( " Scale bar added" ) );
331
+ }
316
332
}
317
333
// shape
318
334
QDomNodeList composerShapeList = elem.elementsByTagName ( " ComposerShape" );
@@ -326,6 +342,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
326
342
newShape->setItemPosition ( pos->x (), pos->y () );
327
343
}
328
344
addComposerShape ( newShape );
345
+ if ( addUndoCommands )
346
+ {
347
+ pushAddRemoveCommand ( newShape, tr ( " Shape added" ) );
348
+ }
329
349
}
330
350
// picture
331
351
QDomNodeList composerPictureList = elem.elementsByTagName ( " ComposerPicture" );
@@ -339,6 +359,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
339
359
newPicture->setItemPosition ( pos->x (), pos->y () );
340
360
}
341
361
addComposerPicture ( newPicture );
362
+ if ( addUndoCommands )
363
+ {
364
+ pushAddRemoveCommand ( newPicture, tr ( " Picture added" ) );
365
+ }
342
366
}
343
367
// legend
344
368
QDomNodeList composerLegendList = elem.elementsByTagName ( " ComposerLegend" );
@@ -352,6 +376,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
352
376
newLegend->setItemPosition ( pos->x (), pos->y () );
353
377
}
354
378
addComposerLegend ( newLegend );
379
+ if ( addUndoCommands )
380
+ {
381
+ pushAddRemoveCommand ( newLegend, tr ( " Legend added" ) );
382
+ }
355
383
}
356
384
// table
357
385
QDomNodeList composerTableList = elem.elementsByTagName ( " ComposerAttributeTable" );
@@ -365,6 +393,10 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
365
393
newTable->setItemPosition ( pos->x (), pos->y () );
366
394
}
367
395
addComposerTable ( newTable );
396
+ if ( addUndoCommands )
397
+ {
398
+ pushAddRemoveCommand ( newTable, tr ( " Table added" ) );
399
+ }
368
400
}
369
401
}
370
402
0 commit comments