summaryrefslogtreecommitdiff
path: root/libs/pbd/pbd/memento_command.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/pbd/pbd/memento_command.h')
-rw-r--r--libs/pbd/pbd/memento_command.h24
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;