From 72168803ee845adef9743fd24421b9719a0901b0 Mon Sep 17 00:00:00 2001 From: Hans Fugal Date: Tue, 18 Jul 2006 17:46:20 +0000 Subject: [PATCH] r183@gandalf: fugalh | 2006-07-17 19:01:39 -0600 Use XMLNode instead of templating memento types. git-svn-id: svn://localhost/ardour2/branches/undo@683 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/pbd3/pbd/memento_command.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) 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__