summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-05-03 14:06:23 +0200
committerRobin Gareus <robin@gareus.org>2016-05-03 14:27:57 +0200
commitf148d70d41772bd3c3259256073d32dd9c16e55d (patch)
tree2c450bc25be554f6672f016716faeed7501bb591 /gtk2_ardour
parent4c40fe8d042a7987ea17763210dbdad8de64fb2a (diff)
batch remove tracks
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_ops.cc10
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