diff options
Diffstat (limited to 'fastiv-browser.c')
-rw-r--r-- | fastiv-browser.c | 19 |
1 files changed, 16 insertions, 3 deletions
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); } |