summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Sheeler <dsheeler@pobox.com>2017-06-02 17:23:00 -0500
committerDaniel Sheeler <dsheeler@pobox.com>2017-06-03 21:44:48 -0500
commit2c41df947488671e78fc3947ed0065103024a09f (patch)
tree8573161acabaea18e028f29f6c9777cee256c8de
parent11ba1854b398c72e93cd42efeec6aa48a4e9a125 (diff)
add route dialog now has "Add" and "Add and Close" buttons. "Add" keeps dialog open so user can add multiple templates.
-rw-r--r--gtk2_ardour/add_route_dialog.cc8
-rw-r--r--gtk2_ardour/add_route_dialog.h9
-rw-r--r--gtk2_ardour/ardour_ui.cc19
-rw-r--r--gtk2_ardour/ardour_ui.h2
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 ();