summaryrefslogtreecommitdiff
path: root/gtk2_ardour/ardour_ui.cc
diff options
context:
space:
mode:
authornick_m <mainsbridge@gmail.com>2015-03-16 04:01:30 +1100
committernick_m <mainsbridge@gmail.com>2015-03-16 04:01:30 +1100
commit135e865302b5cd20a6cb0a0a4aaa682f839ffe67 (patch)
tree608cbb71aec4de5f6d2acc11f3fbec1a036de6c5 /gtk2_ardour/ardour_ui.cc
parenta5db1d588e6bc61c26bd7d24530feeeb0283e95f (diff)
Add route dialog order hint changes.
Add an option to insert new routes at the top of the list ("First"). Reorder/rename the entries in the dialog. Session's _order_hint is now the signed int it always wanted to be.
Diffstat (limited to 'gtk2_ardour/ardour_ui.cc')
-rw-r--r--gtk2_ardour/ardour_ui.cc31
1 files changed, 18 insertions, 13 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index f94a68d759..fee23d9d13 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -3458,6 +3458,8 @@ ARDOUR_UI::setup_order_hint (AddRouteDialog::InsertAt place)
if (!mixer->selection().routes.empty()) {
order_hint++;
+ } else {
+ return;
}
} else if (place == AddRouteDialog::EditorSelection){
@@ -3470,29 +3472,32 @@ ARDOUR_UI::setup_order_hint (AddRouteDialog::InsertAt place)
if (!editor->get_selection().tracks.empty()) {
order_hint++;
+ } else {
+ return;
}
+
+ } else if (place == AddRouteDialog::First) {
+ order_hint = 0;
} else {
- /** AddRouteDialog::End
- * an order hint of '0' means place new routes at the end.
- * do nothing
+ /** AddRouteDialog::Last
+ * not setting an order hint will place new routes last.
*/
+ return;
}
_session->set_order_hint (order_hint);
/* create a gap in the existing route order keys to accomodate new routes.*/
- if (order_hint != 0) {
- boost::shared_ptr <RouteList> rd = _session->get_routes();
- for (RouteList::iterator ri = rd->begin(); ri != rd->end(); ++ri) {
- boost::shared_ptr<Route> rt (*ri);
+ boost::shared_ptr <RouteList> rd = _session->get_routes();
+ for (RouteList::iterator ri = rd->begin(); ri != rd->end(); ++ri) {
+ boost::shared_ptr<Route> rt (*ri);
- if (rt->is_monitor()) {
- continue;
- }
+ if (rt->is_monitor()) {
+ continue;
+ }
- if (rt->order_key () >= order_hint) {
- rt->set_order_key (rt->order_key () + add_route_dialog->count());
- }
+ if (rt->order_key () >= order_hint) {
+ rt->set_order_key (rt->order_key () + add_route_dialog->count());
}
}
}