diff --git a/apps/menus/settings_menu.c b/apps/menus/settings_menu.c index e69f50aa08..7774e05114 100644 --- a/apps/menus/settings_menu.c +++ b/apps/menus/settings_menu.c @@ -180,14 +180,10 @@ MAKE_MENU(tagcache_menu, ID2P(LANG_TAGCACHE), 0, Icon_NOICON, /***********************************/ /* 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_dir, &global_settings.sort_dir, fileview_callback); -MENUITEM_SETTING(sort_file, &global_settings.sort_file, fileview_callback); -MENUITEM_SETTING(interpret_numbers, &global_settings.interpret_numbers, fileview_callback); +MENUITEM_SETTING(sort_dir, &global_settings.sort_dir, NULL); +MENUITEM_SETTING(sort_file, &global_settings.sort_file, NULL); +MENUITEM_SETTING(interpret_numbers, &global_settings.interpret_numbers, NULL); MENUITEM_SETTING(dirfilter, &global_settings.dirfilter, NULL); MENUITEM_SETTING(show_filename_ext, &global_settings.show_filename_ext, 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), 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, const struct menu_item_ex *this_item, diff --git a/apps/settings_list.c b/apps/settings_list.c index baba308fdd..afd149c06b 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c @@ -65,6 +65,7 @@ #include "misc.h" /* current activity */ #endif #include "playlist.h" +#include "tree.h" #include "voice_thread.h" @@ -683,6 +684,12 @@ static void repeat_mode_callback(int repeat) (void)repeat; } +static void treesort_callback(int value) +{ + (void) value; + reload_directory(); +} + #ifdef HAVE_QUICKSCREEN static void qs_load_from_cfg(void *var, char *value) { @@ -1399,15 +1406,15 @@ const struct settings_list settings[] = { /* file sorting */ OFFON_SETTING(0, sort_case, LANG_SORT_CASE, false, "sort case", NULL), 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_DATE_REVERSE)), 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_DATE_REVERSE) , ID2P(LANG_SORT_TYPE)), 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_NUMBERS)), CHOICE_SETTING(0, show_filename_ext, LANG_SHOW_FILENAME_EXT, 3,