summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_audio_import.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-01-21 00:58:45 +0000
committerCarl Hetherington <carl@carlh.net>2011-01-21 00:58:45 +0000
commitd48489ec1b20d39ba5e7023fbf75f9c8caad0a53 (patch)
tree90caf336db4d1349f7c426ce5b3893660eadf345 /gtk2_ardour/editor_audio_import.cc
parent34d8df6a37ecf44311045db440dc3ebe9ef301e9 (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.cc21
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;
}