From 1c57eef05ad73dadc3d647c973be9f37fde13a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Sun, 21 Nov 2021 21:05:45 +0100 Subject: Sort files in the browser as well --- fastiv-browser.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'fastiv-browser.c') diff --git a/fastiv-browser.c b/fastiv-browser.c index 09d7ab0..955f6a1 100644 --- a/fastiv-browser.c +++ b/fastiv-browser.c @@ -768,6 +768,19 @@ fastiv_browser_init(FastivBrowser *self) // --- Public interface -------------------------------------------------------- +static gint +entry_compare(gconstpointer a, gconstpointer b) +{ + const Entry *entry1 = a; + const Entry *entry2 = b; + GFile *location1 = g_file_new_for_path(entry1->filename); + GFile *location2 = g_file_new_for_path(entry2->filename); + gint result = fastiv_io_filecmp(location1, location2); + g_object_unref(location1); + g_object_unref(location2); + return result; +} + void fastiv_browser_load( FastivBrowser *self, FastivBrowserFilterCallback cb, const char *path) @@ -791,8 +804,6 @@ fastiv_browser_load( break; if (g_file_info_get_file_type(info) == G_FILE_TYPE_DIRECTORY) continue; - - // TODO(p): Support being passed a sort function. if (cb && !cb(g_file_info_get_name(info))) continue; @@ -801,6 +812,8 @@ fastiv_browser_load( } g_object_unref(enumerator); - // TODO(p): Sort the entries before. + // TODO(p): Support being passed a sort function. + g_array_sort(self->entries, entry_compare); + reload_thumbnails(self); } -- cgit v1.2.3