diff options
| author | LC <mathew1800@gmail.com> | 2020-07-19 17:35:34 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-19 17:35:34 -0400 |
| commit | ae2348023ba0e554f209c8a5aab35f853b41b802 (patch) | |
| tree | 4c6bab5d54151fdf60b3db25581b3abc0edd962b /Source/Core | |
| parent | d48056c1cda5759ffed0918e0ccc50157b5f2908 (diff) | |
| parent | fe5e92f706be7e52b84d9a1d94781612e5146f59 (diff) | |
Merge pull request #8964 from JosJuice/list-wad-file-type
DolphinQt: Show WAD as "WAD" instead of "" in file format column
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/DolphinQt/GameList/GameListModel.cpp | 7 | ||||
| -rw-r--r-- | Source/Core/UICommon/GameFile.cpp | 34 | ||||
| -rw-r--r-- | Source/Core/UICommon/GameFile.h | 2 |
3 files changed, 31 insertions, 12 deletions
diff --git a/Source/Core/DolphinQt/GameList/GameListModel.cpp b/Source/Core/DolphinQt/GameList/GameListModel.cpp index 8ffcd70198..99cd631e92 100644 --- a/Source/Core/DolphinQt/GameList/GameListModel.cpp +++ b/Source/Core/DolphinQt/GameList/GameListModel.cpp @@ -168,12 +168,7 @@ QVariant GameListModel::data(const QModelIndex& index, int role) const break; case COL_FILE_FORMAT: if (role == Qt::DisplayRole || role == SORT_ROLE) - { - if (game.ShouldShowFileFormatDetails()) - return QString::fromStdString(DiscIO::GetName(game.GetBlobType(), true)); - else - return {}; - } + return QString::fromStdString(game.GetFileFormatName()); break; case COL_BLOCK_SIZE: if (role == Qt::DisplayRole) diff --git a/Source/Core/UICommon/GameFile.cpp b/Source/Core/UICommon/GameFile.cpp index 25892bca67..b28d54e944 100644 --- a/Source/Core/UICommon/GameFile.cpp +++ b/Source/Core/UICommon/GameFile.cpp @@ -336,14 +336,17 @@ void GameFile::DoState(PointerWrap& p) m_custom_cover.DoState(p); } -bool GameFile::IsElfOrDol() const +std::string GameFile::GetExtension() const { - if (m_file_path.size() < 4) - return false; + std::string extension; + SplitPath(m_file_path, nullptr, nullptr, &extension); + return extension; +} - std::string name_end = m_file_path.substr(m_file_path.size() - 4); - std::transform(name_end.begin(), name_end.end(), name_end.begin(), ::tolower); - return name_end == ".elf" || name_end == ".dol"; +bool GameFile::IsElfOrDol() const +{ + const std::string extension = GetExtension(); + return extension == ".elf" || extension == ".dol"; } bool GameFile::ReadXMLMetadata(const std::string& path) @@ -592,6 +595,25 @@ bool GameFile::ShouldShowFileFormatDetails() const } } +std::string GameFile::GetFileFormatName() const +{ + switch (m_platform) + { + case DiscIO::Platform::WiiWAD: + return "WAD"; + case DiscIO::Platform::ELFOrDOL: + { + std::string extension = GetExtension(); + std::transform(extension.begin(), extension.end(), extension.begin(), ::toupper); + + // substr removes the dot + return extension.substr(std::min<size_t>(1, extension.size())); + } + default: + return DiscIO::GetName(m_blob_type, true); + } +} + const GameBanner& GameFile::GetBannerImage() const { return m_custom_banner.empty() ? m_volume_banner : m_custom_banner; diff --git a/Source/Core/UICommon/GameFile.h b/Source/Core/UICommon/GameFile.h index 3450111238..dcf33ee677 100644 --- a/Source/Core/UICommon/GameFile.h +++ b/Source/Core/UICommon/GameFile.h @@ -89,6 +89,7 @@ public: u64 GetBlockSize() const { return m_block_size; } const std::string& GetCompressionMethod() const { return m_compression_method; } bool ShouldShowFileFormatDetails() const; + std::string GetFileFormatName() const; const std::string& GetApploaderDate() const { return m_apploader_date; } u64 GetFileSize() const { return m_file_size; } u64 GetVolumeSize() const { return m_volume_size; } @@ -115,6 +116,7 @@ private: const std::map<DiscIO::Language, std::string>& strings); const std::string& LookupUsingConfigLanguage(const std::map<DiscIO::Language, std::string>& strings) const; + std::string GetExtension() const; bool IsElfOrDol() const; bool ReadXMLMetadata(const std::string& path); bool ReadPNGBanner(const std::string& path); |
