26 QgsLayoutItemUndoCommand::QgsLayoutItemUndoCommand(
QgsLayoutItem *item,
const QString &text,
int id, QUndoCommand *parent )
28 , mItemUuid( item->uuid() )
29 , mLayout( item->layout() )
30 , mItemType( item->type() )
35 bool QgsLayoutItemUndoCommand::mergeWith(
const QUndoCommand *command )
37 if ( command->id() == 0 )
40 const QgsLayoutItemUndoCommand *
c =
dynamic_cast<const QgsLayoutItemUndoCommand *
>( command );
45 if (
c->itemUuid() != itemUuid() )
48 setAfterState(
c->afterState() );
52 void QgsLayoutItemUndoCommand::saveState( QDomDocument &stateDoc )
const
55 QDomElement documentElement = stateDoc.createElement( QStringLiteral(
"ItemState" ) );
58 Q_ASSERT_X( item,
"QgsLayoutItemUndoCommand::saveState",
"could not retrieve item for saving state" );
61 stateDoc.appendChild( documentElement );
64 void QgsLayoutItemUndoCommand::restoreState( QDomDocument &stateDoc )
71 item = recreateItem( mItemType, mLayout );
76 mLayout->project()->setDirty(
true );
77 mLayout->undoStack()->notifyUndoRedoOccurred( item );
83 mLayout->addLayoutItemPrivate( item );
87 QString QgsLayoutItemUndoCommand::itemUuid()
const
92 QgsLayout *QgsLayoutItemUndoCommand::layout()
const
102 QgsLayoutItemDeleteUndoCommand::QgsLayoutItemDeleteUndoCommand(
QgsLayoutItem *item,
const QString &text,
int id, QUndoCommand *parent )
103 : QgsLayoutItemUndoCommand( item, text, id, parent )
108 bool QgsLayoutItemDeleteUndoCommand::mergeWith(
const QUndoCommand * )
113 void QgsLayoutItemDeleteUndoCommand::redo()
126 layout()->removeLayoutItemPrivate( item );
130 QgsLayoutItemAddItemCommand::QgsLayoutItemAddItemCommand(
QgsLayoutItem *item,
const QString &text,
int id, QUndoCommand *parent )
131 : QgsLayoutItemUndoCommand( item, text, id, parent )
136 bool QgsLayoutItemAddItemCommand::containsChange()
const
141 bool QgsLayoutItemAddItemCommand::mergeWith(
const QUndoCommand * )
146 void QgsLayoutItemAddItemCommand::undo()
157 layout()->removeLayoutItemPrivate( item );