21QgsModelUndoCommand::QgsModelUndoCommand( QgsProcessingModelAlgorithm *model, 
const QString &text, 
int id, QUndoCommand *parent )
 
   22  : QUndoCommand( text, parent )
 
   26  mBeforeState = model->toVariant();
 
   29void QgsModelUndoCommand::saveAfterState()
 
   31  mAfterState = mModel->toVariant();
 
   34int QgsModelUndoCommand::id()
 const 
   39void QgsModelUndoCommand::undo()
 
   44  const QVariantMap params = mModel->designerParameterValues();
 
   46  mModel->loadVariant( mBeforeState );
 
   48  mModel->setDesignerParameterValues( params );
 
   51void QgsModelUndoCommand::redo()
 
   61  const QVariantMap params = mModel->designerParameterValues();
 
   63  mModel->loadVariant( mAfterState );
 
   65  mModel->setDesignerParameterValues( params );
 
   68bool QgsModelUndoCommand::mergeWith( 
const QUndoCommand *other )
 
   70  if ( other->id() == 0 || other->id() != mId )
 
   73  if ( 
const QgsModelUndoCommand *
c = 
dynamic_cast<const QgsModelUndoCommand *
>( other ) )
 
   75    mAfterState = 
c->mAfterState;
 
As part of the API refactoring and improvements which landed in the Processing API was substantially reworked from the x version This was done in order to allow much of the underlying Processing framework to be ported into c