From d620e9ce1d83738f29a80e4272202068edc452ba Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 15 Apr 2019 07:48:34 +0200 Subject: [PATCH] (UI/QT) Dehardcode core settings --- menu/menu_displaylist.c | 37 +++++++++++++++++----------------- ui/drivers/qt/options/core.cpp | 21 +++++++++++++------ 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index df73f30172..e1aa65a9f0 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -4382,6 +4382,24 @@ unsigned menu_displaylist_build_list(file_list_t *list, enum menu_displaylist_ct switch (type) { + case DISPLAYLIST_CORE_SETTINGS_LIST: + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT, + PARSE_ONLY_BOOL, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN, + PARSE_ONLY_BOOL, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE, + PARSE_ONLY_BOOL, false) == 0) + count++; + if (menu_displaylist_parse_settings_enum(list, + MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE, + PARSE_ONLY_BOOL, false) == 0) + count++; + break; case DISPLAYLIST_CONFIGURATION_SETTINGS_LIST: if (menu_displaylist_parse_settings_enum(list, MENU_ENUM_LABEL_CONFIG_SAVE_ON_EXIT, @@ -5857,6 +5875,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist case DISPLAYLIST_REWIND_SETTINGS_LIST: case DISPLAYLIST_DIRECTORY_SETTINGS_LIST: case DISPLAYLIST_CONFIGURATION_SETTINGS_LIST: + case DISPLAYLIST_CORE_SETTINGS_LIST: menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); count = menu_displaylist_build_list(info->list, type); @@ -7022,24 +7041,6 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, menu_displaylist info->need_push = true; break; } - case DISPLAYLIST_CORE_SETTINGS_LIST: - menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE, - PARSE_ONLY_BOOL, false); - menu_displaylist_parse_settings_enum(info->list, - MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE, - PARSE_ONLY_BOOL, false); - - info->need_refresh = true; - info->need_push = true; - break; case DISPLAYLIST_AUDIO_MIXER_SETTINGS_LIST: { unsigned i; diff --git a/ui/drivers/qt/options/core.cpp b/ui/drivers/qt/options/core.cpp index 90a6996c23..1decf55c01 100644 --- a/ui/drivers/qt/options/core.cpp +++ b/ui/drivers/qt/options/core.cpp @@ -23,13 +23,22 @@ CorePage::CorePage(QObject *parent) : QWidget *CorePage::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_CORE_SETTINGS_LIST); - layout->add(MENU_ENUM_LABEL_VIDEO_SHARED_CONTEXT); - layout->add(MENU_ENUM_LABEL_DUMMY_ON_CORE_SHUTDOWN); - layout->add(MENU_ENUM_LABEL_CHECK_FOR_MISSING_FIRMWARE); - layout->add(MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE); + 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);