mirror of
https://github.com/libretro/RetroArch
synced 2025-04-18 14:42:30 +00:00
Add enhanced search functionality to the 'Manage Cores' menu (#12516)
This commit is contained in:
parent
766c59d469
commit
3c2e3f1ce9
@ -1209,6 +1209,7 @@ static int menu_cbs_init_bind_left_compare_type(menu_file_list_cbs_t *cbs,
|
|||||||
case MENU_SETTING_GROUP:
|
case MENU_SETTING_GROUP:
|
||||||
case MENU_SETTINGS_CORE_INFO_NONE:
|
case MENU_SETTINGS_CORE_INFO_NONE:
|
||||||
case MENU_SETTING_ACTION_FAVORITES_DIR:
|
case MENU_SETTING_ACTION_FAVORITES_DIR:
|
||||||
|
case MENU_SETTING_ACTION_CORE_MANAGER_OPTIONS:
|
||||||
if (
|
if (
|
||||||
string_ends_with_size(menu_label, "_tab",
|
string_ends_with_size(menu_label, "_tab",
|
||||||
strlen(menu_label), STRLEN_CONST("_tab"))
|
strlen(menu_label), STRLEN_CONST("_tab"))
|
||||||
|
@ -1030,6 +1030,7 @@ static int menu_cbs_init_bind_right_compare_type(menu_file_list_cbs_t *cbs,
|
|||||||
case MENU_SETTING_GROUP:
|
case MENU_SETTING_GROUP:
|
||||||
case MENU_SETTINGS_CORE_INFO_NONE:
|
case MENU_SETTINGS_CORE_INFO_NONE:
|
||||||
case MENU_SETTING_ACTION_FAVORITES_DIR:
|
case MENU_SETTING_ACTION_FAVORITES_DIR:
|
||||||
|
case MENU_SETTING_ACTION_CORE_MANAGER_OPTIONS:
|
||||||
if (
|
if (
|
||||||
string_ends_with_size(menu_label, "_tab",
|
string_ends_with_size(menu_label, "_tab",
|
||||||
strlen(menu_label), STRLEN_CONST("_tab"))
|
strlen(menu_label), STRLEN_CONST("_tab"))
|
||||||
|
@ -561,7 +561,6 @@ DEFAULT_TITLE_MACRO(action_get_online_updater_list, MENU_ENUM_LABEL_
|
|||||||
DEFAULT_TITLE_MACRO(action_get_netplay_list, MENU_ENUM_LABEL_VALUE_NETPLAY)
|
DEFAULT_TITLE_MACRO(action_get_netplay_list, MENU_ENUM_LABEL_VALUE_NETPLAY)
|
||||||
DEFAULT_TITLE_MACRO(action_get_online_thumbnails_updater_list, MENU_ENUM_LABEL_VALUE_THUMBNAILS_UPDATER_LIST)
|
DEFAULT_TITLE_MACRO(action_get_online_thumbnails_updater_list, MENU_ENUM_LABEL_VALUE_THUMBNAILS_UPDATER_LIST)
|
||||||
DEFAULT_TITLE_MACRO(action_get_online_pl_thumbnails_updater_list, MENU_ENUM_LABEL_VALUE_PL_THUMBNAILS_UPDATER_LIST)
|
DEFAULT_TITLE_MACRO(action_get_online_pl_thumbnails_updater_list, MENU_ENUM_LABEL_VALUE_PL_THUMBNAILS_UPDATER_LIST)
|
||||||
DEFAULT_TITLE_MACRO(action_get_core_manager_list, MENU_ENUM_LABEL_VALUE_CORE_MANAGER_LIST)
|
|
||||||
DEFAULT_TITLE_MACRO(action_get_add_content_list, MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST)
|
DEFAULT_TITLE_MACRO(action_get_add_content_list, MENU_ENUM_LABEL_VALUE_ADD_CONTENT_LIST)
|
||||||
DEFAULT_TITLE_MACRO(action_get_configurations_list, MENU_ENUM_LABEL_VALUE_CONFIGURATIONS_LIST)
|
DEFAULT_TITLE_MACRO(action_get_configurations_list, MENU_ENUM_LABEL_VALUE_CONFIGURATIONS_LIST)
|
||||||
DEFAULT_TITLE_MACRO(action_get_core_options_list, MENU_ENUM_LABEL_VALUE_CORE_OPTIONS)
|
DEFAULT_TITLE_MACRO(action_get_core_options_list, MENU_ENUM_LABEL_VALUE_CORE_OPTIONS)
|
||||||
@ -744,6 +743,7 @@ DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_title_deferred_images_list, MENU
|
|||||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_title_deferred_music_list, MENU_ENUM_LABEL_VALUE_GOTO_MUSIC)
|
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_title_deferred_music_list, MENU_ENUM_LABEL_VALUE_GOTO_MUSIC)
|
||||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_title_deferred_video_list, MENU_ENUM_LABEL_VALUE_GOTO_VIDEO)
|
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_title_deferred_video_list, MENU_ENUM_LABEL_VALUE_GOTO_VIDEO)
|
||||||
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_core_updater_list, MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST)
|
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_core_updater_list, MENU_ENUM_LABEL_VALUE_CORE_UPDATER_LIST)
|
||||||
|
DEFAULT_TITLE_SEARCH_FILTER_MACRO(action_get_core_manager_list, MENU_ENUM_LABEL_VALUE_CORE_MANAGER_LIST)
|
||||||
|
|
||||||
DEFAULT_FILL_TITLE_SEARCH_FILTER_MACRO(action_get_title_video_shader_preset, MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_TWO)
|
DEFAULT_FILL_TITLE_SEARCH_FILTER_MACRO(action_get_title_video_shader_preset, MENU_ENUM_LABEL_VIDEO_SHADER_PRESET_TWO)
|
||||||
DEFAULT_FILL_TITLE_SEARCH_FILTER_MACRO(action_get_title_cheat_file_load, MENU_ENUM_LABEL_VALUE_CHEAT_FILE)
|
DEFAULT_FILL_TITLE_SEARCH_FILTER_MACRO(action_get_title_cheat_file_load, MENU_ENUM_LABEL_VALUE_CHEAT_FILE)
|
||||||
|
@ -8340,7 +8340,8 @@ static void materialui_populate_entries(
|
|||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PASS)) ||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_VIDEO_SHADER_PASS)) ||
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD)) ||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD)) ||
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND)) ||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND)) ||
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_OVERLAY));
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_OVERLAY)) ||
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST));
|
||||||
|
|
||||||
if (!mui->is_file_list)
|
if (!mui->is_file_list)
|
||||||
mui->is_dropdown_list = string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST)) ||
|
mui->is_dropdown_list = string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_DROPDOWN_BOX_LIST)) ||
|
||||||
|
@ -860,8 +860,9 @@ static unsigned menu_displaylist_parse_core_manager_list(
|
|||||||
|
|
||||||
if (core_info_list)
|
if (core_info_list)
|
||||||
{
|
{
|
||||||
core_info_t *core_info = NULL;
|
menu_serch_terms_t *search_terms = menu_entries_search_get_terms();
|
||||||
size_t menu_index = 0;
|
core_info_t *core_info = NULL;
|
||||||
|
size_t menu_index = 0;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
|
||||||
/* Sort cores alphabetically */
|
/* Sort cores alphabetically */
|
||||||
@ -875,6 +876,30 @@ static unsigned menu_displaylist_parse_core_manager_list(
|
|||||||
|
|
||||||
if (core_info)
|
if (core_info)
|
||||||
{
|
{
|
||||||
|
/* If a search is active, skip non-matching
|
||||||
|
* entries */
|
||||||
|
if (search_terms)
|
||||||
|
{
|
||||||
|
bool entry_valid = true;
|
||||||
|
size_t j;
|
||||||
|
|
||||||
|
for (j = 0; j < search_terms->size; j++)
|
||||||
|
{
|
||||||
|
const char *search_term = search_terms->terms[j];
|
||||||
|
|
||||||
|
if (!string_is_empty(search_term) &&
|
||||||
|
!string_is_empty(core_info->display_name) &&
|
||||||
|
!strcasestr(core_info->display_name, search_term))
|
||||||
|
{
|
||||||
|
entry_valid = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!entry_valid)
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (menu_entries_append_enum(info->list,
|
if (menu_entries_append_enum(info->list,
|
||||||
core_info->path,
|
core_info->path,
|
||||||
"",
|
"",
|
||||||
@ -11078,6 +11103,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
|||||||
* the navigation pointer if the current size is
|
* the navigation pointer if the current size is
|
||||||
* different */
|
* different */
|
||||||
static size_t prev_count = 0;
|
static size_t prev_count = 0;
|
||||||
|
size_t selection = menu_navigation_get_selection();
|
||||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||||
count = menu_displaylist_parse_core_manager_list(info,
|
count = menu_displaylist_parse_core_manager_list(info,
|
||||||
settings);
|
settings);
|
||||||
@ -11089,7 +11115,8 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
|||||||
MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY,
|
MENU_ENUM_LABEL_NO_ENTRIES_TO_DISPLAY,
|
||||||
FILE_TYPE_NONE, 0, 0);
|
FILE_TYPE_NONE, 0, 0);
|
||||||
|
|
||||||
if (count != prev_count)
|
if ((count != prev_count) ||
|
||||||
|
(selection >= count))
|
||||||
{
|
{
|
||||||
info->need_refresh = true;
|
info->need_refresh = true;
|
||||||
info->need_navigation_clear = true;
|
info->need_navigation_clear = true;
|
||||||
|
@ -5009,7 +5009,9 @@ bool menu_driver_search_filter_enabled(const char *label, unsigned type)
|
|||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD)) ||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD)) ||
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND)) ||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_FILE_LOAD_APPEND)) ||
|
||||||
/* > Overlays */
|
/* > Overlays */
|
||||||
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_OVERLAY));
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_INPUT_OVERLAY)) ||
|
||||||
|
/* > Manage Cores */
|
||||||
|
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_MANAGER_LIST));
|
||||||
|
|
||||||
return filter_enabled;
|
return filter_enabled;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user