diff options
author | nick_m <mainsbridge@gmail.com> | 2015-03-16 04:01:30 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-03-16 04:01:30 +1100 |
commit | 135e865302b5cd20a6cb0a0a4aaa682f839ffe67 (patch) | |
tree | 608cbb71aec4de5f6d2acc11f3fbec1a036de6c5 /gtk2_ardour | |
parent | a5db1d588e6bc61c26bd7d24530feeeb0283e95f (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')
-rw-r--r-- | gtk2_ardour/add_route_dialog.cc | 20 | ||||
-rw-r--r-- | gtk2_ardour/add_route_dialog.h | 3 | ||||
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 31 |
3 files changed, 31 insertions, 23 deletions
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index 24e9ca81df..990a84ba88 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -80,11 +80,12 @@ AddRouteDialog::AddRouteDialog () track_bus_combo.append_text (_("Busses")); track_bus_combo.set_active (0); - insert_at_combo.append_text (_("Editor Selection")); - insert_at_combo.append_text (_("Mixer Selection")); - insert_at_combo.append_text (_("End")); + insert_at_combo.append_text (_("First")); + insert_at_combo.append_text (_("After Editor Selection")); + insert_at_combo.append_text (_("After Mixer Selection")); + insert_at_combo.append_text (_("Last")); - insert_at_combo.set_active (0); + insert_at_combo.set_active (1); VBox* vbox = manage (new VBox); Gtk::Label* l; @@ -158,7 +159,7 @@ AddRouteDialog::AddRouteDialog () ++n; /* New route will be inserted at.. */ - l = manage (new Label (_("Insert at:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false)); + l = manage (new Label (_("Insert:"), Gtk::ALIGN_LEFT, Gtk::ALIGN_CENTER, false)); table2->attach (*l, 1, 2, n, n + 1, Gtk::FILL, Gtk::EXPAND, 0, 0); table2->attach (insert_at_combo, 2, 3, n, n + 1, Gtk::FILL, Gtk::EXPAND | Gtk::FILL, 0, 0); ++n; @@ -555,13 +556,14 @@ AddRouteDialog::insert_at () { std::string str = insert_at_combo.get_active_text(); - if (str == _("Editor Selection")) { + if (str == _("First")) { + return First; + } else if (str == _("After Editor Selection")) { return EditorSelection; - } else if (str == _("Mixer Selection")){ + } else if (str == _("After Mixer Selection")){ return MixerSelection; } - - return End; + return Last; } bool diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 9f11528e58..c4a3f1754e 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -70,7 +70,8 @@ class AddRouteDialog : public ArdourDialog enum InsertAt { EditorSelection, MixerSelection, - End + First, + Last }; InsertAt insert_at(); 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()); } } } |