|
@@ -773,10 +773,22 @@ void GMainWindow::InitializeWidgets() {
|
|
|
dock_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton"));
|
|
dock_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton"));
|
|
|
dock_status_button->setFocusPolicy(Qt::NoFocus);
|
|
dock_status_button->setFocusPolicy(Qt::NoFocus);
|
|
|
connect(dock_status_button, &QPushButton::clicked, [&] {
|
|
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->setText(tr("DOCK"));
|
|
|
dock_status_button->setCheckable(true);
|
|
dock_status_button->setCheckable(true);
|