From 232d24109df7af9449c0604523ce4568e78aa52d Mon Sep 17 00:00:00 2001 From: Dentomologist Date: Tue, 30 Jul 2024 19:44:10 -0700 Subject: [PATCH] Extract ARCodeWidget/GeckoCodeWidget code loading to functions --- Source/Core/DolphinQt/Config/ARCodeWidget.cpp | 45 ++++++++------- Source/Core/DolphinQt/Config/ARCodeWidget.h | 1 + .../Core/DolphinQt/Config/GeckoCodeWidget.cpp | 55 ++++++++++--------- .../Core/DolphinQt/Config/GeckoCodeWidget.h | 1 + 4 files changed, 57 insertions(+), 45 deletions(-) diff --git a/Source/Core/DolphinQt/Config/ARCodeWidget.cpp b/Source/Core/DolphinQt/Config/ARCodeWidget.cpp index f42a33317b..82a5dce74b 100644 --- a/Source/Core/DolphinQt/Config/ARCodeWidget.cpp +++ b/Source/Core/DolphinQt/Config/ARCodeWidget.cpp @@ -35,21 +35,7 @@ ARCodeWidget::ARCodeWidget(std::string game_id, u16 game_revision, bool restart_ CreateWidgets(); ConnectWidgets(); - if (!m_game_id.empty()) - { - Common::IniFile game_ini_local; - - // We don't use LoadLocalGameIni() here because user cheat codes that are installed via the UI - // will always be stored in GS/${GAMEID}.ini - game_ini_local.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + m_game_id + ".ini"); - - const Common::IniFile game_ini_default = - SConfig::LoadDefaultGameIni(m_game_id, m_game_revision); - m_ar_codes = ActionReplay::LoadCodes(game_ini_default, game_ini_local); - } - - UpdateList(); - OnSelectionChanged(); + LoadCodes(); } ARCodeWidget::~ARCodeWidget() = default; @@ -65,11 +51,6 @@ void ARCodeWidget::CreateWidgets() m_code_edit = new NonDefaultQPushButton(tr("&Edit Code...")); m_code_remove = new NonDefaultQPushButton(tr("&Remove Code")); - m_code_list->setEnabled(!m_game_id.empty()); - m_code_add->setEnabled(!m_game_id.empty()); - m_code_edit->setEnabled(false); - m_code_remove->setEnabled(false); - m_code_list->setContextMenuPolicy(Qt::CustomContextMenu); auto* button_layout = new QHBoxLayout; @@ -218,6 +199,30 @@ void ARCodeWidget::UpdateList() m_code_list->setDragDropMode(QAbstractItemView::InternalMove); } +void ARCodeWidget::LoadCodes() +{ + if (!m_game_id.empty()) + { + Common::IniFile game_ini_local; + + // We don't use LoadLocalGameIni() here because user cheat codes that are installed via the UI + // will always be stored in GS/${GAMEID}.ini + game_ini_local.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + m_game_id + ".ini"); + + const Common::IniFile game_ini_default = + SConfig::LoadDefaultGameIni(m_game_id, m_game_revision); + m_ar_codes = ActionReplay::LoadCodes(game_ini_default, game_ini_local); + } + + m_code_list->setEnabled(!m_game_id.empty()); + m_code_add->setEnabled(!m_game_id.empty()); + m_code_edit->setEnabled(false); + m_code_remove->setEnabled(false); + + UpdateList(); + OnSelectionChanged(); +} + void ARCodeWidget::SaveCodes() { if (m_game_id.empty()) diff --git a/Source/Core/DolphinQt/Config/ARCodeWidget.h b/Source/Core/DolphinQt/Config/ARCodeWidget.h index e5a96a09f9..765744632f 100644 --- a/Source/Core/DolphinQt/Config/ARCodeWidget.h +++ b/Source/Core/DolphinQt/Config/ARCodeWidget.h @@ -47,6 +47,7 @@ private: void CreateWidgets(); void ConnectWidgets(); void UpdateList(); + void LoadCodes(); void SaveCodes(); void SortAlphabetically(); void SortEnabledCodesFirst(); diff --git a/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp b/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp index b365e8220c..08db0c1648 100644 --- a/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp +++ b/Source/Core/DolphinQt/Config/GeckoCodeWidget.cpp @@ -42,20 +42,7 @@ GeckoCodeWidget::GeckoCodeWidget(std::string game_id, std::string gametdb_id, u1 CreateWidgets(); ConnectWidgets(); - if (!m_game_id.empty()) - { - Common::IniFile game_ini_local; - - // We don't use LoadLocalGameIni() here because user cheat codes that are installed via the UI - // will always be stored in GS/${GAMEID}.ini - game_ini_local.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + m_game_id + ".ini"); - - const Common::IniFile game_ini_default = - SConfig::LoadDefaultGameIni(m_game_id, m_game_revision); - m_gecko_codes = Gecko::LoadCodes(game_ini_default, game_ini_local); - } - - UpdateList(); + LoadCodes(); } GeckoCodeWidget::~GeckoCodeWidget() = default; @@ -93,17 +80,6 @@ void GeckoCodeWidget::CreateWidgets() m_download_codes->setToolTip(tr("Download Codes from the WiiRD Database")); - m_code_list->setEnabled(!m_game_id.empty()); - m_name_label->setEnabled(!m_game_id.empty()); - m_creator_label->setEnabled(!m_game_id.empty()); - m_code_description->setEnabled(!m_game_id.empty()); - m_code_view->setEnabled(!m_game_id.empty()); - - m_add_code->setEnabled(!m_game_id.empty()); - m_edit_code->setEnabled(false); - m_remove_code->setEnabled(false); - m_download_codes->setEnabled(!m_game_id.empty()); - auto* layout = new QVBoxLayout; layout->addWidget(m_warning); @@ -253,6 +229,35 @@ void GeckoCodeWidget::RemoveCode() SaveCodes(); } +void GeckoCodeWidget::LoadCodes() +{ + if (!m_game_id.empty()) + { + Common::IniFile game_ini_local; + + // We don't use LoadLocalGameIni() here because user cheat codes that are installed via the UI + // will always be stored in GS/${GAMEID}.ini + game_ini_local.Load(File::GetUserPath(D_GAMESETTINGS_IDX) + m_game_id + ".ini"); + + const Common::IniFile game_ini_default = + SConfig::LoadDefaultGameIni(m_game_id, m_game_revision); + m_gecko_codes = Gecko::LoadCodes(game_ini_default, game_ini_local); + } + + m_code_list->setEnabled(!m_game_id.empty()); + m_name_label->setEnabled(!m_game_id.empty()); + m_creator_label->setEnabled(!m_game_id.empty()); + m_code_description->setEnabled(!m_game_id.empty()); + m_code_view->setEnabled(!m_game_id.empty()); + + m_add_code->setEnabled(!m_game_id.empty()); + m_edit_code->setEnabled(false); + m_remove_code->setEnabled(false); + m_download_codes->setEnabled(!m_game_id.empty()); + + UpdateList(); +} + void GeckoCodeWidget::SaveCodes() { if (m_game_id.empty()) diff --git a/Source/Core/DolphinQt/Config/GeckoCodeWidget.h b/Source/Core/DolphinQt/Config/GeckoCodeWidget.h index bbf13cc253..b387129890 100644 --- a/Source/Core/DolphinQt/Config/GeckoCodeWidget.h +++ b/Source/Core/DolphinQt/Config/GeckoCodeWidget.h @@ -52,6 +52,7 @@ private: void EditCode(); void RemoveCode(); void DownloadCodes(); + void LoadCodes(); void SaveCodes(); void SortAlphabetically(); void SortEnabledCodesFirst();