Sort files in the browser as well

This commit is contained in:
2021-11-21 21:05:45 +01:00
parent 5fea2245f1
commit 1c57eef05a
4 changed files with 40 additions and 20 deletions

View File

@@ -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);
}