aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/game_list_worker.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [desktop] Basic grid view implementation (#3479)crueter2026-02-061-515/+0
| | | | | | | | | | | | | | | | | | | | | Closes #3441 Basic impl of a grid view on the game list. The ideal solution here would be to use QSortFilterProxyModel and abstract the game list model out to a QStandardItemModel, but that is too much effort for me rn. Adapted the "card" design from QML, can 1000% be improved but QPainter is just such a pain to deal with. Implanting a Qt Quick scene into there would legitimately be easier. Anyways, margins and text sizes lgtm at all sizes, though please give feedback on both that and the general card design. Future TODOs: - [ ] Auto size mode - [ ] Refactor to use models Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3479
* [qt] fix refresh loop when storage is missing (#3434)rayman302026-02-011-2/+5
| | | | | | | | | | | Added a check to see if a folder actually exists before adding it to the watcher. fixes a nasty infinite refresh loop in the interface when a network drive or usb stick is disconnected but still in the config. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3434 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: rayman30 <silentbitdev@gmail.com> Co-committed-by: rayman30 <silentbitdev@gmail.com>
* [bcat/news/web/am] Implement news applet, proper TLV return, external web ↵Maufeat2026-01-171-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | browser URL and qlaunch app sorting (#3308) This pulls eden releases changelog & text from our github releases. We don't store the msgpack file but rather generate them in-memory for the News Applet. Uses cache folder. Files generated are: - cache/news/github_releases.json - cache/news/eden_logo.jpg - cache/news/news_read Additional changes: - Proper TLV returning for online web applet, to open external URL - Add applet type `LHub` to properly close, as it also uses TLV return - qlaunch app sorting, adds another cached .json to track last launched app timestamps and sort them accordingly Co-authored-by: crueter <crueter@eden-emu.dev> Co-authored-by: DraVee <dravee@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3308 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev> Co-authored-by: Maufeat <sahyno1996@gmail.com> Co-committed-by: Maufeat <sahyno1996@gmail.com>
* [qt_common] reorg + checkstate abstraction (#2735)crueter2025-10-151-1/+1
| | | | | | | | no diff. in functionality, just confirm builds on ubuntu 24.04/debian 12 Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2735
* [qt] move addons row to rightmost side (#2610)lizzie2025-09-291-26/+14
| | | | | | | | | | | | This is because the rightmost row is "extended" to the rest of the table, and add-ons have long names, play time doesn't need that much space. Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2610 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [qt] refactor: qt_common lib (#94)crueter2025-09-151-20/+13
| | | | | | | | | | | | | | | | | This is part of a series of PRs made in preparation for the QML rewrite. this PR specifically moves a bunch of utility functions from main.cpp into qt_common, with the biggest benefit being that QML can reuse the exact same code through ctx passthrough. Also, QtCommon::Frontend is an abstraction layer over several previously Widgets-specific stuff like QMessageBox that gets used everywhere. The idea is that once QML is implemented, these functions can have a Quick version implemented for systems that don't work well with Widgets (sun) or for those on Plasma 6+ (reduces memory usage w/o Widgets linkage) although Quick from C++ is actually anal, but whatever. Other than that this should also just kinda reduce the size of main.cpp which is a 6000-line behemoth rn, and clangd straight up gives up with it for me (likely caused by the massive amount of headers, which this DOES reduce). In the future, I probably want to create a common strings lookup table that both Qt and QML can reference--though I'm not sure how much linguist likes that--which should give us a way to keep language consistent (use frozen-map). TODO: Docs for Qt stuff Co-authored-by: MaranBr <maranbr@outlook.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/94 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
* Add game list refresh button (#126)swurl2025-05-291-20/+61
| | | | | | | | | | nice race condition Signed-off-by: swurl <swurl@swurl.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/126 Co-authored-by: swurl <swurl@swurl.xyz> Co-committed-by: swurl <swurl@swurl.xyz>
* User Data Migration from Citron, Sudachi, and Yuzu (#91)swurl2025-05-081-2/+2
| | | | | | | | | | | | Includes citron, sudachi, yuzu currently broken, because the eden dir is always made early? Signed-off-by: swurl <swurl@swurl.xyz> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/91 Co-authored-by: swurl <swurl@swurl.xyz> Co-committed-by: swurl <swurl@swurl.xyz>
* fs: Replace Mode enum by OpenMode enumFearlessTobi2024-01-251-2/+2
|
* android: Add addon delete buttont8952024-01-191-5/+6
| | | | Required some refactoring of retrieving patches in order for the frontend to pass the right information to ContentManager for deletion.
* Merge pull request #11889 from t895/ini-libCharles Lombardo2023-11-241-8/+8
|\ | | | | configuration: Unify config handling across frontends
| * config: Unify config handling under frontend_commont8952023-11-211-8/+8
| | | | | | | | | | | | Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings. As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
* | game_list_worker: Explicit caputure of 'this'Merry2023-11-211-1/+1
|/
* qt: fix game list shutdown crashLiam2023-10-231-27/+75
|
* qt: ensure worker cancellation is complete before clearingLiam2023-10-121-3/+4
|
* Address review commentsLiam2023-08-271-10/+15
|
* yuzu-qt: Track play timeMario2023-08-261-0/+2
|
* game_list_worker: Display correct size for NAX gamesFearlessTobi2023-08-241-10/+13
| | | | | | This was a regression from https://github.com/yuzu-emu/yuzu/pull/1837. Fixes https://github.com/yuzu-emu/yuzu/issues/1938.
* yuzu: Avoid reading broken gamesgerman772023-07-241-1/+5
|
* general: reduce use of dynamic_castLiam2023-07-211-1/+1
|
* game_list: Eliminate variable shadowingMorph2022-06-141-6/+6
|
* general: Convert source file copyright comments over to SPDXMorph2022-04-231-3/+2
| | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
* yuzu: Reduce unused includesameerj2022-03-201-1/+0
|
* game_list: Remove global instances of Core::Systemlat9nq2021-10-071-7/+3
|
* file_sys: Support load game collection (#6582)Feng Chen2021-07-201-9/+35
| | | Adds support for loading games with multiple programs embedded within such as the Dragon Quest 1+2+3 Collection
* Stop the columns resizing on NAND installKelebek12021-06-021-7/+5
|
* common: fs: Rework the Common Filesystem interface to make use of ↵Morph2021-05-251-22/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | std::filesystem (#6270) * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
* patch_manager: Remove usages of the global system instanceLioncash2020-11-181-15/+21
| | | | | | | With this, only 19 usages of the global system instance remain within the core library. We're almost there.
* Merge pull request #4535 from lioncash/fileutilbunnei2020-08-171-13/+13
|\ | | | | common/fileutil: Convert namespace to Common::FS
| * common/fileutil: Convert namespace to Common::FSLioncash2020-08-161-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | Migrates a remaining common file over to the Common namespace, making it consistent with the rest of common files. This also allows for high-traffic FS related code to alias the filesystem function namespace as namespace FS = Common::FS; for more concise typing.
* | yuzu: Resolve -Wextra-semi warningsLioncash2020-08-161-1/+1
|/ | | | | While we're in the same area, we can ensure GameDir member variables are always initialized to consistent values.
* game_list_worker: Do not clear entries when > 1 gamedir is presentMorph2020-08-041-1/+1
| | | | Previously the map of entries was being cleared while looping through each game directory, this resulted into all game directories except the last game dir to lose content metadata information. Fix this by clearing the entries only once.
* game_list_worker: Fix game list subdirectory scanningMorph2020-07-291-2/+2
| | | | | | | | Oddly enough the scan that feeds the manual content provider is hardcoded to scan 2 nested directories deep. This effectively rendered the scan subdirectories setting useless as the manual content provider cannot find any games located more than 2 nested directories deep. Furthermore, this behavior causes game files to be picked up by the manual content provider even if scan subdirectories is disabled. FIx this by utilizing the behavior described when populating the game list for populating the content provider.
* CMakeLists: Specify -Wextra on linux buildsLioncash2020-04-151-1/+2
| | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
* Remove option "Show files with type 'Unknown'"Morph2020-02-091-2/+1
|
* yuzu/game_list_worker: Silence warningsReinUsesLisp2019-10-041-6/+6
|
* Change QList to QVectorfearlessTobi2019-09-041-1/+1
|
* Separate UserNand and Sdmc directoriesfearlessTobi2019-09-041-11/+14
|
* Address trivial review commentsfearlessTobi2019-09-041-3/+3
|
* yuzu: Add support for multiple game directoriesfearlessTobi2019-09-041-24/+59
| | | | Ported from https://github.com/citra-emu/citra/pull/3617.
* yuzu/CMakeLists: Remove qt5_wrap_ui macro usageLioncash2019-08-091-1/+1
| | | | | | | | | | We can simply enable CMAKE_AUTOUIC and let CMake take care of handling the UI code generation for targets. As part of letting CMake automatically handle the header file parsing, we must not name includes with "ui_*" unless they're related to the output of the Qt UIC compiler. Because of this, we need to rename ui_settings, given it would conflict with this restriction.
* game_list_worker: Use QFile over our own IOFile instance or std streamsLioncash2019-05-301-28/+24
| | | | | | Stays consistent in our code with using Qt's provided mechanisms, and also properly handles Unicode paths (which file streams on Windows don't do very well).
* game_list_worker: Remove template specializationsLioncash2019-05-301-8/+2
| | | | | This is equivalent to specifying two separate functions, so we can just do that.
* game_list_worker: Add better error handling to cachingZach Hilman2019-05-261-21/+39
|
* game_list: Implement caching for game listZach Hilman2019-05-261-7/+99
| | | Preserves list of add ons and the icon, which are the two costliest parts of game list population.
* yuzu/game_list_worker: Specify string conversions explicitlyLioncash2019-05-201-2/+2
| | | | | Allows the game list worker code to compile successfully with implicit string conversions disabled.
* game_list: Register content with ContentProviderZach Hilman2019-03-261-68/+57
|
* Merge pull request #1819 from DarkLordZach/disable-addonsbunnei2018-12-101-1/+1
|\ | | | | patch_manager: Add support for disabling patches
| * qt: Add Properties menu to game list right-clickZach Hilman2018-12-041-1/+1
| |
* | yuzu/game_list_worker: Don't retrieve the file type twice in ↵Lioncash2018-12-051-5/+9
| | | | | | | | | | | | | | | | AddFstEntriesToGameList() Similarly, here we can avoid doing unnecessary work twice by retrieving the file type only once and comparing it against relevant operands, avoiding potential unnecessary object construction/destruction.