summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/yuzu/applets/controller.cpp46
-rw-r--r--src/yuzu/applets/controller.h6
2 files changed, 29 insertions, 23 deletions
diff --git a/src/yuzu/applets/controller.cpp b/src/yuzu/applets/controller.cpp
index 4783446a8..4920d2df6 100644
--- a/src/yuzu/applets/controller.cpp
+++ b/src/yuzu/applets/controller.cpp
@@ -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);
diff --git a/src/yuzu/applets/controller.h b/src/yuzu/applets/controller.h
index 6ab4bea09..2d6d588c6 100644
--- a/src/yuzu/applets/controller.h
+++ b/src/yuzu/applets/controller.h
@@ -37,6 +37,9 @@ private:
// Applies the current configuration.
void ApplyConfiguration();
+ // Loads the current input configuration into the frontend applet.
+ void LoadConfiguration();
+
// Initializes the "Configure Input" Dialog.
void CallConfigureInputDialog();
@@ -68,9 +71,6 @@ private:
// Disables and disconnects unsupported players based on the given parameters.
void DisableUnsupportedPlayers();
- // Loads the current input configuration into the frontend applet.
- void LoadConfiguration();
-
std::unique_ptr<Ui::QtControllerSelectorDialog> ui;
// Parameters sent in from the backend HLE applet.