From e6334dd9d8641eb9155d51d978ed76ba4326238a Mon Sep 17 00:00:00 2001 From: Henrik Rydgard Date: Tue, 21 Oct 2014 00:09:24 +0200 Subject: [PATCH] Display .7z files in file listings. Can't decompress them though. --- Core/Loaders.cpp | 10 ++++++++++ Core/Loaders.h | 1 + UI/GameInfoCache.cpp | 15 +++++++++++++++ UI/MainScreen.cpp | 2 +- assets/7z.png | Bin 0 -> 11155 bytes lang | 2 +- native | 2 +- source_assets/image/zip.pdn | Bin 0 -> 27555 bytes 8 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 assets/7z.png create mode 100644 source_assets/image/zip.pdn diff --git a/Core/Loaders.cpp b/Core/Loaders.cpp index 26328b1dd9..afd7418160 100644 --- a/Core/Loaders.cpp +++ b/Core/Loaders.cpp @@ -193,6 +193,8 @@ IdentifiedFileType Identify_File(std::string &filename) return FILETYPE_ARCHIVE_RAR; } else if (!strcasecmp(extension.c_str(),".r01")) { return FILETYPE_ARCHIVE_RAR; + } else if (!strcasecmp(extension.substr(1).c_str(), ".7z")) { + return FILETYPE_ARCHIVE_7Z; } return FILETYPE_UNKNOWN; } @@ -268,6 +270,14 @@ bool LoadFile(std::string &filename, std::string *error_string) { #endif break; + case FILETYPE_ARCHIVE_7Z: +#ifdef WIN32 + *error_string = "7z file detected (Require 7-Zip)"; +#else + *error_string = "7z file detected (Require 7-Zip)"; +#endif + break; + case FILETYPE_ISO_MODE2: *error_string = "PSX game image detected."; break; diff --git a/Core/Loaders.h b/Core/Loaders.h index 711b830396..ddf1ee5b43 100644 --- a/Core/Loaders.h +++ b/Core/Loaders.h @@ -37,6 +37,7 @@ enum IdentifiedFileType { // Try to reduce support emails... FILETYPE_ARCHIVE_RAR, FILETYPE_ARCHIVE_ZIP, + FILETYPE_ARCHIVE_7Z, FILETYPE_PSP_PS1_PBP, FILETYPE_ISO_MODE2, diff --git a/UI/GameInfoCache.cpp b/UI/GameInfoCache.cpp index 716c6ec70f..985950b5ff 100644 --- a/UI/GameInfoCache.cpp +++ b/UI/GameInfoCache.cpp @@ -445,6 +445,21 @@ handleELF: } break; + case FILETYPE_ARCHIVE_7Z: + info_->paramSFOLoaded = true; + { + // Read standard icon + size_t sz; + uint8_t *contents = VFSReadFile("7z.png", &sz); + if (contents) { + lock_guard lock(info_->lock); + info_->iconTextureData = std::string((const char *)contents, sz); + info_->iconDataLoaded = true; + } + delete[] contents; + } + break; + case FILETYPE_NORMAL_DIRECTORY: default: info_->paramSFOLoaded = true; diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index ea038156bc..d1a1ac738a 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -550,7 +550,7 @@ void GameBrowser::Refresh() { // to a flood of support email... if (allowBrowsing_) { fileInfo.clear(); - path_.GetListing(fileInfo, "zip:rar:r01:"); + path_.GetListing(fileInfo, "zip:rar:r01:7z:"); if (!fileInfo.empty()) { UI::LinearLayout *zl = new UI::LinearLayout(UI::ORIENT_VERTICAL, new LinearLayoutParams(FILL_PARENT, WRAP_CONTENT)); zl->SetSpacing(4.0f); diff --git a/assets/7z.png b/assets/7z.png new file mode 100644 index 0000000000000000000000000000000000000000..b49535297f7e70dccb24ac63417ac6a01af86584 GIT binary patch literal 11155 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 literal 0 HcmV?d00001 diff --git a/lang b/lang index 0644f2d429..e86e58ff66 160000 --- a/lang +++ b/lang @@ -1 +1 @@ -Subproject commit 0644f2d429ad2c3af2a80bed90bd1fe9d8240c37 +Subproject commit e86e58ff6650d6a892e5ffb477691be6961a2363 diff --git a/native b/native index faca4e72ec..428f338f28 160000 --- a/native +++ b/native @@ -1 +1 @@ -Subproject commit faca4e72ecd1f27531d635cf29420498cca36574 +Subproject commit 428f338f28a2909a444e77888ccfce4e1eb55f47 diff --git a/source_assets/image/zip.pdn b/source_assets/image/zip.pdn new file mode 100644 index 0000000000000000000000000000000000000000..763b069740a5ed6a2b0c0388d7fd435e256195f2 GIT binary patch literal 27555 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 literal 0 HcmV?d00001