Gamelist: Display title long names + improvements for shortcuts (#1126)

- Windows icons are stored as .ico files to %LOCALAPPDATA%/Cemu/icons/
- Long title names chosen as some games (NSMBU + NSLU) add trailing dots for their shortnames
- Long title names have their newlines replaced with spaces at parsing
- Linux shortcut paths are saved with UTF-8 encoding
- Game titles are copied and saved with UTF-8 encoding
This commit is contained in:
capitalistspz 2024-03-24 10:11:18 +00:00 committed by GitHub
parent 17060752b6
commit 241915e1a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 168 additions and 122 deletions

View file

@ -90,8 +90,11 @@ struct ParsedMetaXml
else if (boost::starts_with(name, "longname_"))
{
const sint32 index = GetLanguageIndex(name.substr(std::size("longname_") - 1));
if (index != -1)
parsedMetaXml->m_long_name[index] = child.text().as_string();
if (index != -1){
std::string longname = child.text().as_string();
std::replace_if(longname.begin(), longname.end(), [](char c) { return c == '\r' || c == '\n';}, ' ');
parsedMetaXml->m_long_name[index] = longname;
}
}
else if (boost::starts_with(name, L"shortname_"))
{

View file

@ -637,9 +637,9 @@ std::string TitleInfo::GetMetaTitleName() const
if (m_parsedMetaXml)
{
std::string titleNameCfgLanguage;
titleNameCfgLanguage = m_parsedMetaXml->GetShortName(GetConfig().console_language);
titleNameCfgLanguage = m_parsedMetaXml->GetLongName(GetConfig().console_language);
if (titleNameCfgLanguage.empty()) //Get English Title
titleNameCfgLanguage = m_parsedMetaXml->GetShortName(CafeConsoleLanguage::EN);
titleNameCfgLanguage = m_parsedMetaXml->GetLongName(CafeConsoleLanguage::EN);
if (titleNameCfgLanguage.empty()) //Unknown Title
titleNameCfgLanguage = "Unknown Title";
return titleNameCfgLanguage;