diff options
| author | Dentomologist <dentomologist@gmail.com> | 2025-08-24 11:12:12 -0700 |
|---|---|---|
| committer | Dentomologist <dentomologist@gmail.com> | 2025-08-25 12:31:38 -0700 |
| commit | 44f6743a5b6277bb9fc524fec8118632871d13ab (patch) | |
| tree | 28b4536b73e7e88ca9a376d6f13665b32dee5b9a /Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp | |
| parent | 2b7faeb920da31edb11f01c9a0473f86e4023100 (diff) | |
CodeWidgets: Show code approval in Hardcore mode
When Hardcore mode is enabled, show an icon for each code in
ARCodeWidget and GeckoCodeWidget indicating whether it's an approved
code or not.
Diffstat (limited to 'Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp b/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp index ddb6d656ff..aad8086853 100644 --- a/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp +++ b/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp @@ -10,16 +10,23 @@ #include <QFontDatabase> #include <QFormLayout> #include <QHBoxLayout> +#ifdef USE_RETRO_ACHIEVEMENTS +#include <QIcon> +#endif // USE_RETRO_ACHIEVEMENTS #include <QLabel> #include <QListWidget> #include <QMenu> #include <QPushButton> +#ifdef USE_RETRO_ACHIEVEMENTS +#include <QStyle> +#endif // USE_RETRO_ACHIEVEMENTS #include <QTextEdit> #include <QVBoxLayout> #include "Common/FileUtil.h" #include "Common/IniFile.h" +#include "Core/AchievementManager.h" #include "Core/ConfigManager.h" #include "Core/GeckoCode.h" #include "Core/GeckoCodeConfig.h" @@ -31,6 +38,9 @@ #include "DolphinQt/QtUtils/NonDefaultQPushButton.h" #include "DolphinQt/QtUtils/QtUtils.h" #include "DolphinQt/QtUtils/WrapInScrollArea.h" +#ifdef USE_RETRO_ACHIEVEMENTS +#include "DolphinQt/Settings.h" +#endif // USE_RETRO_ACHIEVEMENTS GeckoCodeWidget::GeckoCodeWidget(std::string game_id, std::string gametdb_id, u16 game_revision, bool restart_required) @@ -158,6 +168,8 @@ void GeckoCodeWidget::ConnectWidgets() #ifdef USE_RETRO_ACHIEVEMENTS connect(m_hc_warning, &HardcoreWarningWidget::OpenAchievementSettings, this, &GeckoCodeWidget::OpenAchievementSettings); + connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, + &GeckoCodeWidget::UpdateList); #endif // USE_RETRO_ACHIEVEMENTS } @@ -356,6 +368,21 @@ void GeckoCodeWidget::UpdateList() item->setCheckState(code.enabled ? Qt::Checked : Qt::Unchecked); item->setData(Qt::UserRole, static_cast<int>(i)); +#ifdef USE_RETRO_ACHIEVEMENTS + const AchievementManager& achievement_manager = AchievementManager::GetInstance(); + + if (achievement_manager.IsHardcoreModeActive()) + { + const QIcon approved_icon = style()->standardIcon(QStyle::SP_DialogYesButton); + const QIcon warning_icon = style()->standardIcon(QStyle::SP_MessageBoxWarning); + + if (achievement_manager.IsApprovedGeckoCode(code, m_game_id, m_game_revision)) + item->setIcon(approved_icon); + else + item->setIcon(warning_icon); + } +#endif // USE_RETRO_ACHIEVEMENTS + m_code_list->addItem(item); } |
