diff options
| author | JMC47 <JMC4789@gmail.com> | 2025-09-28 14:01:59 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-28 14:01:59 -0400 |
| commit | 72397ccd87154e6f54e332345ef577b28fc83e8e (patch) | |
| tree | e3531f178f7d159c6cbf3bb18a18f49258848921 /Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp | |
| parent | ba2acb872c294a7a01f8d24cd2a8cd9f4ec6f73a (diff) | |
| parent | 44f6743a5b6277bb9fc524fec8118632871d13ab (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/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); } |
