From a1aeed0268b696303bfbf679ddd923d8e1df8959 Mon Sep 17 00:00:00 2001 From: Dmugetsu Date: Sun, 29 Jun 2025 06:18:46 -0600 Subject: [PATCH] Fixing errors and reading path box for games directories --- src/common/config.cpp | 10 +++++----- src/common/config.h | 6 +++--- src/core/libraries/app_content/app_content.cpp | 4 ++-- src/qt_gui/game_directory_dialog.cpp | 10 +++++++++- src/qt_gui/gui_context_menus.h | 2 +- 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/common/config.cpp b/src/common/config.cpp index 23b5b825f..5bbf4fd2d 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -77,9 +77,9 @@ static bool isPSNSignedIn = false; // Gui static bool load_game_size = true; static std::vector settings_directories = {}; -static std::vector directories_enabled = {}; -static std::filesystem::path settings_addon_directories = {}; -static std::filesystem::path save_data_path = {}; +std::vector directories_enabled = {}; +std::filesystem::path settings_addon_directories = {}; +std::filesystem::path save_data_path = {}; static bool isFullscreen = false; static std::string fullscreenMode = "Windowed"; static bool isHDRAllowed = false; @@ -486,7 +486,7 @@ void setSaveDataPath(const std::filesystem::path& path) { save_data_path = path; } -const std::vector getGameDirectories() { +std::vector Config::getGameDirectories() { std::vector enabled_dirs; for (const auto& dir : settings_directories) { if (dir.enabled) { @@ -496,7 +496,7 @@ const std::vector getGameDirectories() { return enabled_dirs; } -const std::vector getGameDirsEnabled() { +std::vector Config::getGameDirectoriesEnabled() { std::vector enabled_dirs; for (const auto& dir : settings_directories) { enabled_dirs.push_back(dir.enabled); diff --git a/src/common/config.h b/src/common/config.h index 5371322a6..a23c7c943 100644 --- a/src/common/config.h +++ b/src/common/config.h @@ -121,9 +121,9 @@ void removeGameDirectories(const std::filesystem::path& dir); void setGameDirectoriesEnabled(const std::filesystem::path& dir, bool enabled); void setAddonDirectories(const std::filesystem::path& dir); -const std::vector& getGameDirectories(); -const std::vector& getGameDirectoriesEnabled(); -const std::filesystem::path& getAddonDirectories(); +std::vector getGameDirectories(); +std::vector getGameDirectoriesEnabled(); +std::filesystem::path getAddonDirectory(); void setDefaultValues(); diff --git a/src/core/libraries/app_content/app_content.cpp b/src/core/libraries/app_content/app_content.cpp index 09995ec39..19464192e 100644 --- a/src/core/libraries/app_content/app_content.cpp +++ b/src/core/libraries/app_content/app_content.cpp @@ -57,7 +57,7 @@ int PS4_SYSV_ABI sceAppContentAddcontMount(u32 service_label, OrbisAppContentMountPoint* mount_point) { LOG_INFO(Lib_AppContent, "called"); - const auto& mount_dir = Config::getAddonDirectories() / title_id / entitlement_label->data; + const auto& mount_dir = Config::getAddonDirectory() / title_id / entitlement_label->data; auto* mnt = Common::Singleton::Instance(); for (int i = 0; i < addcont_count; i++) { @@ -244,7 +244,7 @@ int PS4_SYSV_ABI sceAppContentInitialize(const OrbisAppContentInitParam* initPar LOG_ERROR(Lib_AppContent, "(DUMMY) called"); auto* param_sfo = Common::Singleton::Instance(); - const auto addons_dir = Config::getAddonDirectories(); + const auto addons_dir = Config::getAddonDirectory(); if (const auto value = param_sfo->GetString("TITLE_ID"); value.has_value()) { title_id = *value; } else { diff --git a/src/qt_gui/game_directory_dialog.cpp b/src/qt_gui/game_directory_dialog.cpp index 2e0b3a331..d07224922 100644 --- a/src/qt_gui/game_directory_dialog.cpp +++ b/src/qt_gui/game_directory_dialog.cpp @@ -47,6 +47,14 @@ void GameDirectoryDialog::BrowseAddonsDirectory() { QWidget* GameDirectoryDialog::SetupGamesDirectory() { auto group = new QGroupBox(tr("Games Directory")); auto layout = new QHBoxLayout(group); + // Input. + m_gamesDirectory = new QLineEdit(); + QString directory; + std::filesystem::path directory_path = + Config::getGameDirectories().empty() ? "" : Config::getGameDirectories().front(); + Common::FS::PathToQString(directory, directory_path); + m_gamesDirectory->setText(directory); + m_gamesDirectory->setMinimumWidth(400); layout->addWidget(m_gamesDirectory); @@ -67,7 +75,7 @@ QWidget* GameDirectoryDialog::SetupAddonsDirectory() { // Input. m_addonsDirectory = new QLineEdit(); QString directories; - Common::FS::PathToQString(directories, Config::getAddonDirectories()); + Common::FS::PathToQString(directories, Config::getAddonDirectory()); m_addonsDirectory->setText(directories); m_addonsDirectory->setMinimumWidth(400); diff --git a/src/qt_gui/gui_context_menus.h b/src/qt_gui/gui_context_menus.h index 3cfb4f2d5..8d23c8841 100644 --- a/src/qt_gui/gui_context_menus.h +++ b/src/qt_gui/gui_context_menus.h @@ -504,7 +504,7 @@ public: game_update_path = folder_path + "-patch"; } Common::FS::PathToQString( - dlc_path, Config::getAddonDirectories() / + dlc_path, Config::getAddonDirectory() / Common::FS::PathFromQString(folder_path).parent_path().filename()); Common::FS::PathToQString(save_data_path, Config::GetSaveDataPath() / "1" / m_games[itemID].save_dir);