diff options
author | Carl Hetherington <carl@carlh.net> | 2010-02-11 17:08:34 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-02-11 17:08:34 +0000 |
commit | 3a27410dcbaaca10480ffc14770b41c11e9ca1da (patch) | |
tree | 0b017597b99f3279dc3981033382a4d3f18a2b14 /gtk2_ardour/editor_ops.cc | |
parent | 24fbade20a831fe629ed9bbc1d68a33ac1bd4d74 (diff) |
More tinkering with State<>. Use some StateDiffCommands instead of
MementoCommand<Region>. More use of State<> for Region members.
git-svn-id: svn://localhost/ardour2/branches/3.0@6675 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_ops.cc')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 1ca4c1d245..6ed670509e 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -32,6 +32,7 @@ #include "pbd/pthread_utils.h" #include "pbd/memento_command.h" #include "pbd/whitespace.h" +#include "pbd/stateful_diff_command.h" #include <gtkmm2ext/utils.h> #include <gtkmm2ext/choice.h> @@ -3177,10 +3178,9 @@ Editor::naturalize () begin_reversible_command (_("naturalize")); for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { - XMLNode &before = (*i)->region()->get_state(); + (*i)->region()->clear_history (); (*i)->region()->move_to_natural_position (this); - XMLNode &after = (*i)->region()->get_state(); - _session->add_command (new MementoCommand<Region>(*((*i)->region().get()), &before, &after)); + _session->add_command (new StatefulDiffCommand ((*i)->region().get())); } commit_reversible_command (); } @@ -4930,10 +4930,9 @@ Editor::toggle_gain_envelope_active () for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { AudioRegionView* const arv = dynamic_cast<AudioRegionView*>(*i); if (arv) { - XMLNode &before = arv->region()->get_state (); + arv->region()->clear_history (); arv->audio_region()->set_envelope_active (!arv->audio_region()->envelope_active()); - XMLNode &after = arv->region()->get_state (); - _session->add_command (new MementoCommand<Region> (*(arv->region().get()), &before, &after)); + _session->add_command (new StatefulDiffCommand (arv->region().get())); } } @@ -4952,10 +4951,9 @@ Editor::toggle_region_lock () _session->begin_reversible_command (_("region lock")); for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { - XMLNode &before = (*i)->region()->get_state (); + (*i)->region()->clear_history (); (*i)->region()->set_locked (!(*i)->region()->locked()); - XMLNode &after = (*i)->region()->get_state (); - _session->add_command (new MementoCommand<Region> (*((*i)->region().get()), &before, &after)); + _session->add_command (new StatefulDiffCommand ((*i)->region().get())); } _session->commit_reversible_command (); @@ -4995,10 +4993,9 @@ Editor::toggle_region_mute () _session->begin_reversible_command (_("region mute")); for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { - XMLNode &before = (*i)->region()->get_state (); + (*i)->region()->clear_history (); (*i)->region()->set_muted (!(*i)->region()->muted()); - XMLNode &after = (*i)->region()->get_state (); - _session->add_command (new MementoCommand<Region> (*((*i)->region().get()), &before, &after)); + _session->add_command (new StatefulDiffCommand ((*i)->region().get())); } _session->commit_reversible_command (); @@ -5016,10 +5013,9 @@ Editor::toggle_region_opaque () _session->begin_reversible_command (_("region opacity")); for (RegionSelection::iterator i = rs.begin(); i != rs.end(); ++i) { - XMLNode &before = (*i)->region()->get_state (); + (*i)->region()->clear_history (); (*i)->region()->set_opaque (!(*i)->region()->opaque()); - XMLNode &after = (*i)->region()->get_state (); - _session->add_command (new MementoCommand<Region> (*((*i)->region().get()), &before, &after)); + _session->add_command (new StatefulDiffCommand ((*i)->region().get())); } _session->commit_reversible_command (); |