mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-10-12 18:17:48 +00:00
configure_input_simple: Make input profile array constexpr
Calling tr() from a file-scope array isn't advisable, since it can be executed before the Qt libraries are even fully initialized, which can lead to crashes. Instead, the translatable strings should be annotated, and the tr() function should be called at the string's usage site.
This commit is contained in:
parent
615a0df6b6
commit
bd56fa947d
1 changed files with 7 additions and 12 deletions
|
@ -3,12 +3,8 @@
|
|||
// Refer to the license.txt file included.
|
||||
|
||||
#include <array>
|
||||
#include <cstring>
|
||||
#include <functional>
|
||||
#include <tuple>
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
#include "ui_configure_input_simple.h"
|
||||
#include "yuzu/configuration/configure_input.h"
|
||||
#include "yuzu/configuration/configure_input_player.h"
|
||||
|
@ -73,20 +69,18 @@ void DualJoyconsDockedOnProfileSelect() {
|
|||
|
||||
// Name, OnProfileSelect (called when selected in drop down), OnConfigure (called when configure
|
||||
// is clicked)
|
||||
using InputProfile =
|
||||
std::tuple<QString, std::function<void()>, std::function<void(ConfigureInputSimple*)>>;
|
||||
using InputProfile = std::tuple<const char*, void (*)(), void (*)(ConfigureInputSimple*)>;
|
||||
|
||||
const std::array<InputProfile, 3> INPUT_PROFILES{{
|
||||
{ConfigureInputSimple::tr("Single Player - Handheld - Undocked"), HandheldOnProfileSelect,
|
||||
constexpr std::array<InputProfile, 3> INPUT_PROFILES{{
|
||||
{QT_TR_NOOP("Single Player - Handheld - Undocked"), HandheldOnProfileSelect,
|
||||
[](ConfigureInputSimple* caller) {
|
||||
CallConfigureDialog<ConfigureInputPlayer>(caller, HANDHELD_INDEX, false);
|
||||
}},
|
||||
{ConfigureInputSimple::tr("Single Player - Dual Joycons - Docked"),
|
||||
DualJoyconsDockedOnProfileSelect,
|
||||
{QT_TR_NOOP("Single Player - Dual Joycons - Docked"), DualJoyconsDockedOnProfileSelect,
|
||||
[](ConfigureInputSimple* caller) {
|
||||
CallConfigureDialog<ConfigureInputPlayer>(caller, 1, false);
|
||||
}},
|
||||
{ConfigureInputSimple::tr("Custom"), [] {}, CallConfigureDialog<ConfigureInput>},
|
||||
{QT_TR_NOOP("Custom"), [] {}, CallConfigureDialog<ConfigureInput>},
|
||||
}};
|
||||
|
||||
} // namespace
|
||||
|
@ -101,7 +95,8 @@ ConfigureInputSimple::ConfigureInputSimple(QWidget* parent)
|
|||
ui->setupUi(this);
|
||||
|
||||
for (const auto& profile : INPUT_PROFILES) {
|
||||
ui->profile_combobox->addItem(std::get<0>(profile), std::get<0>(profile));
|
||||
const QString label = tr(std::get<0>(profile));
|
||||
ui->profile_combobox->addItem(label, label);
|
||||
}
|
||||
|
||||
connect(ui->profile_combobox, QOverload<int>::of(&QComboBox::currentIndexChanged), this,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue