diff options
author | german77 <juangerman-13@hotmail.com> | 2021-05-23 20:34:46 -0500 |
---|---|---|
committer | german77 <juangerman-13@hotmail.com> | 2021-05-23 20:34:46 -0500 |
commit | 7f445a59fa7362615338bd93e5f57d84a594e181 (patch) | |
tree | 2c5b0cad6524593b83ea1d42a26f640b9a38746f /src/yuzu/main.cpp | |
parent | 5068279f23c1ae628f9298ab1a811435fd99c8cd (diff) |
settings: Forbid docked mode on handheld
Diffstat (limited to 'src/yuzu/main.cpp')
-rw-r--r-- | src/yuzu/main.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 9275cba53..bc97f9d53 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -773,10 +773,22 @@ void GMainWindow::InitializeWidgets() { dock_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton")); dock_status_button->setFocusPolicy(Qt::NoFocus); connect(dock_status_button, &QPushButton::clicked, [&] { - Settings::values.use_docked_mode.SetValue(!Settings::values.use_docked_mode.GetValue()); - dock_status_button->setChecked(Settings::values.use_docked_mode.GetValue()); - OnDockedModeChanged(!Settings::values.use_docked_mode.GetValue(), - Settings::values.use_docked_mode.GetValue()); + const bool is_docked = Settings::values.use_docked_mode.GetValue(); + auto& controller_type = Settings::values.players.GetValue()[0].controller_type; + + if (!is_docked && controller_type == Settings::ControllerType::Handheld) { + QMessageBox::warning(this, tr("Invalid config detected"), + tr("Handheld controller can't be used on docked mode. Pro " + "controller will be selected.")); + controller_type = Settings::ControllerType::ProController; + ConfigureDialog configure_dialog(this, hotkey_registry, input_subsystem.get()); + configure_dialog.ApplyConfiguration(); + controller_dialog->refreshConfiguration(); + } + + Settings::values.use_docked_mode.SetValue(!is_docked); + dock_status_button->setChecked(!is_docked); + OnDockedModeChanged(is_docked, !is_docked); }); dock_status_button->setText(tr("DOCK")); dock_status_button->setCheckable(true); |