From f4c096ea4e34b0feee122120f18f75641522345f Mon Sep 17 00:00:00 2001 From: rainmakerv3 <30595646+rainmakerv3@users.noreply.github.com> Date: Sun, 29 Jun 2025 06:47:35 +0800 Subject: [PATCH] Populate the default controller labels --- src/qt_gui/control_settings.cpp | 37 ++++++++++++++++++++++----------- src/qt_gui/control_settings.h | 1 - src/qt_gui/control_settings.ui | 2 +- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/qt_gui/control_settings.cpp b/src/qt_gui/control_settings.cpp index 15f4d4b95..4960d9524 100644 --- a/src/qt_gui/control_settings.cpp +++ b/src/qt_gui/control_settings.cpp @@ -13,7 +13,6 @@ #include "ui_control_settings.h" std::string ControllerSelect::ActiveGamepad = ""; -std::string ControllerSelect::DefaultGamepad = ""; ControlSettings::ControlSettings(std::shared_ptr game_info_get, bool isGameRunning, std::string GameRunningSerial, QWidget* parent) @@ -130,6 +129,9 @@ ControlSettings::ControlSettings(std::shared_ptr game_info_get, b char pszGUID[33]; SDL_GUIDToString(SDL_GetGamepadGUIDForID(gamepads[ui->ActiveGamepadBox->currentIndex()]), pszGUID, 33); + ui->DefaultGamepadName->setText(ui->ActiveGamepadBox->currentText()); + ui->DefaultGamepadLabel->setText("ID: " + + QString::fromStdString(std::string(pszGUID)).right(16)); Config::setDefaultControllerID(std::string(pszGUID)); Config::save(Common::FS::GetUserPath(Common::FS::PathType::UserDir) / "config.toml"); QMessageBox::information(this, tr("Default Controller Selected"), @@ -207,6 +209,26 @@ void ControlSettings::ResetActiveControllerBox() { } char pszGUID[33]; + int defaultIndex; + QString defaultID = ""; + + if (Config::getDefaultControllerID() != "") { + for (int i = 0; i < gamepad_count; i++) { + SDL_GUIDToString(SDL_GetGamepadGUIDForID(gamepads[i]), pszGUID, 33); + std::string currentGUID = std::string(pszGUID); + if (currentGUID == Config::getDefaultControllerID()) { + defaultIndex = i; + defaultID = QString::fromStdString(std::string(pszGUID)).right(16); + ui->DefaultGamepadName->setText(SDL_GetGamepadNameForID(gamepads[i])); + ui->DefaultGamepadLabel->setText("ID: " + defaultID); + break; + } + } + + if (defaultID == "") + ui->DefaultGamepadName->setText("Default controller not connected"); + } + if (ControllerSelect::ActiveGamepad != "") { for (int i = 0; i < gamepad_count; i++) { SDL_GUIDToString(SDL_GetGamepadGUIDForID(gamepads[i]), pszGUID, 33); @@ -220,17 +242,8 @@ void ControlSettings::ResetActiveControllerBox() { } } } else if (Config::getDefaultControllerID() != "") { - for (int i = 0; i < gamepad_count; i++) { - SDL_GUIDToString(SDL_GetGamepadGUIDForID(gamepads[i]), pszGUID, 33); - std::string currentGUID = std::string(pszGUID); - if (currentGUID == Config::getDefaultControllerID()) { - SDL_GUIDToString(SDL_GetGamepadGUIDForID(gamepads[i]), pszGUID, 33); - QString GUID = QString::fromStdString(std::string(pszGUID)).right(16); - ui->ActiveGamepadLabel->setText("ID: " + GUID); - ui->ActiveGamepadBox->setCurrentIndex(i); - break; - } - } + ui->ActiveGamepadLabel->setText(defaultID); + ui->ActiveGamepadBox->setCurrentIndex(defaultIndex); } else { SDL_GUIDToString(SDL_GetGamepadGUIDForID(gamepads[0]), pszGUID, 33); QString GUID = QString::fromStdString(std::string(pszGUID)).right(16); diff --git a/src/qt_gui/control_settings.h b/src/qt_gui/control_settings.h index 91c5442f0..235485ed5 100644 --- a/src/qt_gui/control_settings.h +++ b/src/qt_gui/control_settings.h @@ -88,5 +88,4 @@ protected: namespace ControllerSelect { extern std::string ActiveGamepad; -extern std::string DefaultGamepad; } // namespace ControllerSelect diff --git a/src/qt_gui/control_settings.ui b/src/qt_gui/control_settings.ui index d620490ee..d7860b28a 100644 --- a/src/qt_gui/control_settings.ui +++ b/src/qt_gui/control_settings.ui @@ -735,7 +735,7 @@ - Gamepad ID + n/a Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter