fix logic errors in duplicate tracks dialog

This commit is contained in:
Paul Davis
2015-11-14 16:02:05 -05:00
parent 108634c3f3
commit 61e22d9f11
3 changed files with 20 additions and 6 deletions

View File

@@ -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

View File

@@ -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);
}

View File

@@ -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;