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:
parent
79986643c0
commit
5756373841
@ -30,6 +30,7 @@
|
|||||||
#include <ardour/audioregion.h>
|
#include <ardour/audioregion.h>
|
||||||
#include <ardour/audiosource.h>
|
#include <ardour/audiosource.h>
|
||||||
#include <ardour/audio_diskstream.h>
|
#include <ardour/audio_diskstream.h>
|
||||||
|
#include <pbd/memento_command.h>
|
||||||
|
|
||||||
#include "streamview.h"
|
#include "streamview.h"
|
||||||
#include "audio_region_view.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);
|
gain_line->view_to_model_y (y);
|
||||||
|
|
||||||
trackview.session().begin_reversible_command (_("add gain control point"));
|
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()) {
|
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);
|
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);
|
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 ();
|
trackview.session().commit_reversible_command ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ Editor::kbd_mute_unmute_region ()
|
|||||||
entered_regionview->region().set_muted (!entered_regionview->region().muted());
|
entered_regionview->region().set_muted (!entered_regionview->region().muted());
|
||||||
|
|
||||||
XMLNode &after = entered_regionview->region().playlist()->get_state();
|
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();
|
commit_reversible_command();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1823,7 +1823,7 @@ Editor::fade_in_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* even
|
|||||||
arv->audio_region().set_fade_in_length (fade_length);
|
arv->audio_region().set_fade_in_length (fade_length);
|
||||||
|
|
||||||
XMLNode &after = arv->audio_region().get_state();
|
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,
|
before,
|
||||||
after));
|
after));
|
||||||
commit_reversible_command ();
|
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);
|
arv->audio_region().set_fade_out_length (fade_length);
|
||||||
|
|
||||||
XMLNode &after = arv->region().get_state();
|
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 ();
|
commit_reversible_command ();
|
||||||
|
|
||||||
fade_out_drag_motion_callback (item, event);
|
fade_out_drag_motion_callback (item, event);
|
||||||
@ -4234,7 +4234,7 @@ Editor::point_trim (GdkEvent* event)
|
|||||||
i != selection->regions.by_layer().end(); ++i)
|
i != selection->regions.by_layer().end(); ++i)
|
||||||
{
|
{
|
||||||
if (!(*i)->region().locked()) {
|
if (!(*i)->region().locked()) {
|
||||||
Playlist *pl = (*i)->region.playlist();
|
Playlist *pl = (*i)->region().playlist();
|
||||||
XMLNode &before = pl->get_state();
|
XMLNode &before = pl->get_state();
|
||||||
(*i)->region().trim_front (new_bound, this);
|
(*i)->region().trim_front (new_bound, this);
|
||||||
XMLNode &after = pl->get_state();
|
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();
|
double speed = atv->get_diskstream()->speed();
|
||||||
|
|
||||||
XMLNode &before = playlist->get_state();
|
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();
|
XMLNode &after = playlist->get_state();
|
||||||
session->add_command(new MementoCommand<Playlist>(*playlist, before, after));
|
session->add_command(new MementoCommand<Playlist>(*playlist, before, after));
|
||||||
|
|
||||||
|
@ -2594,7 +2594,7 @@ Editor::naturalize ()
|
|||||||
XMLNode &before = (*i)->region().get_state();
|
XMLNode &before = (*i)->region().get_state();
|
||||||
(*i)->region().move_to_natural_position (this);
|
(*i)->region().move_to_natural_position (this);
|
||||||
XMLNode &after = (*i)->region().get_state();
|
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 ();
|
commit_reversible_command ();
|
||||||
}
|
}
|
||||||
@ -3401,7 +3401,7 @@ Editor::normalize_region ()
|
|||||||
continue;
|
continue;
|
||||||
XMLNode &before = arv->region().get_state();
|
XMLNode &before = arv->region().get_state();
|
||||||
arv->audio_region().normalize_to (0.0f);
|
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 ();
|
commit_reversible_command ();
|
||||||
@ -3428,7 +3428,7 @@ Editor::denormalize_region ()
|
|||||||
continue;
|
continue;
|
||||||
XMLNode &before = arv->region().get_state();
|
XMLNode &before = arv->region().get_state();
|
||||||
arv->audio_region().set_scale_amplitude (1.0f);
|
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 ();
|
commit_reversible_command ();
|
||||||
@ -3473,7 +3473,7 @@ Editor::apply_filter (AudioFilter& filter, string command)
|
|||||||
if (arv->audio_region().apply (filter) == 0) {
|
if (arv->audio_region().apply (filter) == 0) {
|
||||||
|
|
||||||
XMLNode &before = playlist->get_state();
|
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();
|
XMLNode &after = playlist->get_state();
|
||||||
session->add_command(new MementoCommand<Playlist>(*playlist, before, after));
|
session->add_command(new MementoCommand<Playlist>(*playlist, before, after));
|
||||||
} else {
|
} else {
|
||||||
|
@ -49,7 +49,7 @@ AudioRegionGainLine::start_drag (ControlPoint* cp, float fraction)
|
|||||||
AutomationLine::start_drag(cp,fraction);
|
AutomationLine::start_drag(cp,fraction);
|
||||||
if (!rv.audio_region().envelope_active()) {
|
if (!rv.audio_region().envelope_active()) {
|
||||||
trackview.session().add_command(new MementoUndoCommand<AudioRegion>(rv.audio_region(), rv.audio_region().get_state()));
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include <pbd/error.h>
|
#include <pbd/error.h>
|
||||||
#include <pbd/stl_delete.h>
|
#include <pbd/stl_delete.h>
|
||||||
#include <pbd/whitespace.h>
|
#include <pbd/whitespace.h>
|
||||||
|
#include <pbd/memento_command.h>
|
||||||
|
|
||||||
#include <gtkmm/menu.h>
|
#include <gtkmm/menu.h>
|
||||||
#include <gtkmm/menuitem.h>
|
#include <gtkmm/menuitem.h>
|
||||||
@ -1050,12 +1051,12 @@ RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XMLNode &before = playlist->get_state();
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case Cut:
|
case Cut:
|
||||||
_session.add_undo (playlist->get_memento());
|
|
||||||
if ((what_we_got = playlist->cut (time)) != 0) {
|
if ((what_we_got = playlist->cut (time)) != 0) {
|
||||||
editor.get_cut_buffer().add (what_we_got);
|
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;
|
ret = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1066,9 +1067,8 @@ RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case Clear:
|
case Clear:
|
||||||
_session.add_undo (playlist->get_memento());
|
|
||||||
if ((what_we_got = playlist->cut (time)) != 0) {
|
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 ();
|
what_we_got->unref ();
|
||||||
ret = true;
|
ret = true;
|
||||||
}
|
}
|
||||||
@ -1097,9 +1097,9 @@ RouteTimeAxisView::paste (jack_nframes_t pos, float times, Selection& selection,
|
|||||||
if (get_diskstream()->speed() != 1.0f)
|
if (get_diskstream()->speed() != 1.0f)
|
||||||
pos = session_frame_to_track_frame(pos, get_diskstream()->speed() );
|
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);
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ RouteUI::mute_press(GdkEventButton* ev)
|
|||||||
|
|
||||||
_session.begin_reversible_command (_("mute change"));
|
_session.begin_reversible_command (_("mute change"));
|
||||||
Session::GlobalMuteStateCommand *cmd = new Session::GlobalMuteStateCommand(_session, this);
|
Session::GlobalMuteStateCommand *cmd = new Session::GlobalMuteStateCommand(_session, this);
|
||||||
_session.set_all_mute (!_route.muted());
|
_session.set_all_mute (!_route->muted());
|
||||||
cmd->mark();
|
cmd->mark();
|
||||||
_session.add_command(cmd);
|
_session.add_command(cmd);
|
||||||
_session.commit_reversible_command ();
|
_session.commit_reversible_command ();
|
||||||
@ -206,7 +206,7 @@ RouteUI::solo_press(GdkEventButton* ev)
|
|||||||
|
|
||||||
_session.begin_reversible_command (_("solo change"));
|
_session.begin_reversible_command (_("solo change"));
|
||||||
Session::GlobalSoloStateCommand *cmd = new Session::GlobalSoloStateCommand(_session, this);
|
Session::GlobalSoloStateCommand *cmd = new Session::GlobalSoloStateCommand(_session, this);
|
||||||
_session.set_all_solo (!_route.soloed());
|
_session.set_all_solo (!_route->soloed());
|
||||||
cmd->mark();
|
cmd->mark();
|
||||||
_session.add_command (cmd);
|
_session.add_command (cmd);
|
||||||
_session.commit_reversible_command ();
|
_session.commit_reversible_command ();
|
||||||
@ -218,7 +218,7 @@ RouteUI::solo_press(GdkEventButton* ev)
|
|||||||
_session.begin_reversible_command (_("solo change"));
|
_session.begin_reversible_command (_("solo change"));
|
||||||
Session::GlobalSoloStateCommand *cmd = new Session::GlobalSoloStateCommand (_session, this);
|
Session::GlobalSoloStateCommand *cmd = new Session::GlobalSoloStateCommand (_session, this);
|
||||||
_session.set_all_solo (false);
|
_session.set_all_solo (false);
|
||||||
_route.set_solo (true, this);
|
_route->set_solo (true, this);
|
||||||
cmd->mark();
|
cmd->mark();
|
||||||
_session.add_command(cmd);
|
_session.add_command(cmd);
|
||||||
_session.commit_reversible_command ();
|
_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)
|
RouteUI::reversibly_apply_route_boolean (string name, void (Route::*func)(bool, void *), bool yn, void *arg)
|
||||||
{
|
{
|
||||||
_session.begin_reversible_command (name);
|
_session.begin_reversible_command (name);
|
||||||
XMLNode &before = _route.get_state();
|
XMLNode &before = _route->get_state();
|
||||||
bind(mem_fun(_route, func), yn, arg)();
|
bind(mem_fun(*_route, func), yn, arg)();
|
||||||
XMLNode &after = _route.get_state();
|
XMLNode &after = _route->get_state();
|
||||||
_session.add_command (new MementoCommand<Route>(_route, before, after));
|
_session.add_command (new MementoCommand<Route>(*_route, before, after));
|
||||||
_session.commit_reversible_command ();
|
_session.commit_reversible_command ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user