// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include "common/io_file.h" #include "core/file_format/pkg.h" #include "core/file_format/pkg_type.h" #include "core/file_format/psf.h" #include "game_info.h" #include "game_list_utils.h" #include "gui_context_menus.h" class PKGViewer : public QMainWindow { Q_OBJECT public: explicit PKGViewer( std::shared_ptr game_info_get, QWidget* parent, std::function InstallDragDropPkg = nullptr); ~PKGViewer(); void OpenPKGFolder(); void CheckPKGFolders(); void ProcessPKGInfo(); private: GuiContextMenus m_gui_context_menus; PKG package; PSF psf; PKGHeader pkgheader; PKGEntry entry; PSFHeader header; PSFEntry psfentry; char pkgTitleID[9]; std::vector pkg; u64 pkgSize = 0; std::unordered_map map_strings; std::unordered_map map_integers; u32_be pkg_content_flag; std::shared_ptr m_game_info; GameListUtils game_list_util; // Status bar QStatusBar* statusBar; std::vector> appTypes = { {0, "FULL APP"}, {1, "UPGRADABLE"}, {2, "DEMO"}, {3, "FREEMIUM"}, }; QStringList m_full_pkg_list; QStringList m_pkg_app_list; QStringList m_pkg_patch_list; QStringList m_pkg_list; QStringList dir_list; std::vector dir_list_std; QTreeWidget* treeWidget = nullptr; };