|
|
@@ -171,7 +171,18 @@ QtControllerSelectorDialog::QtControllerSelectorDialog(
|
|
|
ui->checkboxPlayer7Connected, ui->checkboxPlayer8Connected,
|
|
|
};
|
|
|
|
|
|
+ // Setup/load everything prior to setting up connections.
|
|
|
+ // This avoids unintentionally changing the states of elements while loading them in.
|
|
|
+ SetSupportedControllers();
|
|
|
+ DisableUnsupportedPlayers();
|
|
|
+ LoadConfiguration();
|
|
|
+
|
|
|
for (std::size_t i = 0; i < NUM_PLAYERS; ++i) {
|
|
|
+ SetExplainText(i);
|
|
|
+ UpdateControllerIcon(i);
|
|
|
+ UpdateLEDPattern(i);
|
|
|
+ UpdateBorderColor(i);
|
|
|
+
|
|
|
connect(player_groupboxes[i], &QGroupBox::toggled, [this, i](bool checked) {
|
|
|
if (checked) {
|
|
|
for (std::size_t index = 0; index <= i; ++index) {
|
|
|
@@ -208,8 +219,6 @@ QtControllerSelectorDialog::QtControllerSelectorDialog(
|
|
|
Settings::ControllerType::Handheld);
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
- SetExplainText(i);
|
|
|
}
|
|
|
|
|
|
connect(ui->inputConfigButton, &QPushButton::clicked, this,
|
|
|
@@ -218,10 +227,6 @@ QtControllerSelectorDialog::QtControllerSelectorDialog(
|
|
|
connect(ui->buttonBox, &QDialogButtonBox::accepted, this,
|
|
|
&QtControllerSelectorDialog::ApplyConfiguration);
|
|
|
|
|
|
- SetSupportedControllers();
|
|
|
- DisableUnsupportedPlayers();
|
|
|
- LoadConfiguration();
|
|
|
-
|
|
|
// If keep_controllers_connected is false, forcefully disconnect all controllers
|
|
|
if (!parameters.keep_controllers_connected) {
|
|
|
for (auto player : player_groupboxes) {
|
|
|
@@ -249,6 +254,21 @@ void QtControllerSelectorDialog::ApplyConfiguration() {
|
|
|
Settings::values.vibration_enabled = ui->vibrationGroup->isChecked();
|
|
|
}
|
|
|
|
|
|
+void QtControllerSelectorDialog::LoadConfiguration() {
|
|
|
+ for (std::size_t index = 0; index < NUM_PLAYERS; ++index) {
|
|
|
+ const auto connected = Settings::values.players[index].connected ||
|
|
|
+ (index == 0 && Settings::values.players[8].connected);
|
|
|
+ player_groupboxes[index]->setChecked(connected);
|
|
|
+ connected_controller_checkboxes[index]->setChecked(connected);
|
|
|
+ emulated_controllers[index]->setCurrentIndex(
|
|
|
+ GetIndexFromControllerType(Settings::values.players[index].controller_type));
|
|
|
+ }
|
|
|
+
|
|
|
+ UpdateDockedState(Settings::values.players[8].connected);
|
|
|
+
|
|
|
+ ui->vibrationGroup->setChecked(Settings::values.vibration_enabled);
|
|
|
+}
|
|
|
+
|
|
|
void QtControllerSelectorDialog::CallConfigureInputDialog() {
|
|
|
const auto max_supported_players = parameters.enable_single_mode ? 1 : parameters.max_players;
|
|
|
|
|
|
@@ -557,20 +577,6 @@ void QtControllerSelectorDialog::DisableUnsupportedPlayers() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void QtControllerSelectorDialog::LoadConfiguration() {
|
|
|
- for (std::size_t index = 0; index < NUM_PLAYERS; ++index) {
|
|
|
- const auto connected = Settings::values.players[index].connected ||
|
|
|
- (index == 0 && Settings::values.players[8].connected);
|
|
|
- player_groupboxes[index]->setChecked(connected);
|
|
|
- emulated_controllers[index]->setCurrentIndex(
|
|
|
- GetIndexFromControllerType(Settings::values.players[index].controller_type));
|
|
|
- }
|
|
|
-
|
|
|
- UpdateDockedState(Settings::values.players[8].connected);
|
|
|
-
|
|
|
- ui->vibrationGroup->setChecked(Settings::values.vibration_enabled);
|
|
|
-}
|
|
|
-
|
|
|
QtControllerSelector::QtControllerSelector(GMainWindow& parent) {
|
|
|
connect(this, &QtControllerSelector::MainWindowReconfigureControllers, &parent,
|
|
|
&GMainWindow::ControllerSelectorReconfigureControllers, Qt::QueuedConnection);
|