From c40e8ee3a8f3e2e961ae5fcc4442431744741b1a Mon Sep 17 00:00:00 2001 From: "Admiral H. Curtiss" Date: Thu, 16 Sep 2021 07:35:15 +0200 Subject: [PATCH] Qt/CheatsManager: Show disabled AR and Gecko tabs when no game is running. --- Source/Core/DolphinQt/CheatsManager.cpp | 16 +++++++++++----- Source/Core/DolphinQt/CheatsManager.h | 2 ++ 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Source/Core/DolphinQt/CheatsManager.cpp b/Source/Core/DolphinQt/CheatsManager.cpp index a2be055019..b5fffd771c 100644 --- a/Source/Core/DolphinQt/CheatsManager.cpp +++ b/Source/Core/DolphinQt/CheatsManager.cpp @@ -30,24 +30,30 @@ CheatsManager::CheatsManager(QWidget* parent) : QDialog(parent) connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, &CheatsManager::OnStateChanged); - OnStateChanged(Core::GetState()); - CreateWidgets(); ConnectWidgets(); + + RefreshCodeTabs(Core::GetState(), true); } CheatsManager::~CheatsManager() = default; void CheatsManager::OnStateChanged(Core::State state) { - if (state != Core::State::Running && state != Core::State::Paused) + RefreshCodeTabs(state, false); +} + +void CheatsManager::RefreshCodeTabs(Core::State state, bool force) +{ + if (!force && (state == Core::State::Starting || state == Core::State::Stopping)) return; - const auto& game_id = SConfig::GetInstance().GetGameID(); + const auto& game_id = + state != Core::State::Uninitialized ? SConfig::GetInstance().GetGameID() : std::string(); const auto& game_tdb_id = SConfig::GetInstance().GetGameTDBID(); const u16 revision = SConfig::GetInstance().GetRevision(); - if (m_game_id == game_id && m_game_tdb_id == game_tdb_id && m_revision == revision) + if (!force && m_game_id == game_id && m_game_tdb_id == game_tdb_id && m_revision == revision) return; m_game_id = game_id; diff --git a/Source/Core/DolphinQt/CheatsManager.h b/Source/Core/DolphinQt/CheatsManager.h index 73dea563d5..450e004fe9 100644 --- a/Source/Core/DolphinQt/CheatsManager.h +++ b/Source/Core/DolphinQt/CheatsManager.h @@ -43,6 +43,8 @@ private: void OnNewSessionCreated(const Cheats::CheatSearchSessionBase& session); void OnTabCloseRequested(int index); + void RefreshCodeTabs(Core::State state, bool force); + std::string m_game_id; std::string m_game_tdb_id; u16 m_revision = 0;