aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/acc/profile_manager.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [desktop] Fix double profile deletion (#3422)crueter2026-01-301-13/+9
| | | | | | | | | | Classic case of double-emission of signals. Epic Also fixed a bug that caused profile manager to not immediately update when a profile was deleted from Qlaunch. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3422 Reviewed-by: Lizzie <lizzie@eden-emu.dev>
* [desktop] refactor profile management and fix some misc bugs with it (#3415)crueter2026-01-291-1/+2
| | | | | | | | | Adding and editing users is now done in a single dialog rather than all those other individual buttons and dialogs like before. Fixed some bugs with profile management too, and made edit/delete a right-click menu. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3415
* [desktop, fs] main_window separation; fix Ryujinx save data link issues (#2929)crueter2025-11-091-23/+34
| | | | | | | | | | | | | | | | | | | | | Some genius decided to put the entire MainWindow class into main.h and main.cpp, which is not only horrific practice but also completely destroys clangd beyond repair. Please, just don't do this. (this will probably merge conflict to hell and back) Also, fixes a bunch of issues with Ryujinx save data link: - Paths with spaces would cause mklink to fail - Add support for portable directories - Symlink detection was incorrect sometimes(????) - Some other stuff I'm forgetting Furthermore, when selecting "From Eden" and attempting to save in Ryujinx, Ryujinx would destroy the link for... some reason? So to get around this we just copy the Eden data to Ryujinx then treat it like a "From Ryujinx" op Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2929 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
* [qt] clean up some orphaned_profiles bugs; add help (#2894)crueter2025-10-301-15/+47
| | | | | | | | | | | | | | | Some weird edge cases of "phantom" profiles that are actually needed for... reasons I guess Also, fixed some of the logic w.r.t empty checking, plus added a help page Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2894 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [qt] clarify orphaned profiles by showing GOOD uuids (#2850)crueter2025-10-271-1/+8
| | | | | | | | | | | Shows what profile UUIDs are actually good so the user knows which one to copy their saves to. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2850 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [acc] do not consider system profile as orphaned (#2708)crueter2025-10-101-0/+3
| | | | | | | | | Profile 00000000000000000000000000000000 is apparently needed for acnh, etc Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2708
* [desktop] fix save data location, orphaned profiles finder (#2678)crueter2025-10-071-4/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, if the user had their NAND in a nonstandard location, profiles.dat would be read from the standard Eden path and thus return effectively garbage data. What this would result in is: - The Qt profile manager would be completely nonfunctional - "Open Save Data Location" would put you into the completely wrong place - Games would read from incorrect locations for their saves To solve this, I made it so that profiles.dat is re-read *after* QtConfig initializes. It's not the perfect solution, but it works. Additionally, this adds an orphaned profiles finder: - walks through the save folders in nand/user/save/000.../ - for each subdirectory, checks to see if profiles.dat contains a corresponding UUID - If not, the profile is "orphaned". It may contain legit save data, so let the user decide how to handle it (famous last words) - Empty profiles are just removed. If they really matter, they're instantly recreated anyways. The orphaned profiles check runs right *after* the decryption keys check, but before the game list ever gets populated Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2678 Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [common] remove ranges polyfill (#2546)lizzie2025-09-241-1/+1
| | | | | | | | | Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2546 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: crueter <crueter@eden-emu.dev> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [desktop] fix random qt annoyances (#226)crueter2025-08-081-2/+2
| | | | | | | | | | | | Removes that silly QLayout message and improves consistency thereof for other QLayouts Still work to be done but this is all that's needed rn Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/226 Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
* [desktop, core] yuzu -> Eden, eden -> Edencrueter2025-07-191-1/+1
| | | | Signed-off-by: crueter <crueter@eden-emu.dev>
* profile_manager: Implement firmware avatar selector (#205)JPikachu2025-06-261-1/+43
| | | | | | | | | | | | | | | | | | Adds an option to set a user's profile image from the avatars in the firmware. Background color can be changed with a color picker. Also modifies profile image saving to account for this, and as a result images are now saved as JPEG with 100% quality. Any PNG, JPEG, or BMP can now also be used in the image file picker instead of just JPEG. Using ryujinx's implementation and other parts of the yuzu codebase for reference. Credit: Torzu, lui Reviewed-on: http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu/pulls/56 Co-authored-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion> Co-committed-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion> Co-authored-by: lui <lui@vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion> Co-authored-by: Maufeat <sahyno1996@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/205 Co-authored-by: JPikachu <jpikachu@noreply.localhost> Co-committed-by: JPikachu <jpikachu@noreply.localhost>
* User Data Migration from Citron, Sudachi, and Yuzu (#91)swurl2025-05-081-3/+3
| | | | | | | | | | | | 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>
* Update fmt to allow for v11crueter2025-04-101-1/+1
| | | Signed-off-by: swurl <swurl@swurl.xyz>
* Switch default username to edenBriar2025-04-011-1/+1
|
* service: am: Fix GetMainAppletAvailableUsers for user creationNarr the Reg2024-02-161-3/+2
|
* Update based on feedbackAndrew Pilley2024-01-171-2/+2
|
* Allow -u to accept a username string in addition to index, and suppress the ↵Andrew Pilley2024-01-171-0/+17
| | | | User selector even if settings requires it to be shown for one instance only.
* service: acc: Only save profiles when profiles have changedgerman772024-01-131-3/+16
|
* service: account: Save user profile folder on first user creationgerman772023-06-031-0/+1
|
* general: fix spelling mistakesLiam2023-03-121-3/+3
|
* general: fix compile for Apple ClangLiam2022-11-221-0/+1
|
* core: hle: service: acc: Fix ListOpenContextStoredUsers/StoreOpenContext.bunnei2022-11-021-0/+25
| | | | | | - These APIs are used to capture the opened users and allow that state to be persisted across processes. - They are not intended to just return the system opened users, that is what ListOpenUsers is for. - Fixes the launch hang with Bayonetta 3.
* service: ac: Replace intances of ProfileData with UserDatagerman772022-07-141-6/+5
|
* core: Replace all instances of ResultCode with Resultgerman772022-06-261-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.
* general: Rename NewUUID to UUID, and remove the previous UUID implMorph2022-02-051-20/+20
| | | | This completes the removal of the old UUID implementation.
* profile: Migrate to the new UUID implementationMorph2022-02-051-25/+26
|
* common/uuid: Add validity checking functions to interfaceLioncash2021-09-221-4/+5
| | | | | Given we have a function to invalidate, we should also have ones to query the validity. Also makes the code more straightforward to read.
* general: Make most settings a BasicSettinglat9nq2021-06-281-1/+2
| | | | | | | | | | | Creates a new BasicSettings class in common/settings, and forces setting a default and label for each setting that uses it in common/settings. Moves defaults and labels from both frontends into common settings. Creates a helper function in each frontend to facillitate reading the settings now with the new default and label properties. Settings::Setting is also now a subclass of Settings::BasicSetting. Also adds documentation for both Setting and BasicSetting.
* general: Replace RESULT_SUCCESS with ResultSuccessMorph2021-06-021-1/+1
| | | | Transition to PascalCase for result names.
* common: fs: Rework the Common Filesystem interface to make use of ↵Morph2021-05-251-17/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* common: Move settings to common from core.bunnei2021-04-141-1/+1
| | | | - Removes a dependency on core and input_common from common.
* Fix user changing to 0 if validgerman2021-01-281-2/+8
|
* core: Silence Wclass-memaccess warningsReinUsesLisp2021-01-151-5/+5
| | | | | This requires making several types trivial and properly initialize them whenever they are called.
* Revert "core: Fix clang build"bunnei2020-10-201-8/+5
|
* core: Fix clang buildLioncash2020-10-171-5/+8
| | | | | | | Recent changes to the build system that made more warnings be flagged as errors caused building via clang to break. Fixes #4795
* common/fileutil: Convert namespace to Common::FSLioncash2020-08-161-11/+11
| | | | | | | | | | | | 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.
* profile_manager: Make use of std::nulloptLioncash2020-08-031-4/+4
| | | | | Allows some implementations to completely avoid unnecessarily zeroing out the internal buffer.
* profile_manager: Make use of designated initializersLioncash2020-08-031-13/+22
| | | | More compact code.
* core: Initialize several structs that make use of Common::UUID.bunnei2020-01-041-7/+7
|
* service: Resolve sign conversion errorsLioncash2019-11-121-2/+2
| | | | | These are fairly trivial to resolve and most of the changes entail using RESULT_UNKNOWN over ResultCode(-1).
* profile_manager: Add setter for ProfileBase and ProfileDataZach Hilman2019-07-031-0/+11
| | | Needed by IProfileEditor 'Store' and 'StoreWithImage'
* mii_manager: Cleanup and optimizationZach Hilman2019-04-251-4/+4
|
* common: Extract UUID to its own classZach Hilman2019-04-251-20/+2
| | | Since the Mii database uses UUIDs very similar to the Accounts database, it makes no sense to not share code between them.
* profile_manager: Save and load ProfileData from diskZach Hilman2018-11-261-2/+3
| | | | The ProfileData is a 0x80-sized structure that stores various pieces of miscellaneous data for the account.
* profile_manager: Replace iterative loop with a ranged-for loop in ↵Lioncash2018-11-141-4/+5
| | | | ParseUserSaveFile()
* profile_manager: Move UUID Format function definitions into the cpp fileLioncash2018-11-141-0/+16
| | | | Avoids relying on fmt always being indirectly included.
* global: Use std::optional instead of boost::optional (#1578)Frederic L2018-10-301-1/+1
| | | | | | | | | | | | | | | | * get rid of boost::optional * Remove optional references * Use std::reference_wrapper for optional references * Fix clang format * Fix clang format part 2 * Adressed feedback * Fix clang format and MacOS build
* profile_manager: Use std::optional instead of boost::optionalLioncash2018-10-241-33/+38
| | | | | Now that we can actually use std::optional on macOS, we don't need to continue using boost::optional here.
* profile_manager: Create save data if it doesn't exist on useZach Hilman2018-10-231-12/+36
|