diff options
-rw-r--r-- | gtk2_ardour/ardour_ui.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/duplicate_routes_dialog.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/duplicate_routes_dialog.h | 6 |
3 files changed, 20 insertions, 6 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index eb4730a545..6a9137cd6c 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -3759,9 +3759,11 @@ ARDOUR_UI::start_duplicate_routes () duplicate_routes_dialog = new DuplicateRouteDialog; } - if (duplicate_routes_dialog->restart ()) { - duplicate_routes_dialog->present (); + if (duplicate_routes_dialog->restart (_session)) { + return; } + + duplicate_routes_dialog->present (); } void diff --git a/gtk2_ardour/duplicate_routes_dialog.cc b/gtk2_ardour/duplicate_routes_dialog.cc index 6db5b158a1..d9bbc5ccaa 100644 --- a/gtk2_ardour/duplicate_routes_dialog.cc +++ b/gtk2_ardour/duplicate_routes_dialog.cc @@ -56,8 +56,14 @@ DuplicateRouteDialog::DuplicateRouteDialog () } int -DuplicateRouteDialog::restart () +DuplicateRouteDialog::restart (Session* s) { + if (!s) { + return -1; + } + + set_session (s); + TrackSelection& tracks (PublicEditor::instance().get_selection().tracks); uint32_t ntracks = 0; uint32_t nbusses = 0; @@ -91,9 +97,11 @@ DuplicateRouteDialog::restart () which is what we really want to happen here. */ - if (ntracks == 0) { + if (playlist_button_box.get_parent()) { get_vbox()->remove (playlist_button_box); - } else { + } + + if (ntracks > 0) { get_vbox()->pack_end (playlist_button_box, false, false); } diff --git a/gtk2_ardour/duplicate_routes_dialog.h b/gtk2_ardour/duplicate_routes_dialog.h index 54fa1e2e65..531ce9ce94 100644 --- a/gtk2_ardour/duplicate_routes_dialog.h +++ b/gtk2_ardour/duplicate_routes_dialog.h @@ -30,6 +30,10 @@ #include "ardour_dialog.h" +namespace ARDOUR { +class Session; +} + class Editor; class DuplicateRouteDialog : public ArdourDialog @@ -37,7 +41,7 @@ class DuplicateRouteDialog : public ArdourDialog public: DuplicateRouteDialog (); - int restart (); + int restart (ARDOUR::Session*); private: Gtk::Entry name_template_entry; |