diff --git a/CHANGES.md b/CHANGES.md index 0ddf01b29a..4adbdf50d1 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -21,6 +21,8 @@ - MENU/QT/WIMP: Initial grid view. - MENU/QT/WIMP: Drag&drop to add new playlist items, add option to add/edit/delete playlists. - MENU/QT/WIMP: Add menu option to update RetroArch (Windows only for now). +- MENU/XMB: Add new icons for the settings +- MENU/XMB: Add an option to show the desktop ui - METAL: Initial work-in-progress video driver for Metal. macOS-only right now, and currently requires macOS 10.13. - METAL: Supports XMB/MaterialUI, has a menu display driver. Has a font rendering driver. - METAL/SLANG: Slang shaders should be compatible with Metal video driver. @@ -91,7 +93,7 @@ video drivers that implement it (D3D8/9/10/11/12/GL) - MENU/RGUI: D3D8/D3D9: Hookup Menu Linear Filter - MENU/XMB: Disable XMB shadow icons by default for PowerPC and ARM for performance reasons. - MENU/XMB: Left/right thumbnails are now automatically scaled according to layout. -- MENU/XMB: Add Left Thumbnails (additional to the right). +- MENU/XMB: Add Left Thumbnails (additional to the right). - MENU/XMB: Fixed left/right tab regression. - MENU/XMB: Fix scaling of tall images that were cut on bottom previously. - MENU/XMB: Menu scale factor setting now changes texts length, image scaling and margins. diff --git a/intl/msg_hash_es.h b/intl/msg_hash_es.h index 7341519c4b..d90679a1cf 100644 --- a/intl/msg_hash_es.h +++ b/intl/msg_hash_es.h @@ -6417,6 +6417,14 @@ MSG_HASH( "
  • reiniciar RetroArch si actualizaste algo con el \"Actualizador en línea\"
  • \n" "Por último, el contenido debe coincidir las bases de datos existente de aquí. Si aún no funciona, considere enviar un reporte de error." ) +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SHOW_WIMP, + "Mostrar el menú de escritorio" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_SHOW_WIMP, + "Abre el menú de escritorio si fue cerrado" + ) #endif MSG_HASH( MENU_ENUM_LABEL_VALUE_QT_DONT_SHOW_AGAIN, diff --git a/intl/msg_hash_us.h b/intl/msg_hash_us.h index c1a98f01ac..0815a52aaf 100644 --- a/intl/msg_hash_us.h +++ b/intl/msg_hash_us.h @@ -3839,6 +3839,14 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_SCAN_FINISHED, "
  • have \"Databases\" updated via Online Updater
  • \n" "
  • restart RetroArch if any of the above was just done
  • \n" "Finally, the content must match existing databases from here. If it is still not working, consider submitting a bug report.") +MSG_HASH( + MENU_ENUM_LABEL_VALUE_SHOW_WIMP, + "Show Desktop Menu" + ) +MSG_HASH( + MENU_ENUM_SUBLABEL_SHOW_WIMP, + "Opens the desktop menu if it was closed" + ) #endif MSG_HASH(MENU_ENUM_LABEL_VALUE_QT_DONT_SHOW_AGAIN, "Don't show this again") diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 5991b04d77..6135befeed 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -88,6 +88,9 @@ enum ACTION_OK_SET_PATH_VIDEO_FILTER, ACTION_OK_SET_PATH_OVERLAY, ACTION_OK_SET_DIRECTORY, +#ifdef HAVE_QT + ACTION_OK_SHOW_WIMP, +#endif ACTION_OK_LOAD_CHEAT_FILE_APPEND }; @@ -820,11 +823,11 @@ int generic_action_ok_displaylist_push(const char *path, case ACTION_OK_DL_DEFERRED_CORE_LIST_SET: info.directory_ptr = idx; menu->scratchpad.unsigned_var = (unsigned)idx; - info_path = + info_path = settings->paths.directory_libretro; info_label = msg_hash_to_str( MENU_ENUM_LABEL_DEFERRED_CORE_LIST_SET); - info.enum_idx = + info.enum_idx = MENU_ENUM_LABEL_DEFERRED_CORE_LIST_SET; dl_type = DISPLAYLIST_GENERIC; break; @@ -1525,7 +1528,7 @@ static int action_ok_file_load(const char *path, if (filebrowser_get_type() == FILEBROWSER_SELECT_FILE_SUBSYSTEM) { - /* TODO/FIXME - this path is triggered when we try to load a + /* TODO/FIXME - this path is triggered when we try to load a * file from an archive while inside the load subsystem * action */ menu_handle_t *menu = NULL; @@ -1676,7 +1679,7 @@ static int action_ok_playlist_entry_collection(const char *path, core_info.inf->display_name, NULL, NULL); - } + } else strlcpy(new_core_path, core_path, sizeof(new_core_path)); @@ -1750,7 +1753,7 @@ static int action_ok_playlist_entry(const char *path, core_info.inf->display_name, NULL, NULL); - + } else if (!string_is_empty(core_path)) strlcpy(new_core_path, core_path, sizeof(new_core_path)); @@ -1813,9 +1816,9 @@ static int action_ok_playlist_entry_start_content(const char *path, if (!core_info_find(&core_info, new_core_path)) found_associated_core = false; - /* TODO: figure out if this should refer to + /* TODO: figure out if this should refer to * the inner or outer entry_path. */ - /* TODO: make sure there's only one entry_path + /* TODO: make sure there's only one entry_path * in this function. */ if (!found_associated_core) return action_ok_file_load_with_detect_core(entry_path, @@ -2111,7 +2114,7 @@ static void menu_input_st_string_cb_rename_entry(void *userdata, NULL); } - + menu_input_dialog_end(); } @@ -2719,7 +2722,7 @@ static int action_ok_cheat_add_bottom(const char *path, cheat_manager_realloc(new_size, CHEAT_HANDLER_TYPE_RETRO); msg[0] = '\0'; - strlcpy(msg, + strlcpy(msg, msg_hash_to_str(MSG_CHEAT_ADD_BOTTOM_SUCCESS), sizeof(msg)); msg[sizeof(msg) - 1] = 0; @@ -3167,7 +3170,6 @@ static void cb_generic_dir_download(void *task_data, void *user_data, const char *err) { file_transfer_t *transf = (file_transfer_t*)user_data; - if (transf) { generic_action_ok_network(transf->path, transf->path, 0, 0, 0, @@ -3521,15 +3523,17 @@ int (func_name)(const char *path, const char *label, unsigned type, size_t idx, return generic_action_ok_command(cmd); \ } -default_action_ok_cmd_func(action_ok_cheat_apply_changes,CMD_EVENT_CHEATS_APPLY) -default_action_ok_cmd_func(action_ok_quit, CMD_EVENT_QUIT) -default_action_ok_cmd_func(action_ok_save_new_config, CMD_EVENT_MENU_SAVE_CONFIG) -default_action_ok_cmd_func(action_ok_resume_content, CMD_EVENT_RESUME) -default_action_ok_cmd_func(action_ok_restart_content, CMD_EVENT_RESET) -default_action_ok_cmd_func(action_ok_screenshot, CMD_EVENT_TAKE_SCREENSHOT) -default_action_ok_cmd_func(action_ok_disk_cycle_tray_status, CMD_EVENT_DISK_EJECT_TOGGLE ) -default_action_ok_cmd_func(action_ok_shader_apply_changes, CMD_EVENT_SHADERS_APPLY_CHANGES ) - +default_action_ok_cmd_func(action_ok_cheat_apply_changes, CMD_EVENT_CHEATS_APPLY) +default_action_ok_cmd_func(action_ok_quit, CMD_EVENT_QUIT) +default_action_ok_cmd_func(action_ok_save_new_config, CMD_EVENT_MENU_SAVE_CONFIG) +default_action_ok_cmd_func(action_ok_resume_content, CMD_EVENT_RESUME) +default_action_ok_cmd_func(action_ok_restart_content, CMD_EVENT_RESET) +default_action_ok_cmd_func(action_ok_screenshot, CMD_EVENT_TAKE_SCREENSHOT) +default_action_ok_cmd_func(action_ok_disk_cycle_tray_status, CMD_EVENT_DISK_EJECT_TOGGLE) +default_action_ok_cmd_func(action_ok_shader_apply_changes, CMD_EVENT_SHADERS_APPLY_CHANGES) +#ifdef HAVE_QT +default_action_ok_cmd_func(action_ok_show_wimp, CMD_EVENT_UI_COMPANION_TOGGLE) +#endif static int action_ok_reset_core_association(const char *path, const char *label, unsigned type, size_t idx, size_t entry_idx) @@ -3944,7 +3948,7 @@ void netplay_refresh_rooms_menu(file_list_t *list) char country[PATH_MAX_LENGTH] = {0}; if (*netplay_room_list[i].country) - string_add_between_pairs(country, netplay_room_list[i].country, + string_add_between_pairs(country, netplay_room_list[i].country, sizeof(country)); /* Uncomment this to debug mismatched room parameters*/ @@ -4739,6 +4743,11 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS: BIND_ACTION_OK(cbs, action_ok_enable_settings); break; +#ifdef HAVE_QT + case MENU_ENUM_LABEL_SHOW_WIMP: + BIND_ACTION_OK(cbs, action_ok_show_wimp); + break; +#endif case MENU_ENUM_LABEL_QUIT_RETROARCH: BIND_ACTION_OK(cbs, action_ok_quit); break; diff --git a/menu/cbs/menu_cbs_sublabel.c b/menu/cbs/menu_cbs_sublabel.c index d9fea4d60f..25ef29af8a 100644 --- a/menu/cbs/menu_cbs_sublabel.c +++ b/menu/cbs/menu_cbs_sublabel.c @@ -461,7 +461,9 @@ default_sublabel_macro(action_bind_sublabel_midi_output, default_sublabel_macro(action_bind_sublabel_midi_volume, MENU_ENUM_SUBLABEL_MIDI_VOLUME) default_sublabel_macro(action_bind_sublabel_onscreen_overlay_settings_list, MENU_ENUM_SUBLABEL_ONSCREEN_OVERLAY_SETTINGS) default_sublabel_macro(action_bind_sublabel_onscreen_notifications_settings_list, MENU_ENUM_SUBLABEL_ONSCREEN_NOTIFICATIONS_SETTINGS) - +#ifdef HAVE_QT +default_sublabel_macro(action_bind_sublabel_show_wimp, MENU_ENUM_SUBLABEL_SHOW_WIMP) +#endif static int action_bind_sublabel_cheevos_entry( file_list_t *list, @@ -1942,6 +1944,11 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs, case MENU_ENUM_LABEL_ONSCREEN_NOTIFICATIONS_SETTINGS: BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_onscreen_notifications_settings_list); break; +#ifdef HAVE_QT + case MENU_ENUM_LABEL_SHOW_WIMP: + BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_show_wimp); + break; +#endif default: case MSG_UNKNOWN: return -1; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 6584de207f..ceccd0aa8e 100755 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2359,6 +2359,9 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb, return xmb->textures.list[XMB_TEXTURE_RECORD]; case MENU_ENUM_LABEL_ONSCREEN_DISPLAY_SETTINGS: return xmb->textures.list[XMB_TEXTURE_OSD]; +#ifdef HAVE_QT + case MENU_ENUM_LABEL_SHOW_WIMP: +#endif case MENU_ENUM_LABEL_USER_INTERFACE_SETTINGS: return xmb->textures.list[XMB_TEXTURE_UI]; case MENU_ENUM_LABEL_POWER_MANAGEMENT_SETTINGS: @@ -5263,6 +5266,13 @@ static int xmb_list_push(void *data, void *userdata, entry.enum_idx = MENU_ENUM_LABEL_ADD_CONTENT_LIST; menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry); +#ifdef HAVE_QT + if (settings->bools.desktop_menu_enable) + { + entry.enum_idx = MENU_ENUM_LABEL_SHOW_WIMP; + menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry); + } +#endif #if defined(HAVE_NETWORKING) { settings_t *settings = config_get_ptr(); @@ -5307,7 +5317,6 @@ static int xmb_list_push(void *data, void *userdata, entry.enum_idx = MENU_ENUM_LABEL_HELP_LIST; menu_displaylist_ctl(DISPLAYLIST_SETTING_ENUM, &entry); } - #if !defined(IOS) if (settings->bools.menu_show_quit_retroarch) { diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 962eedebbf..1801b78e16 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4857,7 +4857,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) string_is_equal(core_path, path_get(RARCH_PATH_CORE))) { strlcpy(new_path_entry, core_path, sizeof(new_path_entry)); - snprintf(new_entry, sizeof(new_entry), "%s (%s)", + snprintf(new_entry, sizeof(new_entry), "%s (%s)", msg_hash_to_str(MENU_ENUM_LABEL_VALUE_DETECT_CORE_LIST_OK_CURRENT_CORE), core_name); new_lbl_entry[0] = '\0'; @@ -5538,7 +5538,11 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_MENU_SHOW_HELP, PARSE_ONLY_BOOL, false); - +#ifdef HAVE_QT + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_SHOW_WIMP, + PARSE_ONLY_UINT, false); +#endif menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_MENU_SHOW_QUIT_RETROARCH, PARSE_ONLY_BOOL, false); @@ -6291,11 +6295,11 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_SCREEN_RESOLUTION, PARSE_ACTION, false); - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION, + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION, PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(menu, info, - MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER, + menu_displaylist_parse_settings_enum(menu, info, + MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER, PARSE_ONLY_UINT, false); menu_displaylist_parse_settings_enum(menu, info, MENU_ENUM_LABEL_PAL60_ENABLE, @@ -6908,7 +6912,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) { settings_t *settings = config_get_ptr(); - if (settings->bools.quick_menu_show_save_core_overrides + if (settings->bools.quick_menu_show_save_core_overrides && !settings->bools.kiosk_mode_enable) { menu_entries_append_enum(info->list, @@ -6919,7 +6923,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) count++; } - if (settings->bools.quick_menu_show_save_content_dir_overrides + if (settings->bools.quick_menu_show_save_content_dir_overrides && !settings->bools.kiosk_mode_enable) { menu_entries_append_enum(info->list, @@ -6930,7 +6934,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data) count++; } - if (settings->bools.quick_menu_show_save_game_overrides + if (settings->bools.quick_menu_show_save_game_overrides && !settings->bools.kiosk_mode_enable) { menu_entries_append_enum(info->list, diff --git a/menu/menu_setting.c b/menu/menu_setting.c index 4fb276be24..40f65a60a2 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -2468,7 +2468,16 @@ static bool setting_append_list( &subgroup_info, parent_group); settings_data_list_current_add_flags(list, list_info, SD_FLAG_LAKKA_ADVANCED); - +#ifdef HAVE_QT + CONFIG_ACTION( + list, list_info, + MENU_ENUM_LABEL_SHOW_WIMP, + MENU_ENUM_LABEL_VALUE_SHOW_WIMP, + &group_info, + &subgroup_info, + parent_group); + menu_settings_list_current_add_cmd(list, list_info, CMD_EVENT_UI_COMPANION_TOGGLE); +#endif #if !defined(IOS) /* Apple rejects iOS apps that let you forcibly quit them. */ CONFIG_ACTION( @@ -3497,7 +3506,7 @@ static bool setting_append_list( case SETTINGS_LIST_CHEAT_SEARCH: if ( ! cheat_manager_state.cheats ) break ; - + START_GROUP(list, list_info, &group_info, msg_hash_to_str(MENU_ENUM_LABEL_VALUE_CHEAT_SEARCH_SETTINGS), parent_group); parent_group = msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_SEARCH_SETTINGS); @@ -3764,9 +3773,9 @@ static bool setting_append_list( general_write_handler, general_read_handler, SD_FLAG_NONE); - - - CONFIG_BOOL( + + + CONFIG_BOOL( list, list_info, &settings->bools.crt_switch_resolution, MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION, @@ -3780,18 +3789,18 @@ static bool setting_append_list( general_write_handler, general_read_handler, SD_FLAG_ADVANCED - ); - + ); + CONFIG_UINT( - list, list_info, - &settings->uints.crt_switch_resolution_super, - MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER, - MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, - crt_switch_resolution_super, - &group_info, - &subgroup_info, - parent_group, - general_write_handler, + list, list_info, + &settings->uints.crt_switch_resolution_super, + MENU_ENUM_LABEL_CRT_SWITCH_RESOLUTION_SUPER, + MENU_ENUM_LABEL_VALUE_CRT_SWITCH_RESOLUTION_SUPER, + crt_switch_resolution_super, + &group_info, + &subgroup_info, + parent_group, + general_write_handler, general_read_handler); settings_data_list_current_add_flags(list, list_info, SD_FLAG_ADVANCED); diff --git a/msg_hash.h b/msg_hash.h index 1c7837abf9..a696ee5ca0 100644 --- a/msg_hash.h +++ b/msg_hash.h @@ -1496,6 +1496,9 @@ enum msg_hash_enums MENU_LABEL(BUILDBOT_ASSETS_URL), MENU_LABEL(CORE_SET_SUPPORTS_NO_CONTENT_ENABLE), MENU_LABEL(CLOSE_CONTENT), +#ifdef HAVE_QT + MENU_LABEL(SHOW_WIMP), +#endif MENU_LABEL(QUIT_RETROARCH), MENU_LABEL(SHUTDOWN), MENU_LABEL(REBOOT), diff --git a/ui/drivers/ui_qt.cpp b/ui/drivers/ui_qt.cpp index 067cf7b661..e17954bf5a 100644 --- a/ui/drivers/ui_qt.cpp +++ b/ui/drivers/ui_qt.cpp @@ -607,6 +607,11 @@ static void ui_companion_qt_toggle(void *data, bool force) #endif if (settings->bools.ui_companion_toggle || force) { + if (settings->bools.video_fullscreen) + command_event(CMD_EVENT_FULLSCREEN_TOGGLE, NULL); + + win_handle->qtWindow->activateWindow(); + win_handle->qtWindow->raise(); video_driver_show_mouse(); win_handle->qtWindow->show();