diff options
author | Robin Gareus <robin@gareus.org> | 2016-05-03 14:06:23 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-05-03 14:27:57 +0200 |
commit | f148d70d41772bd3c3259256073d32dd9c16e55d (patch) | |
tree | 2c450bc25be554f6672f016716faeed7501bb591 /gtk2_ardour | |
parent | 4c40fe8d042a7987ea17763210dbdad8de64fb2a (diff) |
batch remove tracks
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_ops.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index a2ded69bea..a6079cac90 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -7098,6 +7098,7 @@ Editor::remove_tracks () bool Editor::idle_remove_tracks () { + Session::StateProtector sp (_session); _remove_tracks (); return false; /* do not call again */ } @@ -7201,12 +7202,17 @@ edit your ardour.rc file to set the\n\ } { - Session::StateProtector sp (_session); DisplaySuspender ds; + boost::shared_ptr<RouteList> rl (new RouteList); for (vector<boost::shared_ptr<Route> >::iterator x = routes.begin(); x != routes.end(); ++x) { - _session->remove_route (*x); + rl->push_back (*x); } + _session->remove_routes (rl); } + /* TrackSelection and RouteList leave scope, + * destructors are called, + * diskstream drops references, save_state is called (again for every track) + */ } void |