diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 95f2549667..e21adb4846 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2422,12 +2422,16 @@ loop: menu_settings_list_increment(&setting); } - if (count == 0 && add_empty_entry) - menu_entries_append_enum(info->list, - msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_SETTINGS_FOUND), - msg_hash_to_str(MENU_ENUM_LABEL_NO_SETTINGS_FOUND), - MENU_ENUM_LABEL_NO_SETTINGS_FOUND, - 0, 0, 0); + if (count == 0) + { + if (add_empty_entry) + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_SETTINGS_FOUND), + msg_hash_to_str(MENU_ENUM_LABEL_NO_SETTINGS_FOUND), + MENU_ENUM_LABEL_NO_SETTINGS_FOUND, + 0, 0, 0); + return -1; + } return 0; } @@ -4624,15 +4628,28 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) info->need_push = true; break; case DISPLAYLIST_UPDATER_SETTINGS_LIST: - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_CORE_UPDATER_BUILDBOT_URL, - PARSE_ONLY_STRING, false); - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_BUILDBOT_ASSETS_URL, - PARSE_ONLY_STRING, false); - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE, - PARSE_ONLY_BOOL, false); + { + unsigned count = 0; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_CORE_UPDATER_BUILDBOT_URL, + PARSE_ONLY_STRING, false) != -1) + count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_BUILDBOT_ASSETS_URL, + PARSE_ONLY_STRING, false) != -1) + count++; + if (menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_CORE_UPDATER_AUTO_EXTRACT_ARCHIVE, + PARSE_ONLY_BOOL, false) != -1) + count++; + + if (count == 0) + menu_entries_append_enum(info->list, + msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NO_SETTINGS_FOUND), + msg_hash_to_str(MENU_ENUM_LABEL_NO_SETTINGS_FOUND), + MENU_ENUM_LABEL_NO_SETTINGS_FOUND, + 0, 0, 0); + } info->need_refresh = true; info->need_push = true;