diff options
| author | 2023-01-22 23:36:40 -0800 | |
|---|---|---|
| committer | 2023-01-22 23:36:40 -0800 | |
| commit | a84ad180e8e16ed04de5551b2f72349e2ec4d215 (patch) | |
| tree | 0f40a9489a5370c12066af8ce24b1df386cffd37 | |
| parent | Merge pull request #9555 from abouvier/catch2-update (diff) | |
| download | yuzu-a84ad180e8e16ed04de5551b2f72349e2ec4d215.tar.gz yuzu-a84ad180e8e16ed04de5551b2f72349e2ec4d215.tar.xz yuzu-a84ad180e8e16ed04de5551b2f72349e2ec4d215.zip | |
qt: add option to disable controller applet
- add checkbox to disable the controller applet UI
- when controller applet is disabled, use the yuzu-cmd fallback
controller applet that applies controller config based on rules
- See https://github.com/yuzu-emu/yuzu/issues/8552 for some discussion
| -rw-r--r-- | src/yuzu/configuration/config.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.cpp | 4 | ||||
| -rw-r--r-- | src/yuzu/configuration/configure_general.ui | 7 | ||||
| -rw-r--r-- | src/yuzu/main.cpp | 1 | ||||
| -rw-r--r-- | src/yuzu/uisettings.h | 2 |
5 files changed, 16 insertions, 0 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp index fd3bb30e1..1f1ef658c 100644 --- a/src/yuzu/configuration/config.cpp +++ b/src/yuzu/configuration/config.cpp | |||
| @@ -836,6 +836,7 @@ void Config::ReadUIValues() { | |||
| 836 | ReadBasicSetting(UISettings::values.pause_when_in_background); | 836 | ReadBasicSetting(UISettings::values.pause_when_in_background); |
| 837 | ReadBasicSetting(UISettings::values.mute_when_in_background); | 837 | ReadBasicSetting(UISettings::values.mute_when_in_background); |
| 838 | ReadBasicSetting(UISettings::values.hide_mouse); | 838 | ReadBasicSetting(UISettings::values.hide_mouse); |
| 839 | ReadBasicSetting(UISettings::values.controller_applet_disabled); | ||
| 839 | ReadBasicSetting(UISettings::values.disable_web_applet); | 840 | ReadBasicSetting(UISettings::values.disable_web_applet); |
| 840 | 841 | ||
| 841 | qt_config->endGroup(); | 842 | qt_config->endGroup(); |
| @@ -1456,6 +1457,7 @@ void Config::SaveUIValues() { | |||
| 1456 | WriteBasicSetting(UISettings::values.pause_when_in_background); | 1457 | WriteBasicSetting(UISettings::values.pause_when_in_background); |
| 1457 | WriteBasicSetting(UISettings::values.mute_when_in_background); | 1458 | WriteBasicSetting(UISettings::values.mute_when_in_background); |
| 1458 | WriteBasicSetting(UISettings::values.hide_mouse); | 1459 | WriteBasicSetting(UISettings::values.hide_mouse); |
| 1460 | WriteBasicSetting(UISettings::values.controller_applet_disabled); | ||
| 1459 | WriteBasicSetting(UISettings::values.disable_web_applet); | 1461 | WriteBasicSetting(UISettings::values.disable_web_applet); |
| 1460 | 1462 | ||
| 1461 | qt_config->endGroup(); | 1463 | qt_config->endGroup(); |
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp index 7ade01ba6..7783f362a 100644 --- a/src/yuzu/configuration/configure_general.cpp +++ b/src/yuzu/configuration/configure_general.cpp | |||
| @@ -44,6 +44,8 @@ void ConfigureGeneral::SetConfiguration() { | |||
| 44 | ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue()); | 44 | ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue()); |
| 45 | ui->toggle_background_mute->setChecked(UISettings::values.mute_when_in_background.GetValue()); | 45 | ui->toggle_background_mute->setChecked(UISettings::values.mute_when_in_background.GetValue()); |
| 46 | ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue()); | 46 | ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue()); |
| 47 | ui->toggle_controller_applet_disabled->setEnabled(runtime_lock); | ||
| 48 | ui->toggle_controller_applet_disabled->setChecked(UISettings::values.controller_applet_disabled.GetValue()); | ||
| 47 | 49 | ||
| 48 | ui->toggle_speed_limit->setChecked(Settings::values.use_speed_limit.GetValue()); | 50 | ui->toggle_speed_limit->setChecked(Settings::values.use_speed_limit.GetValue()); |
| 49 | ui->speed_limit->setValue(Settings::values.speed_limit.GetValue()); | 51 | ui->speed_limit->setValue(Settings::values.speed_limit.GetValue()); |
| @@ -90,6 +92,7 @@ void ConfigureGeneral::ApplyConfiguration() { | |||
| 90 | UISettings::values.pause_when_in_background = ui->toggle_background_pause->isChecked(); | 92 | UISettings::values.pause_when_in_background = ui->toggle_background_pause->isChecked(); |
| 91 | UISettings::values.mute_when_in_background = ui->toggle_background_mute->isChecked(); | 93 | UISettings::values.mute_when_in_background = ui->toggle_background_mute->isChecked(); |
| 92 | UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked(); | 94 | UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked(); |
| 95 | UISettings::values.controller_applet_disabled = ui->toggle_controller_applet_disabled->isChecked(); | ||
| 93 | 96 | ||
| 94 | // Guard if during game and set to game-specific value | 97 | // Guard if during game and set to game-specific value |
| 95 | if (Settings::values.use_speed_limit.UsingGlobal()) { | 98 | if (Settings::values.use_speed_limit.UsingGlobal()) { |
| @@ -136,6 +139,7 @@ void ConfigureGeneral::SetupPerGameUI() { | |||
| 136 | ui->toggle_user_on_boot->setVisible(false); | 139 | ui->toggle_user_on_boot->setVisible(false); |
| 137 | ui->toggle_background_pause->setVisible(false); | 140 | ui->toggle_background_pause->setVisible(false); |
| 138 | ui->toggle_hide_mouse->setVisible(false); | 141 | ui->toggle_hide_mouse->setVisible(false); |
| 142 | ui->toggle_controller_applet_disabled->setVisible(false); | ||
| 139 | 143 | ||
| 140 | ui->button_reset_defaults->setVisible(false); | 144 | ui->button_reset_defaults->setVisible(false); |
| 141 | 145 | ||
diff --git a/src/yuzu/configuration/configure_general.ui b/src/yuzu/configuration/configure_general.ui index 5b90b1109..2fa8324fb 100644 --- a/src/yuzu/configuration/configure_general.ui +++ b/src/yuzu/configuration/configure_general.ui | |||
| @@ -103,6 +103,13 @@ | |||
| 103 | </property> | 103 | </property> |
| 104 | </widget> | 104 | </widget> |
| 105 | </item> | 105 | </item> |
| 106 | <item> | ||
| 107 | <widget class="QCheckBox" name="toggle_controller_applet_disabled"> | ||
| 108 | <property name="text"> | ||
| 109 | <string>Disable controller applet</string> | ||
| 110 | </property> | ||
| 111 | </widget> | ||
| 112 | </item> | ||
| 106 | </layout> | 113 | </layout> |
| 107 | </item> | 114 | </item> |
| 108 | </layout> | 115 | </layout> |
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 571eacf9f..e57e02652 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -1562,6 +1562,7 @@ bool GMainWindow::LoadROM(const QString& filename, u64 program_id, std::size_t p | |||
| 1562 | 1562 | ||
| 1563 | system->SetAppletFrontendSet({ | 1563 | system->SetAppletFrontendSet({ |
| 1564 | std::make_unique<QtAmiiboSettings>(*this), // Amiibo Settings | 1564 | std::make_unique<QtAmiiboSettings>(*this), // Amiibo Settings |
| 1565 | (UISettings::values.controller_applet_disabled.GetValue() == true) ? nullptr : | ||
| 1565 | std::make_unique<QtControllerSelector>(*this), // Controller Selector | 1566 | std::make_unique<QtControllerSelector>(*this), // Controller Selector |
| 1566 | std::make_unique<QtErrorDisplay>(*this), // Error Display | 1567 | std::make_unique<QtErrorDisplay>(*this), // Error Display |
| 1567 | nullptr, // Mii Editor | 1568 | nullptr, // Mii Editor |
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h index db43b7033..20a517d34 100644 --- a/src/yuzu/uisettings.h +++ b/src/yuzu/uisettings.h | |||
| @@ -77,6 +77,8 @@ struct Values { | |||
| 77 | Settings::Setting<bool> pause_when_in_background{false, "pauseWhenInBackground"}; | 77 | Settings::Setting<bool> pause_when_in_background{false, "pauseWhenInBackground"}; |
| 78 | Settings::Setting<bool> mute_when_in_background{false, "muteWhenInBackground"}; | 78 | Settings::Setting<bool> mute_when_in_background{false, "muteWhenInBackground"}; |
| 79 | Settings::Setting<bool> hide_mouse{true, "hideInactiveMouse"}; | 79 | Settings::Setting<bool> hide_mouse{true, "hideInactiveMouse"}; |
| 80 | Settings::Setting<bool> controller_applet_disabled{false, "disableControllerApplet"}; | ||
| 81 | |||
| 80 | // Set when Vulkan is known to crash the application | 82 | // Set when Vulkan is known to crash the application |
| 81 | bool has_broken_vulkan = false; | 83 | bool has_broken_vulkan = false; |
| 82 | 84 | ||