aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/game_list.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #1568 from lioncash/dirbunnei2018-10-241-4/+3
|\ | | | | game_list: Use QFileInfo instead of common's file functions
| * game_list: Use QFileInfo instead of common's file functionsLioncash2018-10-241-4/+3
| | | | | | | | | | | | We can just use the facilities that Qt provides instead of pulling in stuff from common. While we're at it, we can also simplify the nearby logging statement's argument by just calling .toStdString()
* | game_list: Make game list column headers translatableLioncash2018-10-241-5/+5
|/ | | | These are user-facing strings, so they should be marked as translatable
* Merge pull request #1360 from FearlessTobi/port-3979bunnei2018-09-271-7/+7
|\ | | | | Port citra-emu/citra#3979 game_list: move SearchField to game_list_p.h and fix untranslated text
| * game_list: move SearchField to game_list_p.h and fix untranslated textzhupengfei2018-09-211-7/+7
| | | | | | | | I have tested and made sure the text is translatable, but this would require a translation update to take effect.
* | qt: Add UI elements for LayeredFS and related toolsZach Hilman2018-09-211-0/+9
|/
* game_list: Handle plurals within setFilterResult() betterLioncash2018-09-201-9/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt provides an overload of tr() that operates on quantities in relation to pluralization. This also allows the translation to adapt based on the target language rules better. For example, the previous code would result in an incorrect translation for the French language (which doesn't use the pluralized version of "result" in the case of a total of zero. While in English it's correct to use the pluralized version of "result", that is, "results" --- For example: English: "0 results" French: "0 résultat" (uses the singular form) In French, the noun being counted is singular if the quantity is 0 or 1. In English, on the other hand, if the noun being counted has a quantity of 0 or N > 1, then the noun is pluralized. --- For another example in a language that has different counting methods than the above, consider English and Irish. Irish has a special form of of a grammatical number called a dual. Which alters how a word is written when N of something is 2. This won't appear in this case with a direct number "2", but it would change if we ever used "Two" to refer to two of something. For example: English: "Zero results" Irish: "Toradh ar bith" English: "One result" Irish: "Toradh amháin" English: "Two results" Irish: "Dhá thorthaí" <- Dual case Which is an important distinction to make between singular and plural, because in other situations, "two" on its own would be written as "dó" in Irish. There's also a few other cases where the order the words are placed *and* whether or not the plural or singular variant of the word is used *and* whether or not the word is placed after or between a set of numbers can vary. Counting in Irish also differs depending on whether or not you're counting things (like above) or counting people, in which case an entirely different set of numbers are used. It's not important for this case, but it's provided as an example as to why one should never assume the placement of values in text will be like that of English or other languages. Some languages have very different ways to represent counting, and breaking up the translated string like this isn't advisable because it makes it extremely difficult to get right depending on what language a translator is translating text into due to the ambiguity of the strings being presented for translation. In this case a translator would see three fragmented strings on Transifex (and not necessarily grouped beside one another, but even then, it would still be annoying to decipher): - "of" - "result" - "results" There is no way a translator is going to know what those sets of words are actually used for unless they look at the code to see what is being done with them (which they shouldn't have to do).
* game_list: Resolve variable shadowing within LoadCompatibilityList()Lioncash2018-09-111-3/+3
| | | | | | "value" is already a used variable name within the outermost ranged-for loop, so this variable was shadowing the outer one. This isn't a bug, but it will get rid of a -Wshadow warning.
* game_list: Use QJsonValueRef() within LoadCompatibilityList()Lioncash2018-09-111-2/+2
| | | | This way, we aren't constructing unnecessary QJsonValue instances.
* yuzu: Move compatibility list specifics to their own source filesLioncash2018-09-091-0/+1
| | | | | | | Lets us keep the generic portions of the compatibility list code together, and allows us to introduce a type alias that makes it so we don't need to type out a very long type declaration anymore, making the immediate readability of some code better.
* yuzu: Move GameListWorker to its own source filesLioncash2018-09-071-220/+1
| | | | | | | | | | | This has gotten sufficiently large enough to warrant moving it to its own source files. Especially given it dumps the file_sys headers around code that doesn't use it for the most part. This'll also make it easier to introduce a type alias for the compatibility list, so a large unordered_map type declaration doesn't need to be specified all the time (we don't want to propagate the game_list_p.h include via the main game_list.h header).
* patch_manager: Centralize Control-type NCA parsingZach Hilman2018-09-041-23/+5
|
* game_list: Fix version display on non-NAND titlesZach Hilman2018-09-041-22/+19
|
* game_list: Use friendly game versionsZach Hilman2018-09-041-13/+32
| | | | Mainly, from control.nacp metadata instead of cnmt metadata
* game_list: Display patch names and versions on listZach Hilman2018-09-041-0/+26
|
* game_list: Use RegisteredCacheUnion for installedZach Hilman2018-09-041-3/+1
| | | | Reduces code
* qt: Add UI support for NSP filesZach Hilman2018-09-041-1/+1
|
* file_sys: Replace includes with forward declarations where applicableLioncash2018-09-031-1/+1
| | | | | Cuts down on include dependencies, resulting in less files that need to be rebuilt when certain things are changed.
* vfs_real: Forward declare IOFileLioncash2018-09-021-1/+2
| | | | | | Eliminates the need to rebuild some source files if the file_util header ever changes. This also uncovered some indirect inclusions, which have also been fixed.
* core/core: Replace includes with forward declarations where applicableLioncash2018-08-311-3/+13
| | | | | | | | | | | The follow-up to 88597535d629ea9a265f8bf0f00a9ce4dd5dc218, which replaces most of the includes in the core header with forward declarations. This makes it so that if any of the headers the core header was previously including change, then no one will need to rebuild the bulk of the core, due to core.h being quite a prevalent inclusion. This should make turnaround for changes much faster for developers.
* Show game compatibility within yuzufearlessTobi2018-08-291-1/+64
|
* game_list: Add SD registration loading to game listZach Hilman2018-08-231-11/+11
|
* qt/main: Port part of citra(#3411), open savedata workstech4me2018-08-211-1/+1
|
* service/filesystem: Use forward declarations where applicableLioncash2018-08-201-0/+1
| | | | | | | | Avoids the need to rebuild multiple source files if the filesystem code headers change. This also gets rid of a few instances of indirect inclusions being relied upon
* game_list: Avoid uninitialized variables when retrieving program IDLioncash2018-08-201-2/+2
| | | | | Avoids potentially leaving this variable uninitialized based off the loader failing to retrieve the ID value.
* registration: Add support for force overwrite of installedZach Hilman2018-08-111-1/+0
|
* game_list: Split game list scans to multiple functionsZach Hilman2018-08-111-9/+13
| | | | Avoids unnecessary rebuilds of control data on every layer of recursion in AddFstEntriesToGameList
* game_list: Populate control data from installed NANDZach Hilman2018-08-111-30/+34
|
* game_list: Modify game list to scan installed titlesZach Hilman2018-08-111-0/+45
|
* game_list: Reorder error checksZach Hilman2018-08-091-2/+1
| | | | clang-format fix
* loader: Add more descriptive errorsZach Hilman2018-08-091-4/+2
| | | Full list of new errors and descriptions in core/loader/loader.h
* vfs: Fix typo in VfsFilesystem docsZach Hilman2018-08-081-3/+4
|
* core: Port core to VfsFilesystem for file accessZach Hilman2018-08-081-3/+4
|
* loader: Add icon and title support to XCIZach Hilman2018-08-061-2/+3
|
* Use const where applicableZach Hilman2018-08-061-1/+1
|
* Avoid parsing RomFS to directory in NCAZach Hilman2018-08-061-9/+68
|
* Merge pull request #947 from lioncash/encodingbunnei2018-08-061-13/+17
|\ | | | | game_list: Use QString::fromStdString() where applicable instead of c_str()
| * game_list: Remove unnecessary conversion to std::string in ValidateEntry()Lioncash2018-08-061-8/+10
| | | | | | | | | | We can just use the file interfaces that Qt provides to prevent needing to convert to std::string.
| * game_list: Use QString::fromStdString() where applicable instead of c_str()Lioncash2018-08-061-5/+7
| | | | | | | | | | | | The codec used by Qt for const char* and std::string don't necessarily have to be the same depending on locale. Therefore, we should be using the correct functions to do the conversions.
* | game_list: Join declarations and assignments in onTextChanged()Lioncash2018-08-061-7/+7
|/ | | | There's no need to keep these separate from one another.
* Remove files that are not usedZach Hilman2018-08-011-1/+1
|
* file_util: Use a u64 to represent number of entriesLioncash2018-07-211-1/+1
| | | | | This avoids a truncating cast on size. I doubt we'd ever traverse a directory this large, however we also shouldn't truncate sizes away.
* Merge pull request #684 from lioncash/nonmemberbunnei2018-07-181-1/+1
|\ | | | | game_list: Make ContainsAllWords an internally linked non-member function
| * game_list: Make ContainsAllWords an internally linked non-member functionLioncash2018-07-181-1/+1
| | | | | | | | | | This function actually depends on no internal class state, so it doesn't even need to be a part of the class interface.
* | Virtual Filesystem 2: Electric Boogaloo (#676)Zach Hilman2018-07-181-1/+3
|/ | | | | | | | | | * Virtual Filesystem * Fix delete bug and documentate * Review fixes + other stuff * Fix puyo regression
* Merge pull request #681 from lioncash/constbunnei2018-07-181-4/+6
|\ | | | | game_list: Make containsAllWords a const member function
| * game_list: Upper-case containsAllWords to ContainsAllWords()Lioncash2018-07-181-2/+2
| | | | | | | | | | This makes it consistent with most of the other private utility functions.
| * game_list: Make containsAllWords a const member functionLioncash2018-07-181-3/+5
| | | | | | | | | | | | This doesn't actually modify the internal class state, so it can be a const member function. While we're at it, amend the function to take its arguments by const reference.
* | game_list: Remove unnecessary QString initialization in KeyReleaseEaterLioncash2018-07-181-4/+1
|/ | | | | | QString initializes to an empty string by default, so this does nothing meaningful. While we're at it, use a constructor initializer list for initializing the gamelist member variable.
* Revert "Virtual Filesystem (#597)"bunnei2018-07-071-3/+1
| | | | This reverts commit 12e9522b32d972a8e9b327c7ee7c14040a61ffdd.