From 2c41df947488671e78fc3947ed0065103024a09f Mon Sep 17 00:00:00 2001 From: Daniel Sheeler Date: Fri, 2 Jun 2017 17:23:00 -0500 Subject: add route dialog now has "Add" and "Add and Close" buttons. "Add" keeps dialog open so user can add multiple templates. --- gtk2_ardour/add_route_dialog.cc | 8 ++++---- gtk2_ardour/add_route_dialog.h | 9 +++++++++ gtk2_ardour/ardour_ui.cc | 19 ++++++++++--------- gtk2_ardour/ardour_ui.h | 2 +- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc index bb74bef2c0..c8ad0a7d09 100644 --- a/gtk2_ardour/add_route_dialog.cc +++ b/gtk2_ardour/add_route_dialog.cc @@ -194,10 +194,10 @@ AddRouteDialog::AddRouteDialog () this dialog is shown, via ::on_show() */ - add_button (Stock::CANCEL, RESPONSE_CANCEL); - add_button (Stock::ADD, RESPONSE_ACCEPT); - set_response_sensitive (RESPONSE_ACCEPT, true); - set_default_response (RESPONSE_ACCEPT); + add_button (_("Add"), Add); + add_button (_("Add and Close"), AddAndClose); + set_response_sensitive (AddAndClose, true); + set_default_response (AddAndClose); track_type_chosen (); } diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h index 1a57103926..c79fe477c8 100644 --- a/gtk2_ardour/add_route_dialog.h +++ b/gtk2_ardour/add_route_dialog.h @@ -51,6 +51,11 @@ class AddRouteDialog : public ArdourDialog AddRouteDialog (); ~AddRouteDialog (); + enum ResponseId { + Add, + AddAndClose, + }; + enum TypeWanted { AudioTrack, MidiTrack, @@ -75,6 +80,10 @@ class AddRouteDialog : public ArdourDialog RouteDialogs::InsertAt insert_at(); bool use_strict_io(); + void on_response (int response_id) { + Gtk::Dialog::on_response (response_id); + } + private: Gtk::Entry name_template_entry; Gtk::ComboBoxText track_bus_combo; diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index fd3ba20a3a..73fa305955 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -4267,7 +4267,7 @@ void ARDOUR_UI::add_route () { if (!add_route_dialog.get (false)) { - add_route_dialog->signal_response().connect (sigc::mem_fun (*this, &ARDOUR_UI::add_route_dialog_finished)); + add_route_dialog->signal_response().connect (sigc::mem_fun (*this, &ARDOUR_UI::add_route_dialog_response)); } if (!_session) { @@ -4284,18 +4284,19 @@ ARDOUR_UI::add_route () } void -ARDOUR_UI::add_route_dialog_finished (int r) +ARDOUR_UI::add_route_dialog_response (int r) { int count; - add_route_dialog->hide(); - switch (r) { - case RESPONSE_ACCEPT: - break; - default: - return; - break; + case AddRouteDialog::Add: + break; + case AddRouteDialog::AddAndClose: + add_route_dialog->ArdourDialog::on_response (r); + break; + default: + add_route_dialog->ArdourDialog::on_response (r); + return; } if ((count = add_route_dialog->count()) <= 0) { diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h index 93a9a0ef73..b2240ad4ff 100644 --- a/gtk2_ardour/ardour_ui.h +++ b/gtk2_ardour/ardour_ui.h @@ -268,7 +268,7 @@ public: void synchronize_sync_source_and_video_pullup (); void add_route (); - void add_route_dialog_finished (int); + void add_route_dialog_response (int); void add_routes_part_two (); void add_routes_thread (); -- cgit v1.2.3