diff options
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; } |