recent_label.set_markup (string_compose ("<span weight=\"bold\" size=\"large\">%1</span>", _("Recent Sessions")));
recent_session_model = TreeStore::create (recent_session_columns);
+ recent_session_model->signal_sort_column_changed().connect (sigc::mem_fun (*this, &SessionDialog::recent_session_sort_changed));
+
recent_session_display.set_model (recent_session_model);
recent_session_display.append_column (_("Session Name"), recent_session_columns.visible_name);
recent_session_display.set_model (recent_session_model);
return 0;
}
- //
+
// sort them alphabetically
sort (rs.begin(), rs.end(), cmp);
child_row[recent_session_columns.time_modified] = gsb.st_mtime;
Glib::DateTime gdt(Glib::DateTime::create_now_local (gsb.st_mtime));
- child_row[recent_session_columns.time_formatted] = gdt.format ("%F");
+ child_row[recent_session_columns.time_formatted] = gdt.format ("%F %H:%M");
if (gsb.st_mtime > most_recent) {
most_recent = gsb.st_mtime;
}
Glib::DateTime gdt(Glib::DateTime::create_now_local (row[recent_session_columns.time_modified]));
- row[recent_session_columns.time_formatted] = gdt.format ("%F");
+ row[recent_session_columns.time_formatted] = gdt.format ("%F %H:%M");
}
recent_session_display.set_tooltip_column(1); // recent_session_columns.tip
pColumn->set_sort_column (recent_session_columns.time_modified); // unixtime
}
+ int32_t sort = ARDOUR_UI::config()->get_recent_session_sort();
+ if (abs(sort) != 1 + recent_session_columns.visible_name.index () &&
+ abs(sort) != 1 + recent_session_columns.time_modified.index ()) {
+ sort = 1 + recent_session_columns.visible_name.index();
+ }
+ recent_session_model->set_sort_column (abs (sort) -1, sort < 0 ? Gtk::SORT_DESCENDING : Gtk::SORT_ASCENDING);
+
return session_snapshot_count;
}
+void
+SessionDialog::recent_session_sort_changed ()
+{
+ int column;
+ SortType order;
+ if (recent_session_model->get_sort_column_id (column, order)) {
+ int32_t sort = (column + 1) * (order == Gtk::SORT_DESCENDING ? -1 : 1);
+ if (sort != ARDOUR_UI::config()->get_recent_session_sort()) {
+ ARDOUR_UI::config()->set_recent_session_sort(sort);
+ }
+ }
+}
+
void
SessionDialog::recent_session_row_selected ()
{