mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-30 21:30:04 +00:00 
			
		
		
		
	Allow displaying of the full title in the interface, as well as use the full title in the search filter
This commit is contained in:
		
							parent
							
								
									d6f2bc8c04
								
							
						
					
					
						commit
						f9cded05fd
					
				
					 6 changed files with 43 additions and 4 deletions
				
			
		|  | @ -126,7 +126,12 @@ | |||
|             </item> | ||||
|             <item> | ||||
|              <property name="text"> | ||||
|               <string>Title Name</string> | ||||
|               <string>Title Name (short)</string> | ||||
|              </property> | ||||
|             </item> | ||||
|             <item> | ||||
|              <property name="text"> | ||||
|               <string>Title Name (long)</string> | ||||
|              </property> | ||||
|             </item> | ||||
|             <item> | ||||
|  | @ -166,7 +171,12 @@ | |||
|             </item> | ||||
|             <item> | ||||
|              <property name="text"> | ||||
|               <string>Title Name</string> | ||||
|               <string>Title Name (short)</string> | ||||
|              </property> | ||||
|             </item> | ||||
|             <item> | ||||
|              <property name="text"> | ||||
|               <string>Title Name (long)</string> | ||||
|              </property> | ||||
|             </item> | ||||
|             <item> | ||||
|  |  | |||
|  | @ -215,7 +215,7 @@ void GameList::onTextChanged(const QString& newText) { | |||
|                     child->data(GameListItemPath::FullPathRole).toString().toLower(); | ||||
|                 QString file_name = file_path.mid(file_path.lastIndexOf("/") + 1); | ||||
|                 const QString file_title = | ||||
|                     child->data(GameListItemPath::TitleRole).toString().toLower(); | ||||
|                     child->data(GameListItemPath::LongTitleRole).toString().toLower(); | ||||
|                 const QString file_programmid = | ||||
|                     child->data(GameListItemPath::ProgramIdRole).toString().toLower(); | ||||
| 
 | ||||
|  |  | |||
|  | @ -70,6 +70,17 @@ static QString GetQStringShortTitleFromSMDH(const Loader::SMDH& smdh, | |||
|     return QString::fromUtf16(smdh.GetShortTitle(language).data()); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Gets the long game title from SMDH data. | ||||
|  * @param smdh SMDH data | ||||
|  * @param language title language | ||||
|  * @return QString long title | ||||
|  */ | ||||
| static QString GetQStringLongTitleFromSMDH(const Loader::SMDH& smdh, | ||||
|                                             Loader::SMDH::TitleLanguage language) { | ||||
|     return QString::fromUtf16(smdh.GetLongTitle(language).data()); | ||||
| } | ||||
| 
 | ||||
| /**
 | ||||
|  * Gets the game region from SMDH data. | ||||
|  * @param smdh SMDH data | ||||
|  | @ -139,6 +150,7 @@ public: | |||
|     static const int FullPathRole = SortRole + 1; | ||||
|     static const int ProgramIdRole = SortRole + 2; | ||||
|     static const int ExtdataIdRole = SortRole + 3; | ||||
|     static const int LongTitleRole = SortRole + 4; | ||||
| 
 | ||||
|     GameListItemPath() = default; | ||||
|     GameListItemPath(const QString& game_path, const std::vector<u8>& smdh_data, u64 program_id, | ||||
|  | @ -173,6 +185,10 @@ public: | |||
|         // Get title from SMDH
 | ||||
|         setData(GetQStringShortTitleFromSMDH(smdh, Loader::SMDH::TitleLanguage::English), | ||||
|                 TitleRole); | ||||
| 
 | ||||
|         // Get long title from SMDH
 | ||||
|         setData(GetQStringLongTitleFromSMDH(smdh, Loader::SMDH::TitleLanguage::English), | ||||
|                 LongTitleRole); | ||||
|     } | ||||
| 
 | ||||
|     int type() const override { | ||||
|  | @ -189,11 +205,12 @@ public: | |||
|                 {UISettings::GameListText::FileName, QString::fromStdString(filename + extension)}, | ||||
|                 {UISettings::GameListText::FullPath, data(FullPathRole).toString()}, | ||||
|                 {UISettings::GameListText::TitleName, data(TitleRole).toString()}, | ||||
|                 {UISettings::GameListText::LongTitleName, data(LongTitleRole).toString()}, | ||||
|                 {UISettings::GameListText::TitleID, | ||||
|                  QString::fromStdString(fmt::format("{:016X}", data(ProgramIdRole).toULongLong()))}, | ||||
|             }; | ||||
| 
 | ||||
|             const QString& row1 = display_texts.at(UISettings::values.game_list_row_1); | ||||
|             const QString& row1 = display_texts.at(UISettings::values.game_list_row_1).simplified(); | ||||
| 
 | ||||
|             QString row2; | ||||
|             auto row_2_id = UISettings::values.game_list_row_2; | ||||
|  |  | |||
|  | @ -50,6 +50,7 @@ enum class GameListText { | |||
|     FileName,    ///< Display the file name of the entry
 | ||||
|     FullPath,    ///< Display the full path of the entry
 | ||||
|     TitleName,   ///< Display the name of the title
 | ||||
|     LongTitleName,   ///< Display the long name of the title
 | ||||
|     TitleID,     ///< Display the title ID
 | ||||
| }; | ||||
| 
 | ||||
|  |  | |||
|  | @ -48,6 +48,10 @@ std::array<u16, 0x40> SMDH::GetShortTitle(Loader::SMDH::TitleLanguage language) | |||
|     return titles[static_cast<int>(language)].short_title; | ||||
| } | ||||
| 
 | ||||
| std::array<u16, 0x80> SMDH::GetLongTitle(Loader::SMDH::TitleLanguage language) const { | ||||
|     return titles[static_cast<int>(language)].long_title; | ||||
| } | ||||
| 
 | ||||
| std::vector<SMDH::GameRegion> SMDH::GetRegions() const { | ||||
|     constexpr u32 REGION_COUNT = 7; | ||||
|     std::vector<GameRegion> result; | ||||
|  |  | |||
|  | @ -86,6 +86,13 @@ struct SMDH { | |||
|      */ | ||||
|     std::array<u16, 0x40> GetShortTitle(Loader::SMDH::TitleLanguage language) const; | ||||
| 
 | ||||
|     /**
 | ||||
|      * Gets the long game title from SMDH | ||||
|      * @param language title language | ||||
|      * @return UTF-16 array of the long title | ||||
|      */ | ||||
|     std::array<u16, 0x80> GetLongTitle(Loader::SMDH::TitleLanguage language) const; | ||||
| 
 | ||||
|     std::vector<GameRegion> GetRegions() const; | ||||
| }; | ||||
| static_assert(sizeof(SMDH) == 0x36C0, "SMDH structure size is wrong"); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue