file_browser.c - Display files and folders by alphabetical order

This commit is contained in:
crazyBaboon 2022-04-03 12:40:14 +01:00 committed by GitHub
parent 64c6f73630
commit 0163faffed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 0 deletions

View File

@ -366,6 +366,13 @@ file_browser_free(struct file_browser *browser)
memset(browser, 0, sizeof(*browser)); memset(browser, 0, sizeof(*browser));
} }
int cmp_fn(const void *str1, const void *str2)
{
const char *str1_ret = *(const char **)str1;
const char *str2_ret = *(const char **)str2;
return strcmp(str1_ret, str2_ret);
}
static int static int
file_browser_run(struct file_browser *browser, struct nk_context *ctx) file_browser_run(struct file_browser *browser, struct nk_context *ctx)
{ {
@ -448,6 +455,7 @@ file_browser_run(struct file_browser *browser, struct nk_context *ctx)
if (nk_button_image(ctx,media->icons.directory)) if (nk_button_image(ctx,media->icons.directory))
index = (int)j; index = (int)j;
qsort(browser->directories, browser->dir_count, sizeof(char *), cmp_fn);
nk_label(ctx, browser->directories[j], NK_TEXT_LEFT); nk_label(ctx, browser->directories[j], NK_TEXT_LEFT);
} else { } else {
/* draw and execute files buttons */ /* draw and execute files buttons */
@ -464,6 +472,7 @@ file_browser_run(struct file_browser *browser, struct nk_context *ctx)
/* draw one column of labels */ /* draw one column of labels */
if (j >= browser->dir_count) { if (j >= browser->dir_count) {
size_t t = j - browser->dir_count; size_t t = j - browser->dir_count;
qsort(browser->files, browser->file_count, sizeof(char *), cmp_fn);
nk_label(ctx,browser->files[t],NK_TEXT_LEFT); nk_label(ctx,browser->files[t],NK_TEXT_LEFT);
} }
} }