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/ARCodeWidget.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/ARCodeWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Config/ARCodeWidget.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt/Config/ARCodeWidget.cpp b/Source/Core/DolphinQt/Config/ARCodeWidget.cpp index d2aba6ed92..e1a00c68a9 100644 --- a/Source/Core/DolphinQt/Config/ARCodeWidget.cpp +++ b/Source/Core/DolphinQt/Config/ARCodeWidget.cpp @@ -8,14 +8,21 @@ #include <QCursor> #include <QHBoxLayout> +#ifdef USE_RETRO_ACHIEVEMENTS +#include <QIcon> +#endif // USE_RETRO_ACHIEVEMENTS #include <QListWidget> #include <QMenu> #include <QPushButton> +#ifdef USE_RETRO_ACHIEVEMENTS +#include <QStyle> +#endif // USE_RETRO_ACHIEVEMENTS #include <QVBoxLayout> #include "Common/FileUtil.h" #include "Common/IniFile.h" +#include "Core/AchievementManager.h" #include "Core/ActionReplay.h" #include "Core/ConfigManager.h" @@ -23,6 +30,9 @@ #include "DolphinQt/Config/CheatWarningWidget.h" #include "DolphinQt/Config/HardcoreWarningWidget.h" #include "DolphinQt/QtUtils/NonDefaultQPushButton.h" +#ifdef USE_RETRO_ACHIEVEMENTS +#include "DolphinQt/Settings.h" +#endif // USE_RETRO_ACHIEVEMENTS ARCodeWidget::ARCodeWidget(std::string game_id, u16 game_revision, bool restart_required) : m_game_id(std::move(game_id)), m_game_revision(game_revision), @@ -90,6 +100,7 @@ void ARCodeWidget::ConnectWidgets() #ifdef USE_RETRO_ACHIEVEMENTS connect(m_hc_warning, &HardcoreWarningWidget::OpenAchievementSettings, this, &ARCodeWidget::OpenAchievementSettings); + connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, &ARCodeWidget::UpdateList); #endif // USE_RETRO_ACHIEVEMENTS connect(m_code_list, &QListWidget::itemChanged, this, &ARCodeWidget::OnItemChanged); @@ -199,6 +210,21 @@ void ARCodeWidget::UpdateList() item->setCheckState(ar.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.IsApprovedARCode(ar, m_game_id, m_game_revision)) + item->setIcon(approved_icon); + else + item->setIcon(warning_icon); + } +#endif // USE_RETRO_ACHIEVEMENTS + m_code_list->addItem(item); } |
