diff options
author | Carl Hetherington <carl@carlh.net> | 2011-01-21 00:58:45 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-01-21 00:58:45 +0000 |
commit | d48489ec1b20d39ba5e7023fbf75f9c8caad0a53 (patch) | |
tree | 90caf336db4d1349f7c426ce5b3893660eadf345 /gtk2_ardour/editor_audio_import.cc | |
parent | 34d8df6a37ecf44311045db440dc3ebe9ef301e9 (diff) |
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
Diffstat (limited to 'gtk2_ardour/editor_audio_import.cc')
-rw-r--r-- | gtk2_ardour/editor_audio_import.cc | 21 |
1 files changed, 16 insertions, 5 deletions
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> region, uint32_t boost::shared_ptr<Playlist> playlist = existing_track->playlist(); boost::shared_ptr<Region> 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> region, uint32_t existing_track->set_name (region->name()); } + + boost::shared_ptr<Playlist> playlist = existing_track->playlist(); boost::shared_ptr<Region> 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<boost::shared_ptr<AudioTrack> > at (_session->new_audio_track (in_chans, out_chans, Destructive)); if (!at.empty()) { + boost::shared_ptr<Playlist> playlist = at.front()->playlist(); boost::shared_ptr<Region> 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; } |