fixes
This commit is contained in:
parent
90965525ac
commit
bf93b94658
|
@ -51,7 +51,7 @@ const std::array<std::array<int, 5>, Settings::NativeAnalog::NumAnalogs> Config:
|
||||||
void Config::ReadValues() {
|
void Config::ReadValues() {
|
||||||
qt_config->beginGroup("Controls");
|
qt_config->beginGroup("Controls");
|
||||||
|
|
||||||
Settings::values.profile = ReadSetting("profile", 0).toInt();
|
Settings::values.current_input_profile = ReadSetting("profile", 0).toInt();
|
||||||
|
|
||||||
const auto append_profile = [this] {
|
const auto append_profile = [this] {
|
||||||
Settings::InputProfile profile;
|
Settings::InputProfile profile;
|
||||||
|
@ -95,22 +95,23 @@ void Config::ReadValues() {
|
||||||
|
|
||||||
const int num_input_profiles = qt_config->beginReadArray("profiles");
|
const int num_input_profiles = qt_config->beginReadArray("profiles");
|
||||||
|
|
||||||
for (int i = 0; i < size; ++i) {
|
for (int i = 0; i < num_input_profiles; ++i) {
|
||||||
qt_config->setArrayIndex(i);
|
qt_config->setArrayIndex(i);
|
||||||
append_profile();
|
append_profile();
|
||||||
}
|
}
|
||||||
|
|
||||||
qt_config->endArray();
|
qt_config->endArray();
|
||||||
|
|
||||||
if (Settings::values.profile <= size) {
|
if (Settings::values.current_input_profile <= num_input_profiles) {
|
||||||
Settings::values.profile = 0;
|
Settings::values.current_input_profile = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size == 0) {
|
// create a input profile if no input profiles exist, with the default or old settings
|
||||||
|
if (num_input_profiles == 0) {
|
||||||
append_profile();
|
append_profile();
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::LoadProfile(Settings::values.profile);
|
Settings::LoadProfile(Settings::values.current_input_profile);
|
||||||
|
|
||||||
qt_config->endArray();
|
qt_config->endArray();
|
||||||
|
|
||||||
|
@ -281,7 +282,7 @@ void Config::ReadValues() {
|
||||||
UISettings::values.game_dir_deprecated = ReadSetting("gameListRootDir", ".").toString();
|
UISettings::values.game_dir_deprecated = ReadSetting("gameListRootDir", ".").toString();
|
||||||
UISettings::values.game_dir_deprecated_deepscan =
|
UISettings::values.game_dir_deprecated_deepscan =
|
||||||
ReadSetting("gameListDeepScan", false).toBool();
|
ReadSetting("gameListDeepScan", false).toBool();
|
||||||
size = qt_config->beginReadArray("gamedirs");
|
int size = qt_config->beginReadArray("gamedirs");
|
||||||
for (int i = 0; i < size; ++i) {
|
for (int i = 0; i < size; ++i) {
|
||||||
qt_config->setArrayIndex(i);
|
qt_config->setArrayIndex(i);
|
||||||
UISettings::GameDir game_dir;
|
UISettings::GameDir game_dir;
|
||||||
|
@ -376,10 +377,10 @@ void Config::ReadValues() {
|
||||||
|
|
||||||
void Config::SaveValues() {
|
void Config::SaveValues() {
|
||||||
qt_config->beginGroup("Controls");
|
qt_config->beginGroup("Controls");
|
||||||
WriteSetting("profile", Settings::values.profile, 0);
|
WriteSetting("profile", Settings::values.current_input_profile, 0);
|
||||||
qt_config->beginWriteArray("profiles");
|
qt_config->beginWriteArray("profiles");
|
||||||
for (int p = 0; p < Settings::values.profiles.size(); ++p) {
|
for (std::size_t p = 0; p < Settings::values.inprofiles.size(); ++p) {
|
||||||
qt_config->setArrayIndex(p);
|
qt_config->setArrayIndex(static_cast<int>(p));
|
||||||
const auto& profile = Settings::values.profiles[p];
|
const auto& profile = Settings::values.profiles[p];
|
||||||
for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
|
for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
|
||||||
std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
|
std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
|
||||||
|
|
|
@ -103,161 +103,160 @@ ConfigureInput::ConfigureInput(QWidget* parent)
|
||||||
for (const auto& profile : Settings::values::profiles) {
|
for (const auto& profile : Settings::values::profiles) {
|
||||||
ui->profile->addItem(QString::fromStdString(profile.name));
|
ui->profile->addItem(QString::fromStdString(profile.name));
|
||||||
}
|
}
|
||||||
ui->profile->addItem(QString::fromStdString(Settings::values.profiles[i].name));
|
ui->profile->addItem(QString::fromStdString(Settings::values.profiles[i].name));
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->profile->setCurrentIndex(Settings::values.profile);
|
ui->profile->setCurrentIndex(Settings::values.current_input_profile);
|
||||||
|
|
||||||
button_map = {
|
button_map = {
|
||||||
ui->buttonA, ui->buttonB, ui->buttonX, ui->buttonY, ui->buttonDpadUp,
|
ui->buttonA, ui->buttonB, ui->buttonX, ui->buttonY, ui->buttonDpadUp,
|
||||||
ui->buttonDpadDown, ui->buttonDpadLeft, ui->buttonDpadRight, ui->buttonL, ui->buttonR,
|
ui->buttonDpadDown, ui->buttonDpadLeft, ui->buttonDpadRight, ui->buttonL, ui->buttonR,
|
||||||
ui->buttonStart, ui->buttonSelect, ui->buttonZL, ui->buttonZR, ui->buttonHome,
|
ui->buttonStart, ui->buttonSelect, ui->buttonZL, ui->buttonZR, ui->buttonHome,
|
||||||
};
|
};
|
||||||
|
|
||||||
analog_map_buttons = {{
|
analog_map_buttons = {{
|
||||||
{
|
{
|
||||||
ui->buttonCircleUp,
|
ui->buttonCircleUp,
|
||||||
ui->buttonCircleDown,
|
ui->buttonCircleDown,
|
||||||
ui->buttonCircleLeft,
|
ui->buttonCircleLeft,
|
||||||
ui->buttonCircleRight,
|
ui->buttonCircleRight,
|
||||||
ui->buttonCircleMod,
|
ui->buttonCircleMod,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
ui->buttonCStickUp,
|
ui->buttonCStickUp,
|
||||||
ui->buttonCStickDown,
|
ui->buttonCStickDown,
|
||||||
ui->buttonCStickLeft,
|
ui->buttonCStickLeft,
|
||||||
ui->buttonCStickRight,
|
ui->buttonCStickRight,
|
||||||
nullptr,
|
nullptr,
|
||||||
},
|
},
|
||||||
}};
|
}};
|
||||||
|
|
||||||
analog_map_stick = {ui->buttonCircleAnalog, ui->buttonCStickAnalog};
|
analog_map_stick = {ui->buttonCircleAnalog, ui->buttonCStickAnalog};
|
||||||
|
|
||||||
for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) {
|
for (int button_id = 0; button_id < Settings::NativeButton::NumButtons; button_id++) {
|
||||||
if (!button_map[button_id])
|
if (!button_map[button_id])
|
||||||
|
continue;
|
||||||
|
button_map[button_id]->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
|
connect(button_map[button_id], &QPushButton::released, [=]() {
|
||||||
|
handleClick(
|
||||||
|
button_map[button_id],
|
||||||
|
[=](const Common::ParamPackage& params) {
|
||||||
|
buttons_param[button_id] = params;
|
||||||
|
applyConfiguration();
|
||||||
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
|
},
|
||||||
|
InputCommon::Polling::DeviceType::Button);
|
||||||
|
});
|
||||||
|
connect(button_map[button_id], &QPushButton::customContextMenuRequested,
|
||||||
|
[=](const QPoint& menu_location) {
|
||||||
|
QMenu context_menu;
|
||||||
|
context_menu.addAction(tr("Clear"), [&] {
|
||||||
|
buttons_param[button_id].Clear();
|
||||||
|
button_map[button_id]->setText(tr("[not set]"));
|
||||||
|
applyConfiguration();
|
||||||
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
|
});
|
||||||
|
context_menu.addAction(tr("Restore Default"), [&] {
|
||||||
|
buttons_param[button_id] = Common::ParamPackage{
|
||||||
|
InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])};
|
||||||
|
button_map[button_id]->setText(ButtonToText(buttons_param[button_id]));
|
||||||
|
applyConfiguration();
|
||||||
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
|
});
|
||||||
|
context_menu.exec(button_map[button_id]->mapToGlobal(menu_location));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) {
|
||||||
|
for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) {
|
||||||
|
if (!analog_map_buttons[analog_id][sub_button_id])
|
||||||
continue;
|
continue;
|
||||||
button_map[button_id]->setContextMenuPolicy(Qt::CustomContextMenu);
|
analog_map_buttons[analog_id][sub_button_id]->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||||
connect(button_map[button_id], &QPushButton::released, [=]() {
|
connect(analog_map_buttons[analog_id][sub_button_id], &QPushButton::released, [=]() {
|
||||||
handleClick(
|
handleClick(
|
||||||
button_map[button_id],
|
analog_map_buttons[analog_id][sub_button_id],
|
||||||
[=](const Common::ParamPackage& params) {
|
[=](const Common::ParamPackage& params) {
|
||||||
buttons_param[button_id] = params;
|
SetAnalogButton(params, analogs_param[analog_id],
|
||||||
|
analog_sub_buttons[sub_button_id]);
|
||||||
applyConfiguration();
|
applyConfiguration();
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
},
|
},
|
||||||
InputCommon::Polling::DeviceType::Button);
|
InputCommon::Polling::DeviceType::Button);
|
||||||
});
|
});
|
||||||
connect(button_map[button_id], &QPushButton::customContextMenuRequested,
|
connect(analog_map_buttons[analog_id][sub_button_id],
|
||||||
[=](const QPoint& menu_location) {
|
&QPushButton::customContextMenuRequested, [=](const QPoint& menu_location) {
|
||||||
QMenu context_menu;
|
QMenu context_menu;
|
||||||
context_menu.addAction(tr("Clear"), [&] {
|
context_menu.addAction(tr("Clear"), [&] {
|
||||||
buttons_param[button_id].Clear();
|
analogs_param[analog_id].Erase(analog_sub_buttons[sub_button_id]);
|
||||||
button_map[button_id]->setText(tr("[not set]"));
|
analog_map_buttons[analog_id][sub_button_id]->setText(tr("[not set]"));
|
||||||
applyConfiguration();
|
applyConfiguration();
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
});
|
});
|
||||||
context_menu.addAction(tr("Restore Default"), [&] {
|
context_menu.addAction(tr("Restore Default"), [&] {
|
||||||
buttons_param[button_id] = Common::ParamPackage{
|
Common::ParamPackage params{InputCommon::GenerateKeyboardParam(
|
||||||
InputCommon::GenerateKeyboardParam(Config::default_buttons[button_id])};
|
Config::default_analogs[analog_id][sub_button_id])};
|
||||||
button_map[button_id]->setText(ButtonToText(buttons_param[button_id]));
|
|
||||||
applyConfiguration();
|
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
|
||||||
});
|
|
||||||
context_menu.exec(button_map[button_id]->mapToGlobal(menu_location));
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int analog_id = 0; analog_id < Settings::NativeAnalog::NumAnalogs; analog_id++) {
|
|
||||||
for (int sub_button_id = 0; sub_button_id < ANALOG_SUB_BUTTONS_NUM; sub_button_id++) {
|
|
||||||
if (!analog_map_buttons[analog_id][sub_button_id])
|
|
||||||
continue;
|
|
||||||
analog_map_buttons[analog_id][sub_button_id]->setContextMenuPolicy(
|
|
||||||
Qt::CustomContextMenu);
|
|
||||||
connect(analog_map_buttons[analog_id][sub_button_id], &QPushButton::released, [=]() {
|
|
||||||
handleClick(
|
|
||||||
analog_map_buttons[analog_id][sub_button_id],
|
|
||||||
[=](const Common::ParamPackage& params) {
|
|
||||||
SetAnalogButton(params, analogs_param[analog_id],
|
SetAnalogButton(params, analogs_param[analog_id],
|
||||||
analog_sub_buttons[sub_button_id]);
|
analog_sub_buttons[sub_button_id]);
|
||||||
|
analog_map_buttons[analog_id][sub_button_id]->setText(AnalogToText(
|
||||||
|
analogs_param[analog_id], analog_sub_buttons[sub_button_id]));
|
||||||
applyConfiguration();
|
applyConfiguration();
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
},
|
|
||||||
InputCommon::Polling::DeviceType::Button);
|
|
||||||
});
|
|
||||||
connect(analog_map_buttons[analog_id][sub_button_id],
|
|
||||||
&QPushButton::customContextMenuRequested, [=](const QPoint& menu_location) {
|
|
||||||
QMenu context_menu;
|
|
||||||
context_menu.addAction(tr("Clear"), [&] {
|
|
||||||
analogs_param[analog_id].Erase(analog_sub_buttons[sub_button_id]);
|
|
||||||
analog_map_buttons[analog_id][sub_button_id]->setText(tr("[not set]"));
|
|
||||||
applyConfiguration();
|
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
|
||||||
});
|
|
||||||
context_menu.addAction(tr("Restore Default"), [&] {
|
|
||||||
Common::ParamPackage params{InputCommon::GenerateKeyboardParam(
|
|
||||||
Config::default_analogs[analog_id][sub_button_id])};
|
|
||||||
SetAnalogButton(params, analogs_param[analog_id],
|
|
||||||
analog_sub_buttons[sub_button_id]);
|
|
||||||
analog_map_buttons[analog_id][sub_button_id]->setText(AnalogToText(
|
|
||||||
analogs_param[analog_id], analog_sub_buttons[sub_button_id]));
|
|
||||||
applyConfiguration();
|
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
|
||||||
});
|
|
||||||
context_menu.exec(analog_map_buttons[analog_id][sub_button_id]->mapToGlobal(
|
|
||||||
menu_location));
|
|
||||||
});
|
});
|
||||||
}
|
context_menu.exec(
|
||||||
connect(analog_map_stick[analog_id], &QPushButton::released, [=]() {
|
analog_map_buttons[analog_id][sub_button_id]->mapToGlobal(menu_location));
|
||||||
QMessageBox::information(this, tr("Information"),
|
});
|
||||||
tr("After pressing OK, first move your joystick horizontally, "
|
|
||||||
"and then vertically."));
|
|
||||||
handleClick(
|
|
||||||
analog_map_stick[analog_id],
|
|
||||||
[=](const Common::ParamPackage& params) {
|
|
||||||
analogs_param[analog_id] = params;
|
|
||||||
applyConfiguration();
|
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
|
||||||
},
|
|
||||||
InputCommon::Polling::DeviceType::Analog);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
connect(analog_map_stick[analog_id], &QPushButton::released, [=]() {
|
||||||
connect(ui->buttonMotionTouch, &QPushButton::released, [this] {
|
QMessageBox::information(this, tr("Information"),
|
||||||
QDialog* motion_touch_dialog = new ConfigureMotionTouch(this);
|
tr("After pressing OK, first move your joystick horizontally, "
|
||||||
return motion_touch_dialog->exec();
|
"and then vertically."));
|
||||||
});
|
handleClick(
|
||||||
connect(ui->buttonClearAll, &QPushButton::released, [this] { ClearAll(); });
|
analog_map_stick[analog_id],
|
||||||
connect(ui->buttonRestoreDefaults, &QPushButton::released, [this]() { restoreDefaults(); });
|
[=](const Common::ParamPackage& params) {
|
||||||
connect(ui->buttonNew, &QPushButton::released, [this] { newProfile(); });
|
analogs_param[analog_id] = params;
|
||||||
connect(ui->buttonDelete, &QPushButton::released, [this] { deleteProfile(); });
|
|
||||||
connect(ui->buttonRename, &QPushButton::released, [this] { renameProfile(); });
|
|
||||||
|
|
||||||
connect(ui->profile, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
|
||||||
[this](int i) {
|
|
||||||
applyConfiguration();
|
applyConfiguration();
|
||||||
Settings::SaveProfile(Settings::values.profile);
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
Settings::LoadProfile(i);
|
},
|
||||||
loadConfiguration();
|
InputCommon::Polling::DeviceType::Analog);
|
||||||
});
|
|
||||||
|
|
||||||
timeout_timer->setSingleShot(true);
|
|
||||||
connect(timeout_timer.get(), &QTimer::timeout, [this]() { setPollingResult({}, true); });
|
|
||||||
|
|
||||||
connect(poll_timer.get(), &QTimer::timeout, [this]() {
|
|
||||||
Common::ParamPackage params;
|
|
||||||
for (auto& poller : device_pollers) {
|
|
||||||
params = poller->GetNextInput();
|
|
||||||
if (params.Has("engine")) {
|
|
||||||
setPollingResult(params, false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
this->loadConfiguration();
|
connect(ui->buttonMotionTouch, &QPushButton::released, [this] {
|
||||||
|
QDialog* motion_touch_dialog = new ConfigureMotionTouch(this);
|
||||||
|
return motion_touch_dialog->exec();
|
||||||
|
});
|
||||||
|
connect(ui->buttonClearAll, &QPushButton::released, [this] { ClearAll(); });
|
||||||
|
connect(ui->buttonRestoreDefaults, &QPushButton::released, [this]() { restoreDefaults(); });
|
||||||
|
connect(ui->buttonNew, &QPushButton::released, [this] { newProfile(); });
|
||||||
|
connect(ui->buttonDelete, &QPushButton::released, [this] { deleteProfile(); });
|
||||||
|
connect(ui->buttonRename, &QPushButton::released, [this] { renameProfile(); });
|
||||||
|
|
||||||
// TODO(wwylele): enable this when we actually emulate it
|
connect(ui->profile, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged),
|
||||||
ui->buttonHome->setEnabled(false);
|
[this](int i) {
|
||||||
|
applyConfiguration();
|
||||||
|
Settings::SaveProfile(Settings::values.current_input_profile);
|
||||||
|
Settings::LoadProfile(i);
|
||||||
|
loadConfiguration();
|
||||||
|
});
|
||||||
|
|
||||||
|
timeout_timer->setSingleShot(true);
|
||||||
|
connect(timeout_timer.get(), &QTimer::timeout, [this]() { setPollingResult({}, true); });
|
||||||
|
|
||||||
|
connect(poll_timer.get(), &QTimer::timeout, [this]() {
|
||||||
|
Common::ParamPackage params;
|
||||||
|
for (auto& poller : device_pollers) {
|
||||||
|
params = poller->GetNextInput();
|
||||||
|
if (params.Has("engine")) {
|
||||||
|
setPollingResult(params, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
this->loadConfiguration();
|
||||||
|
|
||||||
|
// TODO(wwylele): enable this when we actually emulate it
|
||||||
|
ui->buttonHome->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigureInput::~ConfigureInput() = default;
|
ConfigureInput::~ConfigureInput() = default;
|
||||||
|
@ -270,7 +269,7 @@ void ConfigureInput::applyConfiguration() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigureInput::applyProfile() {
|
void ConfigureInput::applyProfile() {
|
||||||
Settings::values.profile = ui->profile->currentIndex();
|
Settings::values.current_input_profile = ui->profile->currentIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ConfigureInput::loadConfiguration() {
|
void ConfigureInput::loadConfiguration() {
|
||||||
|
@ -400,7 +399,7 @@ void ConfigureInput::newProfile() {
|
||||||
Settings::SaveProfile(ui->profile->currentIndex());
|
Settings::SaveProfile(ui->profile->currentIndex());
|
||||||
Settings::CreateProfile(name.toStdString());
|
Settings::CreateProfile(name.toStdString());
|
||||||
ui->profile->addItem(name);
|
ui->profile->addItem(name);
|
||||||
ui->profile->setCurrentIndex(Settings::values.profile);
|
ui->profile->setCurrentIndex(Settings::values.current_input_profile);
|
||||||
loadConfiguration();
|
loadConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,7 @@ void ConfigureMotionTouch::applyConfiguration() {
|
||||||
Settings::values.udp_input_address = ui->udp_server->text().toStdString();
|
Settings::values.udp_input_address = ui->udp_server->text().toStdString();
|
||||||
Settings::values.udp_input_port = static_cast<u16>(ui->udp_port->text().toInt());
|
Settings::values.udp_input_port = static_cast<u16>(ui->udp_port->text().toInt());
|
||||||
Settings::values.udp_pad_index = static_cast<u8>(ui->udp_pad_index->currentIndex());
|
Settings::values.udp_pad_index = static_cast<u8>(ui->udp_pad_index->currentIndex());
|
||||||
Settings::SaveProfile(Settings::values.profile);
|
Settings::SaveProfile(Settings::values.current_input_profile);
|
||||||
InputCommon::ReloadInputDevices();
|
InputCommon::ReloadInputDevices();
|
||||||
|
|
||||||
accept();
|
accept();
|
||||||
|
|
|
@ -1326,8 +1326,8 @@ void GMainWindow::OnConfigure() {
|
||||||
connect(&configureDialog, &ConfigureDialog::languageChanged, this,
|
connect(&configureDialog, &ConfigureDialog::languageChanged, this,
|
||||||
&GMainWindow::OnLanguageChanged);
|
&GMainWindow::OnLanguageChanged);
|
||||||
auto old_theme = UISettings::values.theme;
|
auto old_theme = UISettings::values.theme;
|
||||||
const int old_profile = Settings::values.profile;
|
const int old_input_profile = Settings::values.current_input_profile;
|
||||||
const auto old_profiles = Settings::values.profiles;
|
const auto old_input_profiles = Settings::values.input_profiles;
|
||||||
const bool old_discord_presence = UISettings::values.enable_discord_presence;
|
const bool old_discord_presence = UISettings::values.enable_discord_presence;
|
||||||
auto result = configureDialog.exec();
|
auto result = configureDialog.exec();
|
||||||
if (result == QDialog::Accepted) {
|
if (result == QDialog::Accepted) {
|
||||||
|
@ -1341,8 +1341,8 @@ void GMainWindow::OnConfigure() {
|
||||||
game_list->RefreshGameDirectory();
|
game_list->RefreshGameDirectory();
|
||||||
config->Save();
|
config->Save();
|
||||||
} else {
|
} else {
|
||||||
Settings::values.profiles = old_profiles;
|
Settings::values.input_profiles = old_input_profiles;
|
||||||
Settings::LoadProfile(old_profile);
|
Settings::LoadProfile(old_input_profile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -102,7 +102,7 @@ void LogSettings() {
|
||||||
|
|
||||||
void LoadProfile(int index) {
|
void LoadProfile(int index) {
|
||||||
const auto& profile = values.profiles[index];
|
const auto& profile = values.profiles[index];
|
||||||
values.profile = index;
|
values.current_input_profile = index;
|
||||||
values.analogs = profile.analogs;
|
values.analogs = profile.analogs;
|
||||||
values.buttons = profile.buttons;
|
values.buttons = profile.buttons;
|
||||||
values.motion_device = profile.motion_device;
|
values.motion_device = profile.motion_device;
|
||||||
|
@ -134,8 +134,8 @@ void CreateProfile(std::string name) {
|
||||||
profile.udp_input_port = values.udp_input_port;
|
profile.udp_input_port = values.udp_input_port;
|
||||||
profile.udp_pad_index = values.udp_pad_index;
|
profile.udp_pad_index = values.udp_pad_index;
|
||||||
values.profiles.push_back(std::move(profile));
|
values.profiles.push_back(std::move(profile));
|
||||||
values.profile = static_cast<int>(values.profiles.size()) - 1;
|
values.current_input_profile = static_cast<int>(values.profiles.size()) - 1;
|
||||||
LoadProfile(values.profile);
|
LoadProfile(values.current_input_profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DeleteProfile(int index) {
|
void DeleteProfile(int index) {
|
||||||
|
@ -144,7 +144,7 @@ void DeleteProfile(int index) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void RenameCurrentProfile(std::string new_name) {
|
void RenameCurrentProfile(std::string new_name) {
|
||||||
values.profiles[values.profile].name = std::move(new_name);
|
values.profiles[values.current_input_profile].name = std::move(new_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Settings
|
} // namespace Settings
|
||||||
|
|
|
@ -117,7 +117,7 @@ struct Values {
|
||||||
u16 udp_input_port;
|
u16 udp_input_port;
|
||||||
u8 udp_pad_index;
|
u8 udp_pad_index;
|
||||||
|
|
||||||
int current_input_profile; ///< The current input profile index
|
int current_input_profile; ///< The current input profile index
|
||||||
std::vector<InputProfile> input_profiles; ///< The list of input profiles
|
std::vector<InputProfile> input_profiles; ///< The list of input profiles
|
||||||
|
|
||||||
// Core
|
// Core
|
||||||
|
|
Reference in New Issue