summaryrefslogtreecommitdiffstats
path: root/src/server/events/Delete.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2016-07-30 13:10:13 -0400
committerDavid Robillard <d@drobilla.net>2016-07-30 15:32:49 -0400
commitc8ae7295e911c62cf9dedf90187656937cc18cbb (patch)
tree0ba1207bf2c63278e9932eed2d04f961144a02db /src/server/events/Delete.cpp
parente74c6a3b388ded66fcc4cfb1fa5bece881b63113 (diff)
downloadingen-c8ae7295e911c62cf9dedf90187656937cc18cbb.tar.gz
ingen-c8ae7295e911c62cf9dedf90187656937cc18cbb.tar.bz2
ingen-c8ae7295e911c62cf9dedf90187656937cc18cbb.zip
Add undo support
Diffstat (limited to 'src/server/events/Delete.cpp')
-rw-r--r--src/server/events/Delete.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/server/events/Delete.cpp b/src/server/events/Delete.cpp
index 06a5cb95..7b27e11f 100644
--- a/src/server/events/Delete.cpp
+++ b/src/server/events/Delete.cpp
@@ -1,6 +1,6 @@
/*
This file is part of Ingen.
- Copyright 2007-2015 David Robillard <http://drobilla.net/>
+ Copyright 2007-2016 David Robillard <http://drobilla.net/>
Ingen is free software: you can redistribute it and/or modify it under the
terms of the GNU Affero General Public License as published by the Free
@@ -162,6 +162,18 @@ Delete::post_process()
}
}
+void
+Delete::undo(Interface& target)
+{
+ auto i = _removed_objects.find(_path);
+ if (i != _removed_objects.end()) {
+ target.put(_uri, i->second->properties());
+ if (_disconnect_event) {
+ _disconnect_event->undo(target);
+ }
+ }
+}
+
} // namespace Events
} // namespace Server
} // namespace Ingen