diff --git a/libs/pbd3/pbd/memento_command.h b/libs/pbd3/pbd/memento_command.h index adeb61659a..c9952c443c 100644 --- a/libs/pbd3/pbd/memento_command.h +++ b/libs/pbd3/pbd/memento_command.h @@ -24,13 +24,17 @@ #include #include -template +/** This command class is initialized with before and after mementos + * (from Stateful::get_state()), so undo becomes restoring the before + * memento, and redo is restoring the after memento. + */ +template class MementoCommand : public Command { public: MementoCommand(obj_T &obj, - mem_T before, - mem_T after + XMLNode &before, + XMLNode &after ) : obj(obj), before(before), after(after) {} void operator() () { obj.set_memento(after); } @@ -41,9 +45,10 @@ class MementoCommand : public Command // key is "MementoCommand" or something // before and after mementos } + // TODO does this need a copy constructor? protected: obj_T &obj; - mem_T before, after; + XMLNode &before, &after; }; #endif // __lib_pbd_memento_h__