|
|
|
@ -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);
|
|
|
|
|