summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Config/ARCodeWidget.cpp
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2025-09-28 14:01:59 -0400
committerGitHub <noreply@github.com>2025-09-28 14:01:59 -0400
commit72397ccd87154e6f54e332345ef577b28fc83e8e (patch)
treee3531f178f7d159c6cbf3bb18a18f49258848921 /Source/Core/DolphinQt/Config/ARCodeWidget.cpp
parentba2acb872c294a7a01f8d24cd2a8cd9f4ec6f73a (diff)
parent44f6743a5b6277bb9fc524fec8118632871d13ab (diff)
Merge pull request #13909 from Dentomologist/codewidgets_show_code_approval_in_hardcore_mode
CodeWidgets: Show code approval in Hardcore mode
Diffstat (limited to 'Source/Core/DolphinQt/Config/ARCodeWidget.cpp')
-rw-r--r--Source/Core/DolphinQt/Config/ARCodeWidget.cpp26
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);
}