summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/ardour_ui.cc6
-rw-r--r--gtk2_ardour/duplicate_routes_dialog.cc14
-rw-r--r--gtk2_ardour/duplicate_routes_dialog.h6
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;