summaryrefslogtreecommitdiff
path: root/gtk2_ardour/startup.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-09-21 13:14:33 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-09-21 13:14:33 -0400
commit482a90cccfe458c354b39e60856909eb863010f2 (patch)
treef5cd17850780140ecd8f38bfe83b38618e627803 /gtk2_ardour/startup.cc
parent2577bf55c9d3a12d6438308bdc342a4b1736e8ed (diff)
apply same always-check-display to recent sessions scroller in new session dialog
It turns out that we always create a new ArdourStartup right now, so this and the previous commit are not actually necessary, but they do pave the way for keeping the dialog around instead
Diffstat (limited to 'gtk2_ardour/startup.cc')
-rw-r--r--gtk2_ardour/startup.cc67
1 files changed, 34 insertions, 33 deletions
diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc
index 6c68f69fad..ed6d3b020e 100644
--- a/gtk2_ardour/startup.cc
+++ b/gtk2_ardour/startup.cc
@@ -546,45 +546,32 @@ ArdourStartup::setup_initial_choice_page ()
info_box->pack_start (*updates_button, false, false);
}
- ARDOUR::RecentSessions rs;
- ARDOUR::read_recent_sessions (rs);
-
- if (!rs.empty()) {
-
- /* recent session scroller */
-
- Label* load_label = manage (new Label);
- load_label->set_markup (string_compose ("<span weight=\"bold\" size=\"large\">%1</span>", _("Load a recent session")));
- load_label->set_alignment (0, 0.5);
+ /* recent session scroller */
- centering_vbox->pack_start (*load_label, false, false, 12);
-
- recent_session_model = TreeStore::create (recent_session_columns);
- redisplay_recent_sessions ();
-
- recent_session_display.set_model (recent_session_model);
- recent_session_display.append_column (_("Recent Sessions"), recent_session_columns.visible_name);
- recent_session_display.set_headers_visible (false);
- recent_session_display.get_selection()->set_mode (SELECTION_SINGLE);
+ recent_label.set_no_show_all (true);
+ recent_scroller.set_no_show_all (true);
- recent_session_display.get_selection()->signal_changed().connect (sigc::mem_fun (*this, &ArdourStartup::recent_session_row_selected));
+ recent_label.set_markup (string_compose ("<span weight=\"bold\" size=\"large\">%1</span>", _("Load a recent session")));
+ recent_label.set_alignment (0, 0.5);
- recent_scroller.add (recent_session_display);
- recent_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
- recent_scroller.set_shadow_type (Gtk::SHADOW_IN);
+ recent_session_model = TreeStore::create (recent_session_columns);
- recent_session_display.show();
+ recent_session_display.set_model (recent_session_model);
+ recent_session_display.append_column (_("Recent Sessions"), recent_session_columns.visible_name);
+ recent_session_display.set_headers_visible (false);
+ recent_session_display.get_selection()->set_mode (SELECTION_SINGLE);
- recent_scroller.show();
- recent_session_display.signal_row_activated().connect (sigc::mem_fun (*this, &ArdourStartup::recent_row_activated));
+ recent_session_display.get_selection()->signal_changed().connect (sigc::mem_fun (*this, &ArdourStartup::recent_session_row_selected));
- int cnt = redisplay_recent_sessions ();
- if (cnt > 4) {
- recent_scroller.set_size_request (-1, 300);
- }
+ recent_scroller.add (recent_session_display);
+ recent_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+ recent_scroller.set_shadow_type (Gtk::SHADOW_IN);
- centering_vbox->pack_start (recent_scroller, false, true);
- }
+ recent_session_display.show();
+ recent_session_display.signal_row_activated().connect (sigc::mem_fun (*this, &ArdourStartup::recent_row_activated));
+
+ centering_vbox->pack_start (recent_label, false, false, 12);
+ centering_vbox->pack_start (recent_scroller, false, true);
/* Browse button */
@@ -1373,7 +1360,6 @@ ArdourStartup::on_map ()
{
Gtk::Assistant::on_map ();
- redisplay_recent_sessions ();
populate_session_templates ();
if (!template_model->children().empty()) {
@@ -1383,5 +1369,20 @@ ArdourStartup::on_map ()
use_template_button.hide();
template_chooser.hide ();
}
+
+ if (recent_session_model) {
+ int cnt = redisplay_recent_sessions ();
+ if (cnt > 0) {
+ recent_scroller.show();
+ recent_label.show ();
+
+ if (cnt > 4) {
+ recent_scroller.set_size_request (-1, 300);
+ }
+ } else {
+ recent_scroller.hide();
+ recent_label.hide ();
+ }
+ }
}