summaryrefslogtreecommitdiff
path: root/libs/pbd/pbd/memento_command.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-02-22 17:37:33 +0000
committerDavid Robillard <d@drobilla.net>2009-02-22 17:37:33 +0000
commit5b04ddf424a657dbaa421cce13df4d6dac7fc622 (patch)
tree7beaaaefde9879033e17cf19679b7ac035c5212b /libs/pbd/pbd/memento_command.h
parentdf4e6f2341040f37c1da58576eae4f9d0e55f80c (diff)
Make commands noncopyable (they are definitely not copy safe).
memento_command.h style. git-svn-id: svn://localhost/ardour2/branches/3.0@4648 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/pbd/pbd/memento_command.h')
-rw-r--r--libs/pbd/pbd/memento_command.h52
1 files changed, 25 insertions, 27 deletions
diff --git a/libs/pbd/pbd/memento_command.h b/libs/pbd/pbd/memento_command.h
index 660e5875d5..1a6600b1b5 100644
--- a/libs/pbd/pbd/memento_command.h
+++ b/libs/pbd/pbd/memento_command.h
@@ -39,63 +39,61 @@ template <class obj_T>
class MementoCommand : public Command
{
public:
- MementoCommand(obj_T &object, XMLNode *before, XMLNode *after)
- : obj(object), before(before), after(after)
+ MementoCommand(obj_T& a_object, XMLNode* a_before, XMLNode* a_after)
+ : obj(a_object), before(a_before), after(a_after)
{
/* catch destruction of the object */
- new PBD::PairedShiva<obj_T,MementoCommand<obj_T> > (object, *this);
+ new PBD::PairedShiva< obj_T,MementoCommand<obj_T> > (obj, *this);
}
- ~MementoCommand ()
- {
+ ~MementoCommand () {
GoingAway(); /* EMIT SIGNAL */
-
- if (before)
- delete before;
-
- if (after)
- delete after;
+ delete before;
+ delete after;
}
- void operator() ()
- {
- if (after)
+ void operator() () {
+ if (after) {
obj.set_state(*after);
+ }
}
- void undo()
- {
- if (before)
+ void undo() {
+ if (before) {
obj.set_state(*before);
+ }
}
- virtual XMLNode &get_state()
- {
+ virtual XMLNode &get_state() {
string name;
- if (before && after)
+ if (before && after) {
name = "MementoCommand";
- else if (before)
+ } else if (before) {
name = "MementoUndoCommand";
- else
+ } else {
name = "MementoRedoCommand";
+ }
- XMLNode *node = new XMLNode(name);
+ XMLNode* node = new XMLNode(name);
node->add_property("obj_id", obj.id().to_s());
node->add_property("type_name", typeid(obj).name());
- if (before)
+ if (before) {
node->add_child_copy(*before);
+ }
- if (after)
+ if (after) {
node->add_child_copy(*after);
+ }
return *node;
}
protected:
- obj_T &obj;
- XMLNode *before, *after;
+ obj_T& obj;
+ XMLNode* before;
+ XMLNode* after;
};
#endif // __lib_pbd_memento_h__