1
0
Fork 0
forked from len0rd/rockbox

Shortcuts & QS: Fix tree sort settings not immediately applied

Change-Id: I51158f786ad7dae46ce6201826cb35958e8014ec
This commit is contained in:
Christian Soffke 2025-04-18 23:11:54 +02:00 committed by Solomon Peachy
parent d307568410
commit 96615af033
2 changed files with 13 additions and 29 deletions

View file

@ -180,14 +180,10 @@ MAKE_MENU(tagcache_menu, ID2P(LANG_TAGCACHE), 0, Icon_NOICON,
/***********************************/ /***********************************/
/* FILE VIEW MENU */ /* FILE VIEW MENU */
static int fileview_callback(int action,
const struct menu_item_ex *this_item,
struct gui_synclist *this_list);
MENUITEM_SETTING(sort_case, &global_settings.sort_case, NULL); MENUITEM_SETTING(sort_case, &global_settings.sort_case, NULL);
MENUITEM_SETTING(sort_dir, &global_settings.sort_dir, fileview_callback); MENUITEM_SETTING(sort_dir, &global_settings.sort_dir, NULL);
MENUITEM_SETTING(sort_file, &global_settings.sort_file, fileview_callback); MENUITEM_SETTING(sort_file, &global_settings.sort_file, NULL);
MENUITEM_SETTING(interpret_numbers, &global_settings.interpret_numbers, fileview_callback); MENUITEM_SETTING(interpret_numbers, &global_settings.interpret_numbers, NULL);
MENUITEM_SETTING(dirfilter, &global_settings.dirfilter, NULL); MENUITEM_SETTING(dirfilter, &global_settings.dirfilter, NULL);
MENUITEM_SETTING(show_filename_ext, &global_settings.show_filename_ext, NULL); MENUITEM_SETTING(show_filename_ext, &global_settings.show_filename_ext, NULL);
MENUITEM_SETTING(browse_current, &global_settings.browse_current, NULL); MENUITEM_SETTING(browse_current, &global_settings.browse_current, NULL);
@ -205,25 +201,6 @@ static int clear_start_directory(void)
} }
MENUITEM_FUNCTION(clear_start_directory_item, 0, ID2P(LANG_RESET_START_DIR), MENUITEM_FUNCTION(clear_start_directory_item, 0, ID2P(LANG_RESET_START_DIR),
clear_start_directory, NULL, Icon_file_view_menu); clear_start_directory, NULL, Icon_file_view_menu);
static int fileview_callback(int action,
const struct menu_item_ex *this_item,
struct gui_synclist *this_list)
{
(void)this_list;
static int oldval;
int *variable = this_item->variable;
switch (action)
{
case ACTION_ENTER_MENUITEM: /* on entering an item */
oldval = *variable;
break;
case ACTION_EXIT_MENUITEM: /* on exit */
if (*variable != oldval)
reload_directory(); /* force reload if this has changed */
break;
}
return action;
}
static int filemenu_callback(int action, static int filemenu_callback(int action,
const struct menu_item_ex *this_item, const struct menu_item_ex *this_item,

View file

@ -65,6 +65,7 @@
#include "misc.h" /* current activity */ #include "misc.h" /* current activity */
#endif #endif
#include "playlist.h" #include "playlist.h"
#include "tree.h"
#include "voice_thread.h" #include "voice_thread.h"
@ -683,6 +684,12 @@ static void repeat_mode_callback(int repeat)
(void)repeat; (void)repeat;
} }
static void treesort_callback(int value)
{
(void) value;
reload_directory();
}
#ifdef HAVE_QUICKSCREEN #ifdef HAVE_QUICKSCREEN
static void qs_load_from_cfg(void *var, char *value) static void qs_load_from_cfg(void *var, char *value)
{ {
@ -1399,15 +1406,15 @@ const struct settings_list settings[] = {
/* file sorting */ /* file sorting */
OFFON_SETTING(0, sort_case, LANG_SORT_CASE, false, "sort case", NULL), OFFON_SETTING(0, sort_case, LANG_SORT_CASE, false, "sort case", NULL),
CHOICE_SETTING(0, sort_dir, LANG_SORT_DIR, 0 , CHOICE_SETTING(0, sort_dir, LANG_SORT_DIR, 0 ,
"sort dirs", "alpha,oldest,newest", NULL, 3, "sort dirs", "alpha,oldest,newest", treesort_callback, 3,
ID2P(LANG_SORT_ALPHA), ID2P(LANG_SORT_DATE), ID2P(LANG_SORT_ALPHA), ID2P(LANG_SORT_DATE),
ID2P(LANG_SORT_DATE_REVERSE)), ID2P(LANG_SORT_DATE_REVERSE)),
CHOICE_SETTING(0, sort_file, LANG_SORT_FILE, 0 , CHOICE_SETTING(0, sort_file, LANG_SORT_FILE, 0 ,
"sort files", "alpha,oldest,newest,type", NULL, 4, "sort files", "alpha,oldest,newest,type", treesort_callback, 4,
ID2P(LANG_SORT_ALPHA), ID2P(LANG_SORT_DATE), ID2P(LANG_SORT_ALPHA), ID2P(LANG_SORT_DATE),
ID2P(LANG_SORT_DATE_REVERSE) , ID2P(LANG_SORT_TYPE)), ID2P(LANG_SORT_DATE_REVERSE) , ID2P(LANG_SORT_TYPE)),
CHOICE_SETTING(0, interpret_numbers, LANG_SORT_INTERPRET_NUMBERS, 1, CHOICE_SETTING(0, interpret_numbers, LANG_SORT_INTERPRET_NUMBERS, 1,
"sort interpret number", "digits,numbers",NULL, 2, "sort interpret number", "digits,numbers",treesort_callback, 2,
ID2P(LANG_SORT_INTERPRET_AS_DIGIT), ID2P(LANG_SORT_INTERPRET_AS_DIGIT),
ID2P(LANG_SORT_INTERPRET_AS_NUMBERS)), ID2P(LANG_SORT_INTERPRET_AS_NUMBERS)),
CHOICE_SETTING(0, show_filename_ext, LANG_SHOW_FILENAME_EXT, 3, CHOICE_SETTING(0, show_filename_ext, LANG_SHOW_FILENAME_EXT, 3,