diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-08 12:18:27 -0400 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2013-10-08 12:18:27 -0400 |
commit | 19ba3b8de787637b29dda0b9f71a1eaf8987ad93 (patch) | |
tree | 552128572f53d45d9094b14516a32dd86358112b /gtk2_ardour/session_dialog.cc | |
parent | 22eea8e9e29e91319163f63b6bdefbcbd1062714 (diff) |
fix some issues with window flow when session loading fails; shrink "New Session" button in session setup dialog
Diffstat (limited to 'gtk2_ardour/session_dialog.cc')
-rw-r--r-- | gtk2_ardour/session_dialog.cc | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/gtk2_ardour/session_dialog.cc b/gtk2_ardour/session_dialog.cc index 1eacf00d0d..996dab1cc4 100644 --- a/gtk2_ardour/session_dialog.cc +++ b/gtk2_ardour/session_dialog.cc @@ -74,11 +74,6 @@ SessionDialog::SessionDialog (bool require_new, const std::string& session_name, , _master_bus_channel_count_adj (2, 0, 100, 1, 10, 0) , _existing_session_chooser_used (false) { - if (!session_name.empty() && !require_new) { - response (RESPONSE_OK); - return; - } - set_keep_above (true); set_position (WIN_POS_CENTER); get_vbox()->set_spacing (6); @@ -143,12 +138,32 @@ SessionDialog::SessionDialog (bool require_new, const std::string& session_name, recent_label.hide (); } } + + /* possibly get out of here immediately if everything is ready to go. + We still need to set up the whole dialog because of the way + ARDOUR_UI::get_session_parameters() might skip it on a first + pass then require it for a second pass (e.g. when there + is an error with session loading and we have to ask the user + what to do next). + */ + + if (!session_name.empty() && !require_new) { + response (RESPONSE_OK); + return; + } } SessionDialog::~SessionDialog() { } +void +SessionDialog::clear_given () +{ + _provided_session_path = ""; + _provided_session_name = ""; +} + bool SessionDialog::use_session_template () { @@ -256,7 +271,9 @@ SessionDialog::setup_initial_choice_box () ic_new_session_button.signal_clicked().connect (sigc::mem_fun (*this, &SessionDialog::new_session_button_clicked)); Gtk::HBox* hbox = manage (new HBox); + Gtk::VBox* vbox = manage (new VBox); hbox->set_spacing (12); + vbox->set_spacing (12); string image_path; @@ -266,9 +283,10 @@ SessionDialog::setup_initial_choice_box () hbox->pack_start (*image, false, false); } } - - hbox->pack_start (ic_new_session_button, true, true); - + + vbox->pack_start (ic_new_session_button, true, true, 20); + hbox->pack_start (*vbox, true, true, 20); + centering_vbox->pack_start (*hbox, false, false); /* Possible update message */ |