13
0

Really fixed conflicts. Ready to merge into trunk.

git-svn-id: svn://localhost/ardour2/branches/undo@757 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Hans Fugal 2006-08-04 03:42:34 +00:00
parent 79986643c0
commit 5756373841
7 changed files with 30 additions and 27 deletions

View File

@ -30,6 +30,7 @@
#include <ardour/audioregion.h>
#include <ardour/audiosource.h>
#include <ardour/audio_diskstream.h>
#include <pbd/memento_command.h>
#include "streamview.h"
#include "audio_region_view.h"
@ -898,18 +899,20 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev)
gain_line->view_to_model_y (y);
trackview.session().begin_reversible_command (_("add gain control point"));
trackview.session().add_undo (audio_region().envelope().get_memento());
XMLNode &before = audio_region().envelope().get_state();
if (!audio_region().envelope_active()) {
trackview.session().add_undo( bind( mem_fun(audio_region(), &AudioRegion::set_envelope_active), false) );
XMLNode &before = audio_region().get_state();
audio_region().set_envelope_active(true);
trackview.session().add_redo( bind( mem_fun(audio_region(), &AudioRegion::set_envelope_active), true) );
XMLNode &after = audio_region().get_state();
trackview.session().add_command (new MementoCommand<AudioRegion>(audio_region(), before, after));
}
audio_region().envelope().add (fx, y);
trackview.session().add_redo_no_execute (audio_region().envelope().get_memento());
XMLNode &after = audio_region().envelope().get_state();
trackview.session().add_command (new MementoCommand<Curve>(audio_region().envelope(), before, after));
trackview.session().commit_reversible_command ();
}

View File

@ -108,7 +108,7 @@ Editor::kbd_mute_unmute_region ()
entered_regionview->region().set_muted (!entered_regionview->region().muted());
XMLNode &after = entered_regionview->region().playlist()->get_state();
session->add_command (new MementoCommand<ARDOUR::Playlist>(*(entered_regionview->region.playlist()), before, after));
session->add_command (new MementoCommand<ARDOUR::Playlist>(*(entered_regionview->region().playlist()), before, after));
commit_reversible_command();
}
}

View File

@ -1823,7 +1823,7 @@ Editor::fade_in_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* even
arv->audio_region().set_fade_in_length (fade_length);
XMLNode &after = arv->audio_region().get_state();
session->add_command(new MementoCommand<ARDOUR::AudioRegion>(arv->audio_regio(),
session->add_command(new MementoCommand<ARDOUR::AudioRegion>(arv->audio_region(),
before,
after));
commit_reversible_command ();
@ -1920,7 +1920,7 @@ Editor::fade_out_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* eve
arv->audio_region().set_fade_out_length (fade_length);
XMLNode &after = arv->region().get_state();
session->add_command(new MementoCommand<ARDOUR::AudioRegion>(arv->region(), before, after));
session->add_command(new MementoCommand<ARDOUR::Region>(arv->region(), before, after));
commit_reversible_command ();
fade_out_drag_motion_callback (item, event);
@ -4234,7 +4234,7 @@ Editor::point_trim (GdkEvent* event)
i != selection->regions.by_layer().end(); ++i)
{
if (!(*i)->region().locked()) {
Playlist *pl = (*i)->region.playlist();
Playlist *pl = (*i)->region().playlist();
XMLNode &before = pl->get_state();
(*i)->region().trim_front (new_bound, this);
XMLNode &after = pl->get_state();
@ -4829,7 +4829,7 @@ Editor::mouse_brush_insert_region (RegionView* rv, jack_nframes_t pos)
double speed = atv->get_diskstream()->speed();
XMLNode &before = playlist->get_state();
playlist->add_region (*(new AudioRegion (arv->audio_region)), (jack_nframes_t) (pos * speed));
playlist->add_region (*(new AudioRegion (arv->audio_region())), (jack_nframes_t) (pos * speed));
XMLNode &after = playlist->get_state();
session->add_command(new MementoCommand<Playlist>(*playlist, before, after));

View File

@ -2594,7 +2594,7 @@ Editor::naturalize ()
XMLNode &before = (*i)->region().get_state();
(*i)->region().move_to_natural_position (this);
XMLNode &after = (*i)->region().get_state();
session->add_command (new MementoCommand<AudioRegion>((*i)->region(), before, after));
session->add_command (new MementoCommand<Region>((*i)->region(), before, after));
}
commit_reversible_command ();
}
@ -3401,7 +3401,7 @@ Editor::normalize_region ()
continue;
XMLNode &before = arv->region().get_state();
arv->audio_region().normalize_to (0.0f);
session->add_command (new MementoCommand<Region>(arv->region, arv->region().get_state());
session->add_command (new MementoCommand<Region>(arv->region(), before, arv->region().get_state()));
}
commit_reversible_command ();
@ -3428,7 +3428,7 @@ Editor::denormalize_region ()
continue;
XMLNode &before = arv->region().get_state();
arv->audio_region().set_scale_amplitude (1.0f);
session->add_command (new MementoCommand<Region>(arv->region, before, arv->region().get_state());
session->add_command (new MementoCommand<Region>(arv->region(), before, arv->region().get_state()));
}
commit_reversible_command ();
@ -3473,7 +3473,7 @@ Editor::apply_filter (AudioFilter& filter, string command)
if (arv->audio_region().apply (filter) == 0) {
XMLNode &before = playlist->get_state();
playlist->replace_region (arv->region(), *(filter.results.front()), arv->region()position());
playlist->replace_region (arv->region(), *(filter.results.front()), arv->region().position());
XMLNode &after = playlist->get_state();
session->add_command(new MementoCommand<Playlist>(*playlist, before, after));
} else {

View File

@ -49,7 +49,7 @@ AudioRegionGainLine::start_drag (ControlPoint* cp, float fraction)
AutomationLine::start_drag(cp,fraction);
if (!rv.audio_region().envelope_active()) {
trackview.session().add_command(new MementoUndoCommand<AudioRegion>(rv.audio_region(), rv.audio_region().get_state()));
rv.region.set_envelope_active(false);
rv.audio_region().set_envelope_active(false);
}
}

View File

@ -29,6 +29,7 @@
#include <pbd/error.h>
#include <pbd/stl_delete.h>
#include <pbd/whitespace.h>
#include <pbd/memento_command.h>
#include <gtkmm/menu.h>
#include <gtkmm/menuitem.h>
@ -1050,12 +1051,12 @@ RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
}
}
XMLNode &before = playlist->get_state();
switch (op) {
case Cut:
_session.add_undo (playlist->get_memento());
if ((what_we_got = playlist->cut (time)) != 0) {
editor.get_cut_buffer().add (what_we_got);
_session.add_redo_no_execute (playlist->get_memento());
_session.add_command( new MementoCommand<Playlist>(*playlist, before, playlist->get_state()));
ret = true;
}
break;
@ -1066,9 +1067,8 @@ RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
break;
case Clear:
_session.add_undo (playlist->get_memento());
if ((what_we_got = playlist->cut (time)) != 0) {
_session.add_redo_no_execute (playlist->get_memento());
_session.add_command( new MementoCommand<Playlist>(*playlist, before, playlist->get_state()));
what_we_got->unref ();
ret = true;
}
@ -1097,9 +1097,9 @@ RouteTimeAxisView::paste (jack_nframes_t pos, float times, Selection& selection,
if (get_diskstream()->speed() != 1.0f)
pos = session_frame_to_track_frame(pos, get_diskstream()->speed() );
_session.add_undo (playlist->get_memento());
XMLNode &before = playlist->get_state();
playlist->paste (**p, pos, times);
_session.add_redo_no_execute (playlist->get_memento());
_session.add_command( new MementoCommand<Playlist>(*playlist, before, playlist->get_state()));
return true;
}

View File

@ -130,7 +130,7 @@ RouteUI::mute_press(GdkEventButton* ev)
_session.begin_reversible_command (_("mute change"));
Session::GlobalMuteStateCommand *cmd = new Session::GlobalMuteStateCommand(_session, this);
_session.set_all_mute (!_route.muted());
_session.set_all_mute (!_route->muted());
cmd->mark();
_session.add_command(cmd);
_session.commit_reversible_command ();
@ -206,7 +206,7 @@ RouteUI::solo_press(GdkEventButton* ev)
_session.begin_reversible_command (_("solo change"));
Session::GlobalSoloStateCommand *cmd = new Session::GlobalSoloStateCommand(_session, this);
_session.set_all_solo (!_route.soloed());
_session.set_all_solo (!_route->soloed());
cmd->mark();
_session.add_command (cmd);
_session.commit_reversible_command ();
@ -218,7 +218,7 @@ RouteUI::solo_press(GdkEventButton* ev)
_session.begin_reversible_command (_("solo change"));
Session::GlobalSoloStateCommand *cmd = new Session::GlobalSoloStateCommand (_session, this);
_session.set_all_solo (false);
_route.set_solo (true, this);
_route->set_solo (true, this);
cmd->mark();
_session.add_command(cmd);
_session.commit_reversible_command ();
@ -572,10 +572,10 @@ void
RouteUI::reversibly_apply_route_boolean (string name, void (Route::*func)(bool, void *), bool yn, void *arg)
{
_session.begin_reversible_command (name);
XMLNode &before = _route.get_state();
bind(mem_fun(_route, func), yn, arg)();
XMLNode &after = _route.get_state();
_session.add_command (new MementoCommand<Route>(_route, before, after));
XMLNode &before = _route->get_state();
bind(mem_fun(*_route, func), yn, arg)();
XMLNode &after = _route->get_state();
_session.add_command (new MementoCommand<Route>(*_route, before, after));
_session.commit_reversible_command ();
}