From d48489ec1b20d39ba5e7023fbf75f9c8caad0a53 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 21 Jan 2011 00:58:45 +0000 Subject: Make all types of import at least partially undo-able so that the session range gets set properly on import. git-svn-id: svn://localhost/ardour2/branches/3.0@8560 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_audio_import.cc | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc index 03eda12082..7f56cd9121 100644 --- a/gtk2_ardour/editor_audio_import.cc +++ b/gtk2_ardour/editor_audio_import.cc @@ -876,7 +876,7 @@ Editor::finish_bringing_in_material (boost::shared_ptr region, uint32_t boost::shared_ptr playlist = existing_track->playlist(); boost::shared_ptr copy (RegionFactory::create (region, region->properties())); begin_reversible_command (Operations::insert_file); - playlist->clear_changes (); + playlist->clear_changes (); playlist->add_region (copy, pos); _session->add_command (new StatefulDiffCommand (playlist)); commit_reversible_command (); @@ -907,22 +907,33 @@ Editor::finish_bringing_in_material (boost::shared_ptr region, uint32_t existing_track->set_name (region->name()); } + + boost::shared_ptr playlist = existing_track->playlist(); boost::shared_ptr copy (RegionFactory::create (region)); - existing_track->playlist()->add_region (copy, pos); + begin_reversible_command (Operations::insert_file); + playlist->clear_changes (); + playlist->add_region (copy, pos); + _session->add_command (new StatefulDiffCommand (playlist)); + commit_reversible_command (); break; } case ImportAsTapeTrack: { - if (!ar) + if (!ar) { return -1; + } list > at (_session->new_audio_track (in_chans, out_chans, Destructive)); if (!at.empty()) { + boost::shared_ptr playlist = at.front()->playlist(); boost::shared_ptr copy (RegionFactory::create (region)); - at.front()->set_name (basename_nosuffix (copy->name())); - at.front()->playlist()->add_region (copy, pos); + begin_reversible_command (Operations::insert_file); + playlist->clear_changes (); + playlist->add_region (copy, pos); + _session->add_command (new StatefulDiffCommand (playlist)); + commit_reversible_command (); } break; } -- cgit v1.2.3