fix some issues with window flow when session loading fails; shrink "New Session" button in session setup dialog

This commit is contained in:
Paul Davis 2013-10-08 12:18:27 -04:00
parent 22eea8e9e2
commit 19ba3b8de7
3 changed files with 42 additions and 16 deletions

View file

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