diff --git a/companion/src/apppreferencesdialog.cpp b/companion/src/apppreferencesdialog.cpp
index d9e309a53..c540199a5 100644
--- a/companion/src/apppreferencesdialog.cpp
+++ b/companion/src/apppreferencesdialog.cpp
@@ -78,6 +78,7 @@ void AppPreferencesDialog::accept()
g.showSplash(ui->showSplash->isChecked());
g.promptProfile(ui->chkPromptProfile->isChecked());
g.simuSW(ui->simuSW->isChecked());
+ g.disableJoystickWarning(ui->joystickWarningCB->isChecked());
g.removeModelSlots(ui->opt_removeBlankSlots->isChecked());
g.newModelAction((AppData::NewModelAction)ui->cboNewModelAction->currentIndex());
g.historySize(ui->historySize->value());
@@ -93,9 +94,11 @@ void AppPreferencesDialog::accept()
g.appLogsDir(ui->appLogsDir->text());
g.runAppInstaller(ui->chkPromptInstall->isChecked());
- if (ui->joystickChkB ->isChecked() && ui->joystickCB->isEnabled()) {
+ if (ui->joystickChkB ->isChecked()) {
g.jsSupport(ui->joystickChkB ->isChecked());
- g.jsCtrl(ui->joystickCB ->currentIndex());
+ // Don't overwrite selected joystick if not connected. Avoid surprising the user.
+ if (ui->joystickCB->isEnabled())
+ g.jsCtrl(ui->joystickCB ->currentIndex());
}
else {
g.jsSupport(false);
@@ -237,6 +240,7 @@ void AppPreferencesDialog::initSettings()
}
ui->simuSW->setChecked(g.simuSW());
+ ui->joystickWarningCB->setChecked(g.disableJoystickWarning());
ui->opt_removeBlankSlots->setChecked(g.removeModelSlots());
ui->cboNewModelAction->addItems(AppData::newModelActionsList());
ui->cboNewModelAction->setCurrentIndex(g.newModelAction());
diff --git a/companion/src/apppreferencesdialog.ui b/companion/src/apppreferencesdialog.ui
index eca37e07c..ffa1dd713 100644
--- a/companion/src/apppreferencesdialog.ui
+++ b/companion/src/apppreferencesdialog.ui
@@ -7,7 +7,7 @@
0
0
864
- 668
+ 673
@@ -481,7 +481,6 @@ Mode 4:
- Ubuntu
75
true
@@ -1284,7 +1283,7 @@ Mode 4:
- -
+
-
Qt::Vertical
@@ -1388,6 +1387,13 @@ Mode 4:
+ -
+
+
+ Disable 'Cannot open joystick, joystick disabled' warning
+
+
+
diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp
index 8c1b0f3e2..6ff5978b1 100644
--- a/companion/src/simulation/simulatorwidget.cpp
+++ b/companion/src/simulation/simulatorwidget.cpp
@@ -691,7 +691,8 @@ void SimulatorWidget::setupJoysticks()
joysticksEnabled = true;
}
else {
- QMessageBox::critical(this, CPN_STR_TTL_WARNING, tr("Cannot open joystick, joystick disabled"));
+ if (!g.disableJoystickWarning())
+ QMessageBox::critical(this, CPN_STR_TTL_WARNING, tr("Cannot open joystick, joystick disabled"));
}
}
else if (joystick) {
diff --git a/companion/src/storage/appdata.h b/companion/src/storage/appdata.h
index ad7419203..a33bc9173 100644
--- a/companion/src/storage/appdata.h
+++ b/companion/src/storage/appdata.h
@@ -687,6 +687,7 @@ class AppData: public CompStoreObj
PROPERTY(int, backLight, 0)
PROPERTY(int, simuLastProfId, -1)
PROPERTY(bool, simuSW, true)
+ PROPERTY(bool, disableJoystickWarning, false)
// Message box confirmations
PROPERTY(bool, confirmWriteModelsAndSettings, true)