(UI/QT) Dehardcode User Interface -> Views -> Quick Menu

This commit is contained in:
twinaphex 2019-04-15 08:00:24 +02:00
parent d620e9ce1d
commit 3d7eb19abd
2 changed files with 101 additions and 89 deletions

View File

@ -4382,6 +4382,91 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct
switch (type)
{
case DISPLAYLIST_QUICK_MENU_VIEWS_SETTINGS_LIST:
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_RECORDING,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_STREAMING,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_OPTIONS,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_CONTROLS,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_CHEATS,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (video_shader_any_supported())
{
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS,
PARSE_ONLY_BOOL, false) == 0)
count++;
}
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_CONTENT_SHOW_REWIND,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_CONTENT_SHOW_OVERLAYS,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES,
PARSE_ONLY_BOOL, false) == 0)
count++;
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION,
PARSE_ONLY_BOOL, false) == 0)
count++;
break;
case DISPLAYLIST_CORE_SETTINGS_LIST:
if (menu_displaylist_parse_settings_enum(list,
MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT,
@ -5876,6 +5961,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
case DISPLAYLIST_DIRECTORY_SETTINGS_LIST:
case DISPLAYLIST_CONFIGURATION_SETTINGS_LIST:
case DISPLAYLIST_CORE_SETTINGS_LIST:
case DISPLAYLIST_QUICK_MENU_VIEWS_SETTINGS_LIST:
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
count = menu_displaylist_build_list(info->list, type);
@ -6327,76 +6413,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist
MENU_ENUM_LABEL_RGUI_SHOW_START_SCREEN,
PARSE_ONLY_BOOL, false);
info->need_refresh = true;
info->need_push = true;
break;
case DISPLAYLIST_QUICK_MENU_VIEWS_SETTINGS_LIST:
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_RECORDING,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_STREAMING,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_OPTIONS,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_CONTROLS,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_CHEATS,
PARSE_ONLY_BOOL, false);
if (video_shader_any_supported())
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_CONTENT_SHOW_REWIND,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_CONTENT_SHOW_OVERLAYS,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES,
PARSE_ONLY_BOOL, false);
menu_displaylist_parse_settings_enum(info->list,
MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION,
PARSE_ONLY_BOOL, false);
info->need_refresh = true;
info->need_push = true;
break;

View File

@ -160,26 +160,22 @@ QuickMenuPage::QuickMenuPage(QObject *parent) :
QWidget *QuickMenuPage::widget()
{
QWidget * widget = new QWidget;
FormLayout *layout = new FormLayout;
unsigned i;
QWidget * widget = new QWidget;
FormLayout *layout = new FormLayout;
file_list_t *list = (file_list_t*)calloc(1, sizeof(*list));
unsigned count = menu_displaylist_build_list(
list, DISPLAYLIST_QUICK_MENU_VIEWS_SETTINGS_LIST);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_TAKE_SCREENSHOT);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_LOAD_STATE);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_UNDO_SAVE_LOAD_STATE);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_ADD_TO_FAVORITES);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_RECORDING);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_START_STREAMING);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_RESET_CORE_ASSOCIATION);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_OPTIONS);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_CONTROLS);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_CHEATS);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_SHADERS);
layout->add(MENU_ENUM_LABEL_CONTENT_SHOW_REWIND);
layout->add(MENU_ENUM_LABEL_CONTENT_SHOW_LATENCY);
layout->add(MENU_ENUM_LABEL_CONTENT_SHOW_OVERLAYS);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_CORE_OVERRIDES);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_SAVE_GAME_OVERRIDES);
layout->add(MENU_ENUM_LABEL_QUICK_MENU_SHOW_INFORMATION);
for (i = 0; i < list->size; i++)
{
menu_file_list_cbs_t *cbs = (menu_file_list_cbs_t*)
file_list_get_actiondata_at_offset(list, i);
layout->add(cbs->enum_idx);
}
file_list_free(list);
widget->setLayout(layout);