1
0
Fork 0
mirror of synced 2024-09-30 01:07:47 +13:00
Commit graph

1395 commits

Author SHA1 Message Date
loathingKernel
a605bddffa RareGame: Move sdl_name to RareGameBase
InstallDialog uses that property so RareEosOverlay should have it too.
Also calculate the base_path for the overlay case instead of passing it as
argument
2024-01-19 12:09:57 +02:00
loathingKernel
7ae06ff5d8 RareCore: Move entitlements request into an independent worker
Yes, we are back at this. Entitlements are important to have early
as Ubisoft redemption requires them, and they don't depend on anything
else.

* Move config helper initialization into RareCore to make it available
earlier.
2024-01-19 01:28:10 +02:00
loathingKernel
acbe8836cc RareEosOverlay: Protect against invalid prefixes 2024-01-19 00:57:17 +02:00
loathingKernel
889a7cd116 RareGame: Use the callable directly instead of a lambda
to create workers.
2024-01-19 00:57:17 +02:00
loathingKernel
89486f882e EOSGroup: Add the option to select which overlay installation to enable 2024-01-19 00:57:16 +02:00
loathingKernel
3c43da1594 RareCore: Add options to exclude non-asset games and entitlements from startup
* Add options in settings to not request non-asset games and entitlements.

This greatly improves startup time but reduces functionality a bit. Both
options are disabled by default.

* Remove the old options to exclude Win32 and Mac games as they were no longer relevant.

* Add a performance context manager to log execution time when used.

* Fixed an issue with UbisoftGroup where multiple threads would spawn.
2024-01-19 00:57:16 +02:00
loathingKernel
a246f4ee16 EosGroup: Remake the UI and integrate with Rare's facilities
* Uninstalling the Overlay now goes through the same procedure as
uninstalling any other game.

* The available prefixes are now listed instead of hiding them inside
a combo box.

* Each listing works indepedently to enable/disable the Overlay for the prefix
2024-01-19 00:57:16 +02:00
loathingKernel
2a0f80a9f0 RareGame: RareEosOverlay now implements its procedures internally.
The new methods are the following
* `has_update`: to check for updates
* `is_enabled`: checks if the overlay is enabled (on wine platform, on prefix)
* `enable`: enables the overlay (on wine platforms, on prefix, for app_name)
* `disable`: disables the overlay (on wine platforms, on prefix, for app_name)
* `install`: Install using Rare's existing facilities
* `uninstall`: Uninstall using Rare's existing facilities
2024-01-19 00:57:16 +02:00
loathingKernel
29bd7b81cb Launcher: Restore compatibility with legendary 0.22.34 2024-01-18 16:44:59 +02:00
loathingKernel
6cbad745df SelectiveWidget: Disabled parent if there aren't any SDLs. 2024-01-18 16:44:53 +02:00
loathingKernel
971c31e8f4 SelectiveWidget: Create specialized widget for selecting optional downloads
Because there are two dialogs for editing optional downloads, refactor
the separate implementations to select them into a common reusable widget
and use it in SelectiveDialog and InstallDialog.
2024-01-18 16:44:47 +02:00
loathingKernel
9d3e9fecea GameProcess: Add more information in the failure message when a timeout occurs 2024-01-18 16:44:27 +02:00
loathingKernel
50276384cc QtRequests: Use QNetworkAccessManager's queue 2024-01-18 16:44:05 +02:00
loathingKernel
4e2ffaae93 ImageSize: Use pixel ratio 1 for image downloads 2024-01-18 16:43:42 +02:00
loathingKernel
446cbd6c67 Lgdnr: Check for old_igame before writing tags 2024-01-18 16:43:06 +02:00
loathingKernel
9b10a48704 ImageManager: Reduce thread count even more 2024-01-18 16:43:03 +02:00
loathingKernel
9ad47ba75b Translations: Update source file 2024-01-06 14:08:27 +02:00
loathingKernel
0fb1526d67 MoveDialog: Refactor MovePopup into a dialog using ActionDialog as base 2024-01-02 23:11:47 +02:00
loathingKernel
17a5562b4c ImportGroup: Update some strings 2024-01-02 23:00:29 +02:00
loathingKernel
d3ec79378e UninstallDialog: Refactor to use ButtonDialog as base 2024-01-02 22:31:25 +02:00
loathingKernel
339fec2bca CloudSaves: don't error if the saves directory already exists 2024-01-02 18:04:08 +02:00
loathingKernel
fa158bd4aa Launcher: Rename Console to ConsoleDialog
Add more games to be launched as detached processes.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2024-01-02 17:59:02 +02:00
loathingKernel
80ac9296fc Rare: cherry-pick some sourcery suggestions 2024-01-02 17:57:02 +02:00
loathingKernel
89c1a4eaf4 Launcher: Refactor cloud sync dialog to use ButtonDialog base class 2024-01-02 17:38:51 +02:00
loathingKernel
08f2d50d4f RareApp: Always collect verbose version information at the start of the log 2024-01-02 17:18:19 +02:00
loathingKernel
534c45818a GameInfo: Update button description strings and icons 2024-01-02 15:34:35 +02:00
loathingKernel
c7336ad04a InstallDialog: Use ActionDialog base class 2024-01-02 15:12:07 +02:00
loathingKernel
fd22d831eb Rare: refactor timer names 2024-01-02 11:18:31 +02:00
loathingKernel
456050c91c RareException: Use quit() instead of exit() 2024-01-02 11:18:18 +02:00
loathingKernel
2cbe6cadd9 Rare: Add launchable addons as games in the library 2024-01-02 11:12:00 +02:00
loathingKernel
ef09354b62 Launcher: cherry-pick some sourcery suggestions 2024-01-02 11:11:53 +02:00
loathingKernel
ce97ec9086 Paths: Check for membership 2023-12-31 20:32:01 +02:00
loathingKernel
6e1a7cdbaf Merge branch 'sdl_dialog' into next 2023-12-31 18:44:41 +02:00
loathingKernel
e2bdbbab40 RareGame: Use Game property instead of looking into metadata 2023-12-31 17:59:36 +02:00
loathingKernel
1914beb5e6 RareGameBase: Also look for the EA app when identifying origin games 2023-12-31 17:59:24 +02:00
loathingKernel
e467dc996c GameDlcWidget: Dynamically load DLC cover image on show 2023-12-31 17:59:11 +02:00
loathingKernel
e421d02a4f Update SDL dialog 2023-12-26 00:05:11 +02:00
loathingKernel
62e19a8be2 VerifyGame: Present a dialog to select selective downloads in the game
supports them.
2023-12-25 23:56:37 +02:00
loathingKernel
40e5aacd68 RareStyle: Add proper disabled colors for wrappers widget 2023-12-25 14:56:23 +02:00
loathingKernel
600441a614 Rare: Import platform specific modules only on said platforms 2023-12-24 21:08:26 +02:00
loathingKernel
870aeea748 EOSGroup: Use UI membership instead of double inheritance 2023-12-24 21:08:26 +02:00
loathingKernel
1a7f89687b ConfigHelper: Fix an issue with wine prefix resolution
This probably should be split into separate wine and proton
discovery functions.
2023-12-24 21:08:26 +02:00
loathingKernel
83328f400d ConfigHelper: Add generic functions to query config options with fallback
* Extend `get_wine_prefix` and `get_wine_prefixes` to take Proton prefixes
into account.
2023-12-24 21:08:26 +02:00
loathingKernel
f6a372cc1f ConfigHelper: Add wine related functions
`get_wine_prefixes`: Returns all prefixes defined in legendary's configuration
`get_wine_prefix`: Returns wine prefix associated with a game
2023-12-24 21:08:26 +02:00
loathingKernel
efe9031211 Proton: Add functions to find and integrate compatibilty tools and runtimes 2023-12-24 21:08:26 +02:00
loathingKernel
1f34ad4b13 ProtonSettings: Move proton search function into utils/proton.py 2023-12-24 21:08:26 +02:00
loathingKernel
616df235cd ListWidget: Use line variant for qta icon 2023-12-24 21:08:26 +02:00
loathingKernel
400625975d Dialogs: Re-implement Launch and Login dialogs on top of a few common super-classes
To keep dialogs in a common format and allow them to share the same
properties, three classes of dialogs have been implemented inheriting from
each other.

The classes are `BaseDialog` -> `ButtonDialog` -> `ActionDialog`

* Basedialog: is the basis of all dialogs and is responsible for
rejecting close requests from the window manager and the keyboard.
It also restricts access to `exec()` and `exec_()` because they are harmful.
It serves as the basis of Launch and Login dialogs

* ButtonDialog: is offering buttons for accepting or rejecting the presented
option. It implements its own buttons and exposes abstract methods to
implement handling in them. It restricts access to `close()` because these
dialogs should always product a result.
It is the basis of Uninstall, Selective dialogs.

* ActionDialog: in addition to the ButtonDialog, it offers an action buttom
with to validate the form or to make the dialog unable to close. It serves
as the basis of Install and Move dialogs.
2023-12-24 21:08:26 +02:00
loathingKernel
69a73882f5
Lgndr: Don't try to anonymize 2023-12-23 13:48:21 +02:00
loathingKernel
51904efa90
GameWidget: Request pixmap in paintEvent.
Requesting the pixmap in `paintEvent` only loads the
pixmap when the widget first becomes visible, making loading
the library smoother. Also avoid spawning multiple singleshot
QTimers and use QObject's internal timer, with CoarseTimer precision.
2023-12-23 13:46:12 +02:00