mirror of
https://github.com/libretro/RetroArch
synced 2025-03-29 22:20:21 +00:00
Several RARCH_CTL switches don't belong to retroarch state but
runloop state, hence remove
This commit is contained in:
parent
b23eaba217
commit
e798f99fea
@ -470,6 +470,7 @@ static int menu_displaylist_parse_core_info(menu_displaylist_info_t *info,
|
||||
core_info_t *core_info = NULL;
|
||||
const char *core_path = NULL;
|
||||
const char *savestate_support = NULL;
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
bool kiosk_mode_enable = settings->bools.kiosk_mode_enable;
|
||||
#if defined(HAVE_NETWORKING) && defined(HAVE_ONLINE_UPDATER)
|
||||
bool menu_show_core_updater = settings->bools.menu_show_core_updater;
|
||||
@ -693,12 +694,12 @@ static int menu_displaylist_parse_core_info(menu_displaylist_info_t *info,
|
||||
firmware_info.path = core_info->path;
|
||||
firmware_info.directory.system = settings->paths.directory_system;
|
||||
|
||||
retroarch_ctl(RARCH_CTL_UNSET_MISSING_BIOS, NULL);
|
||||
|
||||
update_missing_firmware = core_info_list_update_missing_firmware(&firmware_info, &set_missing_firmware);
|
||||
update_missing_firmware = core_info_list_update_missing_firmware(&firmware_info, &set_missing_firmware);
|
||||
|
||||
if (set_missing_firmware)
|
||||
retroarch_ctl(RARCH_CTL_SET_MISSING_BIOS, NULL);
|
||||
runloop_st->missing_bios = true;
|
||||
else
|
||||
runloop_st->missing_bios = false;
|
||||
|
||||
if (update_missing_firmware)
|
||||
{
|
||||
@ -1237,9 +1238,10 @@ static unsigned menu_displaylist_parse_core_option_override_list(
|
||||
menu_displaylist_info_t *info, settings_t *settings)
|
||||
{
|
||||
unsigned count = 0;
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
uint32_t flags = runloop_get_flags();
|
||||
bool core_has_options = !retroarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL) &&
|
||||
retroarch_ctl(RARCH_CTL_HAS_CORE_OPTIONS, NULL);
|
||||
(runloop_st->core_options);
|
||||
bool game_options_active = flags & RUNLOOP_FLAG_GAME_OPTIONS_ACTIVE;
|
||||
bool folder_options_active = flags & RUNLOOP_FLAG_FOLDER_OPTIONS_ACTIVE;
|
||||
bool show_core_options_flush = settings ?
|
||||
@ -12911,11 +12913,12 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
||||
* we therefore have to check that the current selection
|
||||
* index is less than the current number of menu entries
|
||||
* - if not, we reset the navigation pointer */
|
||||
size_t selection = menu_navigation_get_selection();
|
||||
size_t selection = menu_navigation_get_selection();
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
|
||||
menu_entries_ctl(MENU_ENTRIES_CTL_CLEAR, info->list);
|
||||
|
||||
if (retroarch_ctl(RARCH_CTL_HAS_CORE_OPTIONS, NULL))
|
||||
if (runloop_st->core_options)
|
||||
{
|
||||
bool game_specific_options = settings->bools.game_specific_options;
|
||||
const char *category = info->path;
|
||||
|
25
retroarch.c
25
retroarch.c
@ -6405,19 +6405,6 @@ bool retroarch_ctl(enum rarch_ctl_state state, void *data)
|
||||
p_rarch->flags &= ~RARCH_FLAGS_BLOCK_CONFIG_READ;
|
||||
break;
|
||||
#endif
|
||||
case RARCH_CTL_GET_CORE_OPTION_SIZE:
|
||||
{
|
||||
unsigned *idx = (unsigned*)data;
|
||||
if (!idx)
|
||||
return false;
|
||||
if (runloop_st->core_options)
|
||||
*idx = (unsigned)runloop_st->core_options->size;
|
||||
else
|
||||
*idx = 0;
|
||||
}
|
||||
break;
|
||||
case RARCH_CTL_HAS_CORE_OPTIONS:
|
||||
return (runloop_st->core_options != NULL);
|
||||
case RARCH_CTL_CORE_OPTIONS_LIST_GET:
|
||||
{
|
||||
core_option_manager_t **coreopts = (core_option_manager_t**)data;
|
||||
@ -6427,8 +6414,8 @@ bool retroarch_ctl(enum rarch_ctl_state state, void *data)
|
||||
}
|
||||
break;
|
||||
case RARCH_CTL_CORE_OPTION_UPDATE_DISPLAY:
|
||||
if (runloop_st->core_options &&
|
||||
runloop_st->core_options_callback.update_display)
|
||||
if ( runloop_st->core_options
|
||||
&& runloop_st->core_options_callback.update_display)
|
||||
{
|
||||
/* Note: The update_display() callback may read
|
||||
* core option values via RETRO_ENVIRONMENT_GET_VARIABLE.
|
||||
@ -6462,14 +6449,6 @@ bool retroarch_ctl(enum rarch_ctl_state state, void *data)
|
||||
runloop_st->flags |= RUNLOOP_FLAG_REMAPS_CONTENT_DIR_ACTIVE;
|
||||
break;
|
||||
#endif
|
||||
case RARCH_CTL_SET_MISSING_BIOS:
|
||||
runloop_st->missing_bios = true;
|
||||
break;
|
||||
case RARCH_CTL_UNSET_MISSING_BIOS:
|
||||
runloop_st->missing_bios = false;
|
||||
break;
|
||||
case RARCH_CTL_IS_MISSING_BIOS:
|
||||
return runloop_st->missing_bios;
|
||||
case RARCH_CTL_GET_PERFCNT:
|
||||
{
|
||||
bool **perfcnt = (bool**)data;
|
||||
|
@ -79,10 +79,6 @@ enum rarch_ctl_state
|
||||
RARCH_CTL_SET_REMAPS_GAME_ACTIVE,
|
||||
#endif
|
||||
|
||||
RARCH_CTL_IS_MISSING_BIOS,
|
||||
RARCH_CTL_SET_MISSING_BIOS,
|
||||
RARCH_CTL_UNSET_MISSING_BIOS,
|
||||
|
||||
RARCH_CTL_SET_SHUTDOWN,
|
||||
|
||||
/* Runloop state */
|
||||
@ -95,8 +91,6 @@ enum rarch_ctl_state
|
||||
RARCH_CTL_IS_PERFCNT_ENABLE,
|
||||
|
||||
/* Core options */
|
||||
RARCH_CTL_HAS_CORE_OPTIONS,
|
||||
RARCH_CTL_GET_CORE_OPTION_SIZE,
|
||||
RARCH_CTL_CORE_OPTIONS_LIST_GET,
|
||||
RARCH_CTL_CORE_OPTION_PREV,
|
||||
RARCH_CTL_CORE_OPTION_NEXT,
|
||||
|
@ -1854,8 +1854,9 @@ static bool firmware_update_status(
|
||||
{
|
||||
char s[PATH_MAX_LENGTH];
|
||||
core_info_ctx_firmware_t firmware_info;
|
||||
bool set_missing_firmware = false;
|
||||
core_info_t *core_info = NULL;
|
||||
bool set_missing_firmware = false;
|
||||
core_info_t *core_info = NULL;
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
|
||||
core_info_get_current_core(&core_info);
|
||||
|
||||
@ -1878,13 +1879,13 @@ static bool firmware_update_status(
|
||||
core_info->path,
|
||||
firmware_info.directory.system);
|
||||
|
||||
retroarch_ctl(RARCH_CTL_UNSET_MISSING_BIOS, NULL);
|
||||
|
||||
core_info_list_update_missing_firmware(&firmware_info,
|
||||
&set_missing_firmware);
|
||||
|
||||
if (set_missing_firmware)
|
||||
retroarch_ctl(RARCH_CTL_SET_MISSING_BIOS, NULL);
|
||||
runloop_st->missing_bios = true;
|
||||
else
|
||||
runloop_st->missing_bios = false;
|
||||
|
||||
if (
|
||||
(content_ctx->flags & CONTENT_INFO_FLAG_BIOS_IS_MISSING)
|
||||
@ -1934,7 +1935,7 @@ bool task_push_start_dummy_core(content_ctx_info_t *content_info)
|
||||
if (runloop_st->flags & RUNLOOP_FLAG_PATCH_BLOCKED)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_PATCH_IS_BLOCKED;
|
||||
#endif
|
||||
if (retroarch_ctl(RARCH_CTL_IS_MISSING_BIOS, NULL))
|
||||
if (runloop_st->missing_bios)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
content_ctx.directory_system = NULL;
|
||||
content_ctx.directory_cache = NULL;
|
||||
@ -2024,7 +2025,7 @@ bool task_push_load_content_from_playlist_from_menu(
|
||||
if (runloop_st->flags & RUNLOOP_FLAG_PATCH_BLOCKED)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_PATCH_IS_BLOCKED;
|
||||
#endif
|
||||
if (retroarch_ctl(RARCH_CTL_IS_MISSING_BIOS, NULL))
|
||||
if (runloop_st->missing_bios)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
content_ctx.directory_system = NULL;
|
||||
content_ctx.directory_cache = NULL;
|
||||
@ -2164,7 +2165,7 @@ bool task_push_start_current_core(content_ctx_info_t *content_info)
|
||||
if (runloop_st->flags & RUNLOOP_FLAG_PATCH_BLOCKED)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_PATCH_IS_BLOCKED;
|
||||
#endif
|
||||
if (retroarch_ctl(RARCH_CTL_IS_MISSING_BIOS, NULL))
|
||||
if (runloop_st->missing_bios)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
content_ctx.directory_system = NULL;
|
||||
content_ctx.directory_cache = NULL;
|
||||
@ -2283,12 +2284,12 @@ bool task_push_load_contentless_core_from_menu(
|
||||
if (string_is_empty(core_path))
|
||||
return false;
|
||||
|
||||
content_ctx.flags = 0;
|
||||
content_ctx.flags = 0;
|
||||
|
||||
if (check_firmware_before_loading)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_CHECK_FW_BEFORE_LOADING;
|
||||
if (retroarch_ctl(RARCH_CTL_IS_MISSING_BIOS, NULL))
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_CHECK_FW_BEFORE_LOADING;
|
||||
if (runloop_st->missing_bios)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
if (!string_is_empty(path_dir_system))
|
||||
content_ctx.directory_system = strdup(path_dir_system);
|
||||
|
||||
@ -2399,8 +2400,8 @@ bool task_push_load_content_with_new_core_from_menu(
|
||||
if (runloop_st->flags & RUNLOOP_FLAG_PATCH_BLOCKED)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_PATCH_IS_BLOCKED;
|
||||
#endif
|
||||
if (retroarch_ctl(RARCH_CTL_IS_MISSING_BIOS, NULL))
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
if (runloop_st->missing_bios)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
content_ctx.directory_system = NULL;
|
||||
content_ctx.directory_cache = NULL;
|
||||
content_ctx.name_ips = NULL;
|
||||
@ -2506,8 +2507,8 @@ static bool task_load_content_internal(
|
||||
if (runloop_st->flags & RUNLOOP_FLAG_PATCH_BLOCKED)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_PATCH_IS_BLOCKED;
|
||||
#endif
|
||||
if (retroarch_ctl(RARCH_CTL_IS_MISSING_BIOS, NULL))
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
if (runloop_st->missing_bios)
|
||||
content_ctx.flags |= CONTENT_INFO_FLAG_BIOS_IS_MISSING;
|
||||
content_ctx.directory_system = NULL;
|
||||
content_ctx.directory_cache = NULL;
|
||||
content_ctx.name_ips = NULL;
|
||||
|
@ -1042,8 +1042,8 @@ void CoreOptionsDialog::onCoreOptionComboBoxCurrentIndexChanged(int index)
|
||||
{
|
||||
unsigned i, k;
|
||||
QString key, val;
|
||||
size_t opts = 0;
|
||||
QComboBox *combo_box = qobject_cast<QComboBox*>(sender());
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
QComboBox *combo_box = qobject_cast<QComboBox*>(sender());
|
||||
|
||||
if (!combo_box)
|
||||
return;
|
||||
@ -1051,37 +1051,34 @@ void CoreOptionsDialog::onCoreOptionComboBoxCurrentIndexChanged(int index)
|
||||
key = combo_box->itemData(index, Qt::UserRole).toString();
|
||||
val = combo_box->itemText(index);
|
||||
|
||||
if (retroarch_ctl(RARCH_CTL_HAS_CORE_OPTIONS, NULL))
|
||||
if (runloop_st->core_options)
|
||||
{
|
||||
retroarch_ctl(RARCH_CTL_GET_CORE_OPTION_SIZE, &opts);
|
||||
core_option_manager_t *coreopts = NULL;
|
||||
|
||||
if (opts)
|
||||
retroarch_ctl(RARCH_CTL_CORE_OPTIONS_LIST_GET, &coreopts);
|
||||
|
||||
if (coreopts)
|
||||
{
|
||||
core_option_manager_t *coreopts = NULL;
|
||||
size_t opts = runloop_st->core_options->size;
|
||||
|
||||
retroarch_ctl(RARCH_CTL_CORE_OPTIONS_LIST_GET, &coreopts);
|
||||
|
||||
if (coreopts)
|
||||
for (i = 0; i < opts; i++)
|
||||
{
|
||||
for (i = 0; i < opts; i++)
|
||||
QString optKey;
|
||||
struct core_option *option = static_cast<struct core_option*>(&coreopts->opts[i]);
|
||||
|
||||
if (!option)
|
||||
continue;
|
||||
|
||||
optKey = option->key;
|
||||
|
||||
if (key == optKey)
|
||||
{
|
||||
QString optKey;
|
||||
struct core_option *option = static_cast<struct core_option*>(&coreopts->opts[i]);
|
||||
|
||||
if (!option)
|
||||
continue;
|
||||
|
||||
optKey = option->key;
|
||||
|
||||
if (key == optKey)
|
||||
for (k = 0; k < option->vals->size; k++)
|
||||
{
|
||||
for (k = 0; k < option->vals->size; k++)
|
||||
{
|
||||
QString str = option->vals->elems[k].data;
|
||||
QString str = option->vals->elems[k].data;
|
||||
|
||||
if (!str.isEmpty() && str == val)
|
||||
core_option_manager_set_val(coreopts, i, k, true);
|
||||
}
|
||||
if (!str.isEmpty() && str == val)
|
||||
core_option_manager_set_val(coreopts, i, k, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1092,138 +1089,134 @@ void CoreOptionsDialog::onCoreOptionComboBoxCurrentIndexChanged(int index)
|
||||
void CoreOptionsDialog::buildLayout()
|
||||
{
|
||||
unsigned j, k;
|
||||
size_t opts = 0;
|
||||
QFormLayout *form = NULL;
|
||||
settings_t *settings = config_get_ptr();
|
||||
bool has_core_options = retroarch_ctl(RARCH_CTL_HAS_CORE_OPTIONS, NULL);
|
||||
QFormLayout *form = NULL;
|
||||
settings_t *settings = config_get_ptr();
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
bool has_core_options = (runloop_st->core_options != NULL);
|
||||
size_t opts = (runloop_st->core_options) ? runloop_st->core_options->size : 0;
|
||||
|
||||
clearLayout();
|
||||
|
||||
if (has_core_options)
|
||||
{
|
||||
retroarch_ctl(RARCH_CTL_GET_CORE_OPTION_SIZE, &opts);
|
||||
core_option_manager_t *coreopts = NULL;
|
||||
|
||||
if (opts)
|
||||
form = new QFormLayout();
|
||||
|
||||
if (settings->bools.game_specific_options)
|
||||
{
|
||||
core_option_manager_t *coreopts = NULL;
|
||||
QString contentLabel;
|
||||
QString label;
|
||||
rarch_system_info_t *system = &runloop_st->system;
|
||||
|
||||
form = new QFormLayout();
|
||||
/* TODO/FIXME - why have this check here? system is not used */
|
||||
if (system)
|
||||
contentLabel = QFileInfo(path_get(RARCH_PATH_BASENAME)).completeBaseName();
|
||||
|
||||
if (settings->bools.game_specific_options)
|
||||
if (!contentLabel.isEmpty())
|
||||
{
|
||||
QString contentLabel;
|
||||
QString label;
|
||||
rarch_system_info_t *system = &runloop_state_get_ptr()->system;
|
||||
uint32_t flags = runloop_st->flags;
|
||||
if (flags & RUNLOOP_FLAG_GAME_OPTIONS_ACTIVE)
|
||||
label = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_IN_USE);
|
||||
else
|
||||
label = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_CREATE);
|
||||
|
||||
/* TODO/FIXME - why have this check here? system is not used */
|
||||
if (system)
|
||||
contentLabel = QFileInfo(path_get(RARCH_PATH_BASENAME)).completeBaseName();
|
||||
|
||||
if (!contentLabel.isEmpty())
|
||||
if (!label.isEmpty())
|
||||
{
|
||||
uint32_t flags = runloop_get_flags();
|
||||
if (flags & RUNLOOP_FLAG_GAME_OPTIONS_ACTIVE)
|
||||
label = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_IN_USE);
|
||||
else
|
||||
label = msg_hash_to_str(MENU_ENUM_LABEL_VALUE_GAME_SPECIFIC_OPTIONS_CREATE);
|
||||
QHBoxLayout *gameOptionsLayout = new QHBoxLayout();
|
||||
QPushButton *button = new QPushButton(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_SAVE), this);
|
||||
|
||||
if (!label.isEmpty())
|
||||
{
|
||||
QHBoxLayout *gameOptionsLayout = new QHBoxLayout();
|
||||
QPushButton *button = new QPushButton(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_SAVE), this);
|
||||
connect(button, SIGNAL(clicked()), this, SLOT(onSaveGameSpecificOptions()));
|
||||
|
||||
connect(button, SIGNAL(clicked()), this, SLOT(onSaveGameSpecificOptions()));
|
||||
gameOptionsLayout->addWidget(new QLabel(contentLabel, this));
|
||||
gameOptionsLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Preferred));
|
||||
gameOptionsLayout->addWidget(button);
|
||||
|
||||
gameOptionsLayout->addWidget(new QLabel(contentLabel, this));
|
||||
gameOptionsLayout->addSpacerItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Preferred));
|
||||
gameOptionsLayout->addWidget(button);
|
||||
|
||||
form->addRow(label, gameOptionsLayout);
|
||||
}
|
||||
form->addRow(label, gameOptionsLayout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
retroarch_ctl(RARCH_CTL_CORE_OPTIONS_LIST_GET, &coreopts);
|
||||
retroarch_ctl(RARCH_CTL_CORE_OPTIONS_LIST_GET, &coreopts);
|
||||
|
||||
if (coreopts)
|
||||
if (coreopts)
|
||||
{
|
||||
QToolButton *resetAllButton = new QToolButton(this);
|
||||
|
||||
resetAllButton->setDefaultAction(new QAction(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_RESET_ALL), this));
|
||||
connect(resetAllButton, SIGNAL(clicked()), this, SLOT(onCoreOptionResetAllClicked()));
|
||||
|
||||
for (j = 0; j < opts; j++)
|
||||
{
|
||||
QToolButton *resetAllButton = new QToolButton(this);
|
||||
QString desc =
|
||||
core_option_manager_get_desc(coreopts, j, false);
|
||||
QString val =
|
||||
core_option_manager_get_val(coreopts, j);
|
||||
QComboBox *combo_box = NULL;
|
||||
QLabel *descLabel = NULL;
|
||||
QHBoxLayout *comboLayout = NULL;
|
||||
QToolButton *resetButton = NULL;
|
||||
struct core_option *option = NULL;
|
||||
|
||||
resetAllButton->setDefaultAction(new QAction(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_RESET_ALL), this));
|
||||
connect(resetAllButton, SIGNAL(clicked()), this, SLOT(onCoreOptionResetAllClicked()));
|
||||
if (desc.isEmpty() || !coreopts->opts)
|
||||
continue;
|
||||
|
||||
for (j = 0; j < opts; j++)
|
||||
option = static_cast<struct core_option*>(&coreopts->opts[j]);
|
||||
|
||||
if (!option->vals || option->vals->size == 0)
|
||||
continue;
|
||||
|
||||
comboLayout = new QHBoxLayout();
|
||||
descLabel = new QLabel(desc, this);
|
||||
combo_box = new QComboBox(this);
|
||||
combo_box->setObjectName("coreOptionComboBox");
|
||||
resetButton = new QToolButton(this);
|
||||
resetButton->setObjectName("resetButton");
|
||||
resetButton->setDefaultAction(new QAction(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_RESET), this));
|
||||
resetButton->setProperty("comboBox",
|
||||
QVariant::fromValue(combo_box));
|
||||
|
||||
connect(resetButton, SIGNAL(clicked()),
|
||||
this, SLOT(onCoreOptionResetClicked()));
|
||||
|
||||
if (!string_is_empty(option->info))
|
||||
{
|
||||
QString desc =
|
||||
core_option_manager_get_desc(coreopts, j, false);
|
||||
QString val =
|
||||
core_option_manager_get_val(coreopts, j);
|
||||
QComboBox *combo_box = NULL;
|
||||
QLabel *descLabel = NULL;
|
||||
QHBoxLayout *comboLayout = NULL;
|
||||
QToolButton *resetButton = NULL;
|
||||
struct core_option *option = NULL;
|
||||
char *new_info;
|
||||
size_t option_info_len = strlen(option->info);
|
||||
size_t new_info_len = option_info_len + 1;
|
||||
|
||||
if (desc.isEmpty() || !coreopts->opts)
|
||||
continue;
|
||||
if (!(new_info = (char *)malloc(new_info_len)))
|
||||
return;
|
||||
new_info[0] = '\0';
|
||||
|
||||
option = static_cast<struct core_option*>(&coreopts->opts[j]);
|
||||
|
||||
if (!option->vals || option->vals->size == 0)
|
||||
continue;
|
||||
|
||||
comboLayout = new QHBoxLayout();
|
||||
descLabel = new QLabel(desc, this);
|
||||
combo_box = new QComboBox(this);
|
||||
combo_box->setObjectName("coreOptionComboBox");
|
||||
resetButton = new QToolButton(this);
|
||||
resetButton->setObjectName("resetButton");
|
||||
resetButton->setDefaultAction(new QAction(msg_hash_to_str(MENU_ENUM_LABEL_VALUE_QT_RESET), this));
|
||||
resetButton->setProperty("comboBox",
|
||||
QVariant::fromValue(combo_box));
|
||||
|
||||
connect(resetButton, SIGNAL(clicked()),
|
||||
this, SLOT(onCoreOptionResetClicked()));
|
||||
|
||||
if (!string_is_empty(option->info))
|
||||
{
|
||||
char *new_info;
|
||||
size_t option_info_len = strlen(option->info);
|
||||
size_t new_info_len = option_info_len + 1;
|
||||
|
||||
if (!(new_info = (char *)malloc(new_info_len)))
|
||||
return;
|
||||
new_info[0] = '\0';
|
||||
|
||||
word_wrap(new_info, new_info_len, option->info,
|
||||
option_info_len, 50, 100, 0);
|
||||
descLabel->setToolTip(new_info);
|
||||
combo_box->setToolTip(new_info);
|
||||
free(new_info);
|
||||
}
|
||||
|
||||
for (k = 0; k < option->vals->size; k++)
|
||||
combo_box->addItem(option->vals->elems[k].data, option->key);
|
||||
|
||||
combo_box->setCurrentText(val);
|
||||
combo_box->setProperty("default_index",
|
||||
static_cast<unsigned>(option->default_index));
|
||||
|
||||
/* Only connect the signal after setting the default item */
|
||||
connect(combo_box, SIGNAL(currentIndexChanged(int)),
|
||||
this,
|
||||
SLOT(onCoreOptionComboBoxCurrentIndexChanged(int)));
|
||||
|
||||
comboLayout->addWidget(combo_box);
|
||||
comboLayout->addWidget(resetButton);
|
||||
|
||||
form->addRow(descLabel, comboLayout);
|
||||
word_wrap(new_info, new_info_len, option->info,
|
||||
option_info_len, 50, 100, 0);
|
||||
descLabel->setToolTip(new_info);
|
||||
combo_box->setToolTip(new_info);
|
||||
free(new_info);
|
||||
}
|
||||
|
||||
form->addRow(resetAllButton, new QWidget(this));
|
||||
for (k = 0; k < option->vals->size; k++)
|
||||
combo_box->addItem(option->vals->elems[k].data, option->key);
|
||||
|
||||
m_layout->addLayout(form);
|
||||
combo_box->setCurrentText(val);
|
||||
combo_box->setProperty("default_index",
|
||||
static_cast<unsigned>(option->default_index));
|
||||
|
||||
/* Only connect the signal after setting the default item */
|
||||
connect(combo_box, SIGNAL(currentIndexChanged(int)),
|
||||
this,
|
||||
SLOT(onCoreOptionComboBoxCurrentIndexChanged(int)));
|
||||
|
||||
comboLayout->addWidget(combo_box);
|
||||
comboLayout->addWidget(resetButton);
|
||||
|
||||
form->addRow(descLabel, comboLayout);
|
||||
}
|
||||
|
||||
form->addRow(resetAllButton, new QWidget(this));
|
||||
|
||||
m_layout->addLayout(form);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2246,6 +2246,7 @@ QVector<QHash<QString, QString> > MainWindow::getCoreInfo()
|
||||
{
|
||||
int i;
|
||||
QVector<QHash<QString, QString> > infoList;
|
||||
runloop_state_t *runloop_st = runloop_state_get_ptr();
|
||||
QHash<QString, QString> currentCore = getSelectedCore();
|
||||
core_info_t *core_info = NULL;
|
||||
QByteArray currentCorePathArray = currentCore["core_path"].toUtf8();
|
||||
@ -2421,12 +2422,12 @@ QVector<QHash<QString, QString> > MainWindow::getCoreInfo()
|
||||
firmware_info.path = core_info->path;
|
||||
firmware_info.directory.system = settings->paths.directory_system;
|
||||
|
||||
retroarch_ctl(RARCH_CTL_UNSET_MISSING_BIOS, NULL);
|
||||
|
||||
update_missing_firmware = core_info_list_update_missing_firmware(&firmware_info, &set_missing_firmware);
|
||||
|
||||
if (set_missing_firmware)
|
||||
retroarch_ctl(RARCH_CTL_SET_MISSING_BIOS, NULL);
|
||||
runloop_st->missing_bios = true;
|
||||
else
|
||||
runloop_st->missing_bios = false;
|
||||
|
||||
if (update_missing_firmware)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user