r205@gandalf: fugalh | 2006-07-26 18:11:47 -0600

More Command conversions


git-svn-id: svn://localhost/ardour2/branches/undo@697 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Hans Fugal 2006-07-27 00:19:12 +00:00
parent ed31a9a262
commit 656d56b12d
5 changed files with 24 additions and 13 deletions

View file

@ -906,10 +906,11 @@ Editor::new_transport_marker_menu_set_punch ()
XMLNode &after = session->locations()->get_state();
session->add_command (MementoCommand<Locations>(*(session->locations()), before, after));
} else {
session->add_undo (retype_return<void>(bind (mem_fun (*tpl, &Location::set), tpl->start(), tpl->end())));
session->add_redo (retype_return<void>(bind (mem_fun (*tpl, &Location::set), temp_location->start(), temp_location->end())));
XMLNode &before = tpl->get_state();
tpl->set_hidden(false, this);
tpl->set(temp_location->start(), temp_location->end());
XMLNode &after = tpl->get_state();
session->add_command (MementoCommand<Location>(*tpl, before, after));
}
commit_reversible_command ();

View file

@ -47,7 +47,8 @@ AudioRegionGainLine::start_drag (ControlPoint* cp, float fraction)
{
AutomationLine::start_drag(cp,fraction);
if (!rv.region.envelope_active()) {
trackview.session().add_undo( bind( mem_fun(rv.region, &AudioRegion::set_envelope_active), false) );
trackview.session().add_command(MementoUndoCommand<AudioRegion>(rv.region, rv.region.get_state()));
rv.region.set_envelope_active(false);
}
}
@ -63,9 +64,10 @@ AudioRegionGainLine::remove_point (ControlPoint& cp)
XMLNode &before = get_state();
if (!rv.region.envelope_active()) {
trackview.session().add_undo( bind( mem_fun(rv.region, &AudioRegion::set_envelope_active), false) );
trackview.session().add_redo( bind( mem_fun(rv.region, &AudioRegion::set_envelope_active), true) );
XMLNode &before = rv.region.get_state();
rv.region.set_envelope_active(true);
XMLNode &after = rv.region.get_state();
trackview.session().add_command(MementoCommand<AudioRegion>(rv.region, before, after));
}
alist.erase (mr.start, mr.end);

View file

@ -1148,9 +1148,11 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev)
if (!region.envelope_active()) {
trackview.session().add_undo( bind( mem_fun(region, &AudioRegion::set_envelope_active), false) );
XMLNode &before, &after;
before = region.get_state();
region.set_envelope_active(true);
trackview.session().add_redo( bind( mem_fun(region, &AudioRegion::set_envelope_active), true) );
after = region.get_state();
trackview.session().add_command(MementoCommand<AudioRegion>(region, before, after));
}
region.envelope().add (fx, y);

View file

@ -570,8 +570,10 @@ void
RouteUI::reversibly_apply_route_boolean (string name, void (Route::*func)(bool, void *), bool yn, void *arg)
{
_session.begin_reversible_command (name);
_session.add_undo (bind (mem_fun (_route, func), !yn, (void *) arg));
_session.add_redo (bind (mem_fun (_route, func), yn, (void *) arg));
XMLNode &before = _route.get_state();
bind(mem_fun(_route, func), yn, arg)();
XMLNode &after = _route.get_state();
_session.add_command (MementoCommand<Route>(_route, before, after));
_session.commit_reversible_command ();
}
@ -579,8 +581,10 @@ void
RouteUI::reversibly_apply_audio_track_boolean (string name, void (AudioTrack::*func)(bool, void *), bool yn, void *arg)
{
_session.begin_reversible_command (name);
_session.add_undo (bind (mem_fun (*audio_track(), func), !yn, (void *) arg));
_session.add_redo (bind (mem_fun (*audio_track(), func), yn, (void *) arg));
XMLNode &before = audio_track()->get_state();
bind (mem_fun (*audio_track(), func), yn, arg)();
XMLNode &after = audio_track()->get_state();
_session.add_command (MementoCommand<AudioTrack>(*audio_track(), before, after));
_session.commit_reversible_command ();
}

View file

@ -320,8 +320,10 @@ Session::non_realtime_stop (bool abort)
}
if (change_end) {
add_undo (sigc::retype_return<void>(sigc::bind (mem_fun (*loc, &Location::set_end), loc->end())));
add_redo (sigc::retype_return<void>(sigc::bind (mem_fun (*loc, &Location::set_end), _transport_frame)));
XMLNode &before = loc->get_state();
loc->set_end(_transport_frame);
XMLNode &after = loc->get_state();
add_command (MementoCommand<Location>(*loc, before, after));
}
_end_location_is_free = false;