diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-08-17 02:12:20 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-08-17 02:12:20 +0000 |
commit | 3c3a204ad32cfa167efa193b472a7b8103734613 (patch) | |
tree | f5318153b3883d3de930385392582dbb6da4148f /gtk2_ardour/route_params_ui.cc | |
parent | 199dce57f35014189f21c76fff32e0752bcc8c15 (diff) |
further optimizations for multiple-track-at-once addition. as in "whoah!"
git-svn-id: svn://localhost/ardour2/trunk@836 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/route_params_ui.cc')
-rw-r--r-- | gtk2_ardour/route_params_ui.cc | 35 |
1 files changed, 20 insertions, 15 deletions
diff --git a/gtk2_ardour/route_params_ui.cc b/gtk2_ardour/route_params_ui.cc index 8d8efad8a2..c23ed272e1 100644 --- a/gtk2_ardour/route_params_ui.cc +++ b/gtk2_ardour/route_params_ui.cc @@ -159,22 +159,26 @@ RouteParams_UI::~RouteParams_UI () } void -RouteParams_UI::add_route (boost::shared_ptr<Route> route) +RouteParams_UI::add_routes (Session::RouteList& routes) { - ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::add_route), route)); + ENSURE_GUI_THREAD(bind (mem_fun(*this, &RouteParams_UI::add_routes), routes)); - if (route->hidden()) { - return; - } - - TreeModel::Row row = *(route_display_model->append()); - row[route_display_columns.text] = route->name(); - row[route_display_columns.route] = route; + for (Session::RouteList::iterator x = routes.begin(); x != routes.end(); ++x) { + boost::shared_ptr<Route> route = (*x); - //route_select_list.rows().back().select (); - - route->name_changed.connect (bind (mem_fun(*this, &RouteParams_UI::route_name_changed), route)); - route->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::route_removed), route)); + if (route->hidden()) { + return; + } + + TreeModel::Row row = *(route_display_model->append()); + row[route_display_columns.text] = route->name(); + row[route_display_columns.route] = route; + + //route_select_list.rows().back().select (); + + route->name_changed.connect (bind (mem_fun(*this, &RouteParams_UI::route_name_changed), route)); + route->GoingAway.connect (bind (mem_fun(*this, &RouteParams_UI::route_removed), route)); + } } @@ -355,9 +359,10 @@ RouteParams_UI::set_session (Session *sess) route_display_model->clear(); if (session) { - session->foreach_route (this, &RouteParams_UI::add_route); + boost::shared_ptr<Session::RouteList> r = session->get_routes(); + add_routes (*r); session->going_away.connect (mem_fun(*this, &ArdourDialog::session_gone)); - session->RouteAdded.connect (mem_fun(*this, &RouteParams_UI::add_route)); + session->RouteAdded.connect (mem_fun(*this, &RouteParams_UI::add_routes)); start_updating (); } else { stop_updating (); |