eden-miror/src/frontend_common
crueter 676b1aabfc
Some checks are pending
tx-src / sources (push) Waiting to run
Check Strings / check-strings (push) Waiting to run
[frontend] Built-in auto updater (#3845)
Checks latest release and opens a dialog containing the changelog, and
allow the user to select a specific build to download. After
downloading, it prompts the user to open it.

On Windows, this just opens up the zip in File Explorer. In the future setup files will be available. On macOS this opens up the DMG in Finder so the user can drag it to the Applications folder. Android retains the auto-update functionality from before, but updated to the new scheme. Body/View on Forgejo are not implemented, that should be in a future PR.

Additionally, moved some common httplib incantations to `Common::Net`. This will serve as the common network accessor and JSON parser from here on out.

TODO:
- [x] android :(
- [x] Search for builds based on keywords, with weights towards certain builds (e.g. macOS will search for dmg then tar.gz, windows msvc then mingw/exe then zip, etc.)
- [x] remove linux leftovers
- [x] don't allow asset selection on platforms w/o assets
- [x] nightly changelog should be in the real

FUTURE IMPLEMENTATION:
- [ ] Body/View on Forgejo for Android
- [ ] Setup files for Windows (Eden/nightly are separate) -- maybe portable/setup selector?
- [ ] Something else I'm forgetting

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3845
2026-04-28 20:42:23 +02:00
..
CMakeLists.txt [cmake, deps] conjure common/httplib.h and remove global def for httplib macros (#3800) 2026-04-06 19:13:09 +02:00
config.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
config.h [gamemode] Make available on other platforms (#353) 2025-12-07 07:13:43 +01:00
content_manager.h [common, fs] Use std::string_view instead of std::string&; inline functions that are used rarely (#330) 2025-08-27 22:21:04 +02:00
data_manager.cpp [desktop] refactor profile management and fix some misc bugs with it (#3415) 2026-01-29 17:17:28 +01:00
data_manager.h [qt, util] Change default units from units of 1024 (MiB, KiB) to 1000 (MB, KB) (#2882) 2025-12-07 00:29:37 +01:00
firmware_manager.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
firmware_manager.h [hle, kernel] Add support for FW21 and kernel changes (#3004) 2025-11-16 22:15:09 +01:00
mod_manager.cpp [desktop] Fix 2 mod manager bugs (#3884) 2026-04-26 03:26:04 +02:00
mod_manager.h [desktop] Add mod importer from folder and zip (#3472) 2026-02-06 06:37:30 +01:00
play_time_manager.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
play_time_manager.h [chore] Fixed a couple memory leaks using up ~15 MB each iteration (#398) 2025-12-26 02:55:52 +01:00
settings_generator.cpp [common] unify std::random_device (#3801) 2026-03-31 20:12:41 +02:00
settings_generator.h [frontend] Generate web token at runtime (#3462) 2026-02-04 04:16:39 +01:00
update_checker.cpp [frontend] Built-in auto updater (#3845) 2026-04-28 20:42:23 +02:00
update_checker.h [frontend] Built-in auto updater (#3845) 2026-04-28 20:42:23 +02:00