Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions intl/msg_hash_us.h
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ MSG_HASH(
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_MENU_DISABLE_KIOSK_MODE,
"Disable Kiosk Mode (Restart required)"
"Disable Kiosk Mode"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_MENU_DISABLE_KIOSK_MODE,
Expand Down Expand Up @@ -12219,7 +12219,7 @@ MSG_HASH(
)
MSG_HASH(
MENU_ENUM_LABEL_VALUE_XMB_MAIN_MENU_ENABLE_SETTINGS,
"Enable Settings Tab (Restart required)"
"Enable Settings Tab"
)
MSG_HASH(
MENU_ENUM_SUBLABEL_XMB_MAIN_MENU_ENABLE_SETTINGS,
Expand Down
42 changes: 32 additions & 10 deletions menu/cbs/menu_cbs_ok.c
Original file line number Diff line number Diff line change
Expand Up @@ -3299,16 +3299,27 @@ static void menu_input_st_string_cb_disable_kiosk_mode(void *userdata,
{
if (str && *str)
{
const char *label = menu_input_dialog_get_buffer();
settings_t *settings = config_get_ptr();
const char *path_kiosk_mode_password =
settings->paths.kiosk_mode_password;
const char *label = menu_input_dialog_get_buffer();
settings_t *settings = config_get_ptr();
const char *password = settings->paths.kiosk_mode_password;

if (string_is_equal(label, path_kiosk_mode_password))
if (string_is_equal(label, password))
{
const char *_msg = msg_hash_to_str(MSG_INPUT_KIOSK_MODE_PASSWORD_OK);

settings->bools.kiosk_mode_enable = false;

/* Refresh menu tabs list and current page */
{
struct menu_state *menu_st = menu_state_get_ptr();
menu_st->selection_ptr = 0;
menu_st->flags |= MENU_ST_FLAG_ENTRIES_NEED_REFRESH;

if (menu_st->driver_ctx->environ_cb)
menu_st->driver_ctx->environ_cb(MENU_ENVIRON_RESET_HORIZONTAL_LIST,
NULL, menu_st->userdata);
}

runloop_msg_queue_push(_msg, strlen(_msg), 1, 100, true, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_SUCCESS);
}
Expand All @@ -3328,16 +3339,27 @@ static void menu_input_st_string_cb_enable_settings(void *userdata,
{
if (str && *str)
{
const char *label =
menu_input_dialog_get_buffer();
settings_t *settings = config_get_ptr();
const char *menu_content_show_settings_password = settings->paths.menu_content_show_settings_password;
const char *label = menu_input_dialog_get_buffer();
settings_t *settings = config_get_ptr();
const char *password = settings->paths.menu_content_show_settings_password;

if (string_is_equal(label, menu_content_show_settings_password))
if (string_is_equal(label, password))
{
const char *_msg = msg_hash_to_str(MSG_INPUT_ENABLE_SETTINGS_PASSWORD_OK);

settings->bools.menu_content_show_settings = true;

/* Refresh menu tabs list and current page */
{
struct menu_state *menu_st = menu_state_get_ptr();
menu_st->selection_ptr = 0;
menu_st->flags |= MENU_ST_FLAG_ENTRIES_NEED_REFRESH;

if (menu_st->driver_ctx->environ_cb)
menu_st->driver_ctx->environ_cb(MENU_ENVIRON_RESET_HORIZONTAL_LIST,
NULL, menu_st->userdata);
}

runloop_msg_queue_push(_msg, strlen(_msg), 1, 100, true, NULL,
MESSAGE_QUEUE_ICON_DEFAULT, MESSAGE_QUEUE_CATEGORY_SUCCESS);
}
Expand Down
26 changes: 16 additions & 10 deletions menu/drivers/materialui.c
Original file line number Diff line number Diff line change
Expand Up @@ -9390,17 +9390,20 @@ static void materialui_populate_nav_bar(materialui_handle_t *mui,
}

/* > Settings */
mui->nav_bar.menu_tabs[menu_tab_index].type =
MUI_NAV_BAR_MENU_TAB_SETTINGS;
mui->nav_bar.menu_tabs[menu_tab_index].texture_index =
MUI_TEXTURE_TAB_SETTINGS;
mui->nav_bar.menu_tabs[menu_tab_index].active =
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS_TAB));
if (!settings->bools.kiosk_mode_enable)
{
mui->nav_bar.menu_tabs[menu_tab_index].type =
MUI_NAV_BAR_MENU_TAB_SETTINGS;
mui->nav_bar.menu_tabs[menu_tab_index].texture_index =
MUI_TEXTURE_TAB_SETTINGS;
mui->nav_bar.menu_tabs[menu_tab_index].active =
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_SETTINGS_TAB));

if (mui->nav_bar.menu_tabs[menu_tab_index].active)
mui->nav_bar.active_menu_tab_index = menu_tab_index;
if (mui->nav_bar.menu_tabs[menu_tab_index].active)
mui->nav_bar.active_menu_tab_index = menu_tab_index;

menu_tab_index++;
menu_tab_index++;
}

/* Cache current number of menu tabs */
mui->nav_bar.num_menu_tabs = menu_tab_index;
Expand Down Expand Up @@ -11869,7 +11872,9 @@ static void materialui_list_insert(void *userdata,
node->icon_texture_index = MUI_TEXTURE_SAVE_STATE;
node->icon_type = MUI_ICON_TYPE_INTERNAL;
}
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_UNDO_LOAD_STATE)))
else if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_UNDO_LOAD_STATE))
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS))
)
{
node->icon_texture_index = MUI_TEXTURE_UNDO_LOAD_STATE;
node->icon_type = MUI_ICON_TYPE_INTERNAL;
Expand All @@ -11878,6 +11883,7 @@ static void materialui_list_insert(void *userdata,
string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_UNDO_SAVE_STATE))
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_OVERRIDE_UNLOAD))
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS))
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE))
)
{
node->icon_texture_index = MUI_TEXTURE_UNDO_SAVE_STATE;
Expand Down
2 changes: 2 additions & 0 deletions menu/drivers/ozone.c
Original file line number Diff line number Diff line change
Expand Up @@ -2149,6 +2149,8 @@ static uintptr_t ozone_entries_icon_get_texture(
case MENU_ENUM_LABEL_CORE_OPTIONS_RESET:
case MENU_ENUM_LABEL_REMAP_FILE_RESET:
case MENU_ENUM_LABEL_OVERRIDE_UNLOAD:
case MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE:
case MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS:
return ozone->icons_textures[OZONE_ENTRIES_ICONS_TEXTURE_UNDO];
case MENU_ENUM_LABEL_CORE_OPTIONS_FLUSH:
case MENU_ENUM_LABEL_REMAP_FILE_FLUSH:
Expand Down
2 changes: 2 additions & 0 deletions menu/drivers/xmb.c
Original file line number Diff line number Diff line change
Expand Up @@ -3717,6 +3717,8 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
case MENU_ENUM_LABEL_CORE_OPTIONS_RESET:
case MENU_ENUM_LABEL_REMAP_FILE_RESET:
case MENU_ENUM_LABEL_OVERRIDE_UNLOAD:
case MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE:
case MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS:
return xmb->textures.list[XMB_TEXTURE_UNDO];
case MENU_ENUM_LABEL_CORE_OPTIONS_FLUSH:
case MENU_ENUM_LABEL_REMAP_FILE_FLUSH:
Expand Down
67 changes: 51 additions & 16 deletions menu/menu_displaylist.c
Original file line number Diff line number Diff line change
Expand Up @@ -4332,6 +4332,33 @@ static unsigned menu_displaylist_parse_information_list(file_list_t *info_list)
count++;
}

/* Move password-hidden enablers under Information if visible */
{
const char *menu_ident = menu_driver_ident();
settings_t *settings = config_get_ptr();

if ( !settings->bools.menu_content_show_settings
&& !settings->bools.kiosk_mode_enable
&& !( string_is_equal(menu_ident, "glui")
&& settings->bools.menu_materialui_show_nav_bar)
&& !string_is_empty(settings->paths.menu_content_show_settings_password))
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info_list,
MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS,
PARSE_ACTION,
false) == 0)
count++;

if ( settings->bools.kiosk_mode_enable
&& !string_is_empty(settings->paths.kiosk_mode_password))
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info_list,
MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE,
PARSE_ACTION,
false) == 0)
count++;
}

return count;
}

Expand Down Expand Up @@ -15076,6 +15103,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
MENU_ADD_CONTENT_ENTRY_DISPLAY_MAIN_TAB)
&& !settings->bools.kiosk_mode_enable;
bool show_settings = settings->bools.menu_content_show_settings
&& !settings->bools.kiosk_mode_enable
&& ( (string_is_equal(menu_ident, "rgui"))
|| (string_is_equal(menu_ident, "glui")
&& !settings->bools.menu_materialui_show_nav_bar));
Expand Down Expand Up @@ -15261,23 +15289,30 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
MENU_ENUM_LABEL_SETTINGS, PARSE_ACTION, false) == 0)
count++;

if ( !settings->bools.menu_content_show_settings
&& !string_is_empty(settings->paths.menu_content_show_settings_password))
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS,
PARSE_ACTION,
false) == 0)
count++;
/* Move password-hidden enablers under Information if visible */
if (!settings->bools.menu_show_information)
{
if ( !settings->bools.menu_content_show_settings
&& !settings->bools.kiosk_mode_enable
&& !( string_is_equal(menu_ident, "glui")
&& settings->bools.menu_materialui_show_nav_bar)
&& !string_is_empty(settings->paths.menu_content_show_settings_password))
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_XMB_MAIN_MENU_ENABLE_SETTINGS,
PARSE_ACTION,
false) == 0)
count++;

if ( settings->bools.kiosk_mode_enable
&& !string_is_empty(settings->paths.kiosk_mode_password))
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE,
PARSE_ACTION,
false) == 0)
count++;
if ( settings->bools.kiosk_mode_enable
&& !string_is_empty(settings->paths.kiosk_mode_password))
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
info->list,
MENU_ENUM_LABEL_MENU_DISABLE_KIOSK_MODE,
PARSE_ACTION,
false) == 0)
count++;
}

if (settings->bools.menu_show_information)
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(info->list,
Expand Down
74 changes: 32 additions & 42 deletions menu/menu_setting.c
Original file line number Diff line number Diff line change
Expand Up @@ -18738,43 +18738,39 @@ static bool setting_append_list(
general_read_handler,
SD_FLAG_NONE);

if ( string_is_equal(settings->arrays.menu_driver, "xmb")
|| string_is_equal(settings->arrays.menu_driver, "ozone"))
{
CONFIG_BOOL(
list, list_info,
&settings->bools.kiosk_mode_enable,
MENU_ENUM_LABEL_MENU_ENABLE_KIOSK_MODE,
MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
DEFAULT_KIOSK_MODE_ENABLE,
MENU_ENUM_LABEL_VALUE_OFF,
MENU_ENUM_LABEL_VALUE_ON,
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
(*list)[list_info->index - 1].action_ok = setting_bool_action_left_with_refresh;
(*list)[list_info->index - 1].action_left = setting_bool_action_left_with_refresh;
(*list)[list_info->index - 1].action_right = setting_bool_action_right_with_refresh;
CONFIG_BOOL(
list, list_info,
&settings->bools.kiosk_mode_enable,
MENU_ENUM_LABEL_MENU_ENABLE_KIOSK_MODE,
MENU_ENUM_LABEL_VALUE_MENU_ENABLE_KIOSK_MODE,
DEFAULT_KIOSK_MODE_ENABLE,
MENU_ENUM_LABEL_VALUE_OFF,
MENU_ENUM_LABEL_VALUE_ON,
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler,
SD_FLAG_NONE);
(*list)[list_info->index - 1].action_ok = setting_bool_action_left_with_refresh;
(*list)[list_info->index - 1].action_left = setting_bool_action_left_with_refresh;
(*list)[list_info->index - 1].action_right = setting_bool_action_right_with_refresh;

CONFIG_STRING(
list, list_info,
settings->paths.kiosk_mode_password,
sizeof(settings->paths.kiosk_mode_password),
MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD,
MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"",
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ALLOW_INPUT);
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_PASSWORD_LINE_EDIT;
(*list)[list_info->index - 1].action_start = setting_generic_action_start_default;
}
CONFIG_STRING(
list, list_info,
settings->paths.kiosk_mode_password,
sizeof(settings->paths.kiosk_mode_password),
MENU_ENUM_LABEL_MENU_KIOSK_MODE_PASSWORD,
MENU_ENUM_LABEL_VALUE_MENU_KIOSK_MODE_PASSWORD,
"",
&group_info,
&subgroup_info,
parent_group,
general_write_handler,
general_read_handler);
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ALLOW_INPUT);
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_PASSWORD_LINE_EDIT;
(*list)[list_info->index - 1].action_start = setting_generic_action_start_default;

#ifdef HAVE_THREADS
CONFIG_BOOL(
Expand Down Expand Up @@ -19355,10 +19351,6 @@ static bool setting_append_list(
#endif
#endif

#if defined(HAVE_XMB) || defined(HAVE_OZONE)
if ( string_is_equal(settings->arrays.menu_driver, "xmb")
|| string_is_equal(settings->arrays.menu_driver, "ozone"))
{
CONFIG_BOOL(
list, list_info,
&settings->bools.menu_content_show_settings,
Expand Down Expand Up @@ -19390,8 +19382,6 @@ static bool setting_append_list(
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ALLOW_INPUT | SD_FLAG_LAKKA_ADVANCED);
(*list)[list_info->index - 1].ui_type = ST_UI_TYPE_PASSWORD_LINE_EDIT;
(*list)[list_info->index - 1].action_start = setting_generic_action_start_default;
}
#endif

CONFIG_BOOL(
list, list_info,
Expand Down
Loading