From ae32f44dc95801372b1a2a4549e0997550d16eef Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Mon, 22 Aug 2016 09:06:13 -0400 Subject: [PATCH] add insert-at combo selector for duplicate tracks dialog --- gtk2_ardour/duplicate_routes_dialog.cc | 30 ++++++++++++++++++++++++++ gtk2_ardour/duplicate_routes_dialog.h | 6 ++++++ 2 files changed, 36 insertions(+) diff --git a/gtk2_ardour/duplicate_routes_dialog.cc b/gtk2_ardour/duplicate_routes_dialog.cc index 05bb878f2c..3e34f9e381 100644 --- a/gtk2_ardour/duplicate_routes_dialog.cc +++ b/gtk2_ardour/duplicate_routes_dialog.cc @@ -49,6 +49,19 @@ DuplicateRouteDialog::DuplicateRouteDialog () playlist_button_box.pack_start (share_playlists_button, false, false); playlist_button_box.show_all (); + insert_at_combo.append_text (_("First")); + insert_at_combo.append_text (_("Before Selection")); + insert_at_combo.append_text (_("After Selection")); + insert_at_combo.append_text (_("Last")); + insert_at_combo.set_active (3); + + Gtk::Label* l = manage (new Label (_("Insert duplicates at: "))); + Gtk::HBox* b = manage (new HBox); + b->pack_start (*l, false, false, 10); + b->pack_start (insert_at_combo, true, true); + + get_vbox()->pack_end (*b, false, false, 10); + get_vbox()->show_all (); add_button (Stock::CANCEL, RESPONSE_CANCEL); @@ -179,3 +192,20 @@ DuplicateRouteDialog::on_response (int response) msg.run (); } } + +RouteDialogs::InsertAt +DuplicateRouteDialog::insert_at () +{ + using namespace RouteDialogs; + + std::string str = insert_at_combo.get_active_text(); + + if (str == _("First")) { + return First; + } else if (str == _("After Selection")) { + return AfterSelection; + } else if (str == _("Before Selection")){ + return BeforeSelection; + } + return Last; +} diff --git a/gtk2_ardour/duplicate_routes_dialog.h b/gtk2_ardour/duplicate_routes_dialog.h index 531ce9ce94..0a942cfca8 100644 --- a/gtk2_ardour/duplicate_routes_dialog.h +++ b/gtk2_ardour/duplicate_routes_dialog.h @@ -22,6 +22,7 @@ #include #include +#include #include #include #include @@ -29,6 +30,7 @@ #include "ardour/types.h" #include "ardour_dialog.h" +#include "route_dialogs.h" namespace ARDOUR { class Session; @@ -58,7 +60,11 @@ class DuplicateRouteDialog : public ArdourDialog void on_response (int); uint32_t count() const; + RouteDialogs::InsertAt insert_at(); ARDOUR::PlaylistDisposition playlist_disposition() const; + + private: + Gtk::ComboBoxText insert_at_combo; }; #endif /* __gtk_ardour_duplicate_route_dialog_h__ */