diff options
Diffstat (limited to 'libs/pbd/pbd/memento_command.h')
-rw-r--r-- | libs/pbd/pbd/memento_command.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/libs/pbd/pbd/memento_command.h b/libs/pbd/pbd/memento_command.h index c8bfe5de4c..a86006a6ae 100644 --- a/libs/pbd/pbd/memento_command.h +++ b/libs/pbd/pbd/memento_command.h @@ -39,12 +39,14 @@ class MementoCommand : public Command : obj(obj), before(before), after(after) {} void operator() () { obj.set_state(after); } void undo() { obj.set_state(before); } - virtual XMLNode &serialize() {} - //{ + virtual XMLNode &get_state() + { + XMLNode *node = new XMLNode("MementoCommand"); // obj.id // key is "MementoCommand" or something // before and after mementos - //} + return *node; + } // TODO does this need a copy constructor? protected: obj_T &obj; @@ -60,12 +62,14 @@ public: : obj(obj), before(before) {} void operator() () { /* noop */ } void undo() { obj.set_state(before); } - virtual XMLNode &serialize() {} - //{ + virtual XMLNode &get_state() + { + XMLNode *node = new XMLNode("MementoUndoCommand"); // XXX // obj.id // key is "MementoCommand" or something // before and after mementos - //} + return *node; + } protected: obj_T &obj; XMLNode &before; @@ -80,12 +84,14 @@ public: : obj(obj), after(after) {} void operator() () { obj.set_state(after); } void undo() { /* noop */ } - virtual XMLNode &serialize() {} - //{ + virtual XMLNode &get_state() + { + XMLNode *node = new XMLNode("MementoUndoCommand"); // obj.id // key is "MementoCommand" or something // before and after mementos - //} + return *node; + } protected: obj_T &obj; XMLNode &after; |