Qt: fix handler not found in pad settings after changing language

This commit is contained in:
Megamouse 2025-03-20 00:04:54 +01:00
parent 971fd40353
commit 24b6b6cad5

View file

@ -27,7 +27,6 @@
LOG_CHANNEL(cfg_log, "CFG");
inline std::string sstr(const QString& _in) { return _in.toStdString(); }
constexpr auto qstr = QString::fromStdString;
cfg_input_configurations g_cfg_input_configs;
@ -77,7 +76,7 @@ pad_settings_dialog::pad_settings_dialog(std::shared_ptr<gui_settings> gui_setti
if (game)
{
m_title_id = game->serial;
setWindowTitle(tr("Gamepad Settings: [%0] %1").arg(qstr(game->serial)).arg(qstr(game->name).simplified()));
setWindowTitle(tr("Gamepad Settings: [%0] %1").arg(QString::fromStdString(game->serial)).arg(QString::fromStdString(game->name).simplified()));
}
else
{
@ -89,13 +88,13 @@ pad_settings_dialog::pad_settings_dialog(std::shared_ptr<gui_settings> gui_setti
if (m_title_id.empty())
{
const QString input_config_dir = qstr(rpcs3::utils::get_input_config_dir(m_title_id));
const QString input_config_dir = QString::fromStdString(rpcs3::utils::get_input_config_dir(m_title_id));
QStringList config_files = gui::utils::get_dir_entries(QDir(input_config_dir), QStringList() << "*.yml");
QString active_config_file = qstr(g_cfg_input_configs.active_configs.get_value(g_cfg_input_configs.global_key));
QString active_config_file = QString::fromStdString(g_cfg_input_configs.active_configs.get_value(g_cfg_input_configs.global_key));
if (!config_files.contains(active_config_file))
{
const QString default_config_file = qstr(g_cfg_input_configs.default_config);
const QString default_config_file = QString::fromStdString(g_cfg_input_configs.default_config);
if (!config_files.contains(default_config_file) && CreateConfigFile(input_config_dir, default_config_file))
{
@ -114,7 +113,7 @@ pad_settings_dialog::pad_settings_dialog(std::shared_ptr<gui_settings> gui_setti
}
else
{
ui->chooseConfig->addItem(qstr(m_title_id));
ui->chooseConfig->addItem(QString::fromStdString(m_title_id));
ui->gb_config_files->setEnabled(false);
}
@ -673,7 +672,7 @@ void pad_settings_dialog::ReloadButtons()
auto updateButton = [this](int id, QPushButton* button, cfg::string* cfg_text)
{
const QString text = qstr(*cfg_text);
const QString text = QString::fromStdString(*cfg_text);
m_cfg_entries.insert(std::make_pair(id, pad_button{cfg_text, *cfg_text, text}));
button->setText(text);
};
@ -1228,7 +1227,7 @@ void pad_settings_dialog::UpdateLabels(bool is_reset)
if (is_reset)
{
button.keys = *button.cfg_text;
button.text = qstr(button.keys);
button.text = QString::fromStdString(button.keys);
}
// The button has to contain at least one character, because it would be square'ish otherwise
@ -1493,7 +1492,7 @@ void pad_settings_dialog::ChangeHandler()
case pad_handler::skateboard:
case pad_handler::move:
{
const QString name_string = qstr(m_handler->name_string());
const QString name_string = QString::fromStdString(m_handler->name_string());
for (usz i = 1; i <= m_handler->max_devices(); i++) // Controllers 1-n in GUI
{
const QString device_name = name_string + QString::number(i);
@ -1628,15 +1627,15 @@ void pad_settings_dialog::ChangeConfig(const QString& config_file)
}
const u32 player_id = GetPlayerIndex();
const std::string handler = fmt::format("%s", g_cfg_input.player[player_id]->handler.get());
const QString q_handler = QString::fromStdString(g_cfg_input.player[player_id]->handler.to_string());
if (const QString q_handler = qstr(handler); ui->chooseHandler->findText(q_handler) >= 0)
if (const int index = ui->chooseHandler->findData(q_handler); index >= 0)
{
ui->chooseHandler->setCurrentText(q_handler);
ui->chooseHandler->setCurrentIndex(index);
}
else
{
cfg_log.error("Handler '%s' not found in handler dropdown.", handler);
cfg_log.error("Handler '%s' not found in handler dropdown.", q_handler);
}
// Force Refresh
@ -1773,7 +1772,7 @@ void pad_settings_dialog::AddConfigFile()
QMessageBox::warning(this, tr("Error"), tr("Please choose a non-existing name"));
continue;
}
if (CreateConfigFile(qstr(rpcs3::utils::get_input_config_dir(m_title_id)), config_name))
if (CreateConfigFile(QString::fromStdString(rpcs3::utils::get_input_config_dir(m_title_id)), config_name))
{
ui->chooseConfig->addItem(config_name);
ui->chooseConfig->setCurrentText(config_name);
@ -1799,12 +1798,12 @@ void pad_settings_dialog::RefreshHandlers()
const std::vector<std::string> str_inputs = g_cfg_input.player[0]->handler.to_list();
for (usz i = 0; i < str_inputs.size(); i++)
{
const QString item_data = qstr(str_inputs[i]);
const QString item_data = QString::fromStdString(str_inputs[i]);
ui->chooseHandler->addItem(GetLocalizedPadHandler(item_data, static_cast<pad_handler>(i)), QVariant(item_data));
}
const auto& handler = g_cfg_input.player[player_id]->handler;
ui->chooseHandler->setCurrentText(GetLocalizedPadHandler(qstr(handler.to_string()), handler));
const QString item_data = QString::fromStdString(g_cfg_input.player[player_id]->handler.to_string());
ui->chooseHandler->setCurrentIndex(ui->chooseHandler->findData(QVariant(item_data)));
}
ui->chooseHandler->blockSignals(false);
@ -1932,7 +1931,9 @@ void pad_settings_dialog::SaveExit()
m_gui_settings->ShowConfirmationBox(
tr("Warning!"),
tr("The %0 button <b>%1</b> of <b>Player %2</b> was assigned at least twice.<br>Please consider adjusting the configuration.<br><br>Continue anyway?<br>")
.arg(qstr(g_cfg_input.player[player_id]->handler.to_string())).arg(qstr(key)).arg(player_id + 1),
.arg(QString::fromStdString(g_cfg_input.player[player_id]->handler.to_string()))
.arg(QString::fromStdString(key))
.arg(player_id + 1),
gui::ib_same_buttons, &result, this);
if (result == QMessageBox::No)