summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp')
-rw-r--r--Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp27
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);
}