From 6c43ca53342e829940a75a1ab928d386fc958403 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 16 Sep 2015 15:47:29 +0200 Subject: [PATCH] partially revert de53fac (pre-sort session list) header includes and commends remain for later use --- gtk2_ardour/session_dialog.cc | 23 ++++------------------- gtk2_ardour/session_dialog.h | 6 +++--- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/gtk2_ardour/session_dialog.cc b/gtk2_ardour/session_dialog.cc index 0e9fdd2f83..082bbf9e32 100644 --- a/gtk2_ardour/session_dialog.cc +++ b/gtk2_ardour/session_dialog.cc @@ -585,7 +585,7 @@ int SessionDialog::redisplay_recent_sessions () { std::vector session_directories; - RecentSessionsTimeSorter cmp; + RecentSessionsSorter cmp; recent_session_display.set_model (Glib::RefPtr(0)); recent_session_model->clear (); @@ -598,26 +598,11 @@ SessionDialog::redisplay_recent_sessions () recent_session_display.set_model (recent_session_model); return 0; } + // + // sort them alphabetically + sort (rs.begin(), rs.end(), cmp); - // sort by session modificaion time. - // TODO it would be nicer to sort using the model (and make the TV sortable) - std::vector< std::pair > rss; for (ARDOUR::RecentSessions::iterator i = rs.begin(); i != rs.end(); ++i) { - std::vector state_file_paths; - get_state_files_in_directory ((*i).second, state_file_paths); - if (state_file_paths.empty()) { - continue; - } - GStatBuf gsb; - if (g_stat (state_file_paths.front().c_str(), &gsb)) { - continue; - } - rss.push_back (std::make_pair((int64_t)gsb.st_mtime, (*i).second)); - } - - sort (rss.begin(), rss.end(), cmp); - - for (std::vector< std::pair >::iterator i = rss.begin(); i != rss.end(); ++i) { session_directories.push_back ((*i).second); } diff --git a/gtk2_ardour/session_dialog.h b/gtk2_ardour/session_dialog.h index 6bfddb9d82..b4beb698fe 100644 --- a/gtk2_ardour/session_dialog.h +++ b/gtk2_ardour/session_dialog.h @@ -102,9 +102,9 @@ class SessionDialog : public ArdourDialog { void setup_existing_session_page (); - struct RecentSessionsTimeSorter { - bool operator() (std::pair a, std::pair b) const { - return a.first > b.first; + struct RecentSessionsSorter { + bool operator() (std::pair a, std::pair b) const { + return ARDOUR::cmp_nocase(a.first, b.first) == -1; } };