diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-03-09 21:40:48 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-03-09 21:40:48 +0000 |
commit | c25b921888553517f806da23ed5d9e4b3e9f3bde (patch) | |
tree | 2b4260c2056a4a81a008a1dd69dbdbe337632117 /gtk2_ardour/startup.cc | |
parent | 79f2b919211aaf60b0e31bafd162fee7c45f40b8 (diff) |
fix some logic problems with the startup/new session dialog that were introduced when new/existing were merged
git-svn-id: svn://localhost/ardour2/branches/3.0@11635 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/startup.cc')
-rw-r--r-- | gtk2_ardour/startup.cc | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc index 829f84fea7..88a576a231 100644 --- a/gtk2_ardour/startup.cc +++ b/gtk2_ardour/startup.cc @@ -593,6 +593,7 @@ ArdourStartup::setup_initial_choice_page () } ic_new_session_button.signal_button_press_event().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_press), false); + ic_new_session_button.signal_clicked().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_clicked)); ic_new_session_button.signal_activate().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_activated), false); centering_hbox->pack_start (*centering_vbox, true, true); @@ -608,10 +609,20 @@ ArdourStartup::setup_initial_choice_page () set_page_complete (ic_vbox, true); } +void +ArdourStartup::initial_button_clicked () +{ + if (ic_new_session_button.get_active ()) { + recent_session_display.get_selection()->unselect_all (); + } +} + bool ArdourStartup::initial_button_press (GdkEventButton *event) { if (event && event->type == GDK_2BUTTON_PRESS && new_session_page_index != -1) { + ic_new_session_button.set_active (true); + recent_session_display.get_selection()->unselect_all (); set_current_page (new_session_page_index); return true; } else { @@ -622,6 +633,7 @@ ArdourStartup::initial_button_press (GdkEventButton *event) void ArdourStartup::initial_button_activated () { + recent_session_display.get_selection()->unselect_all (); set_current_page (new_session_page_index); } @@ -687,6 +699,12 @@ ArdourStartup::on_prepare (Gtk::Widget* page) { if (page == &new_session_vbox) { + if (recent_session_display.get_selection()->count_selected_rows() > 0) { + /* row selected, use it */ + set_page_type (new_session_vbox, ASSISTANT_PAGE_CONFIRM); + on_apply (); + } + /* HACK HACK HACK ... change the "Apply" button label to say "Open" */ @@ -1004,9 +1022,9 @@ void ArdourStartup::recent_session_row_selected () { if (recent_session_display.get_selection()->count_selected_rows() > 0) { - set_page_complete (ic_vbox, true); + ic_new_session_button.set_active (false); } else { - set_page_complete (ic_vbox, false); + ic_new_session_button.set_active (true); } } @@ -1336,7 +1354,6 @@ ArdourStartup::recent_row_activated (const Gtk::TreePath&, Gtk::TreeViewColumn*) { ic_new_session_button.set_active (false); set_page_type (ic_vbox, ASSISTANT_PAGE_CONFIRM); - set_page_complete (ic_vbox, true); on_apply (); } @@ -1346,7 +1363,6 @@ ArdourStartup::existing_session_selected () ic_new_session_button.set_active (false); _existing_session_chooser_used = true; set_page_type (ic_vbox, ASSISTANT_PAGE_CONFIRM); - set_page_complete (ic_vbox, true); on_apply (); } |