1
0
Fork 0
mirror of synced 2024-06-02 02:34:40 +12:00
Commit graph

1976 commits

Author SHA1 Message Date
loathingKernel bb5b0f1585 Overlays: Update title strings 2024-02-12 21:52:07 +02:00
loathingKernel 98213d1ce5 HeadBar: Return LibraryFilter/Order object from current_filter/order instead of int 2024-02-12 21:52:07 +02:00
loathingKernel 49ad79e871 Rare: be more explicit when checking for running platform 2024-02-12 21:52:07 +02:00
loathingKernel 17066f9a67 Rare: cherry-pick some of sourcery suggestions 2024-02-12 21:52:07 +02:00
loathingKernel 8bde2c2c6d Rare: Import platform specific modules only on the relevant platforms 2024-02-12 21:52:07 +02:00
loathingKernel 0ea29bc941 HeadBar: Use int as the data type for the combo boxes and improve checks
Also fix an exception when the setting in the config was faulty we were
looking for the wrong data type in the combobox data.
2024-02-12 21:52:07 +02:00
loathingKernel 0ea4b1a824 Dialogs: Re-implement all dialogs on top of a few common super-classes
Also add a dialog to select optional downloads before verifying
and refactor the move widget into a full-fledged dialog.

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.

Accordingly all dialogs in Rare have been updated to use these classes.
2024-02-12 21:52:07 +02:00
loathingKernel cd1743cb92 GameSettings: Re-strucure settings widgets
The default widgets only implement the settings for the `default` "app_name"
The game specific widgets sub-class the default widgets and implement
whatever they additionally need locally.

Remove multiple calls to save config and save when the game settings gets hidden.
2024-02-12 21:52:07 +02:00
loathingKernel af6d7c5055 Various WIP
* Use `vars()` instead of directly accessing `__dict__`
* Remove `auto_update` from RareGame's metadata
* Correct check for updating the Steam App ID (We want to keep any changes from the user)
* Collect both Wine and Proton prefixes when removing overlay registry keys.
* Add few convenience functions in config_helper and paths.
2024-02-12 21:52:07 +02:00
loathingKernel 7a5bb0b732 RareGame: Use None for unset steam appid. 2024-02-12 21:52:07 +02:00
loathingKernel 36ad33b8f3 SteamGrades: Return the Steam game ID with the grade and store it.
This allows compatibility tools that use the SteamAppId environment
variable to make decisions or apply fixes do their job more accurately.

Also use the stored variable to provide a link to protondb through
the grade label in GameInfo.

The steam grades now use the orjson library to load Steam's ~6MB
database faster.
2024-02-12 21:52:07 +02:00
loathingKernel 07b5d381f0 SideTabContainer: Align top by default 2024-02-12 21:51:42 +02:00
loathingKernel b67c391a26 Chore: fix argument name in keyPressEvent 2024-02-12 21:51:42 +02:00
loathingKernel 9eb5f2c51e Dialogs: Align contents on center when the WM doesn't respect the dialog size
Useful for `gamescope`'s `--force-windows-fullscreen` mode
2024-02-12 21:51:42 +02:00
loathingKernel 88b6e91530 BrowserLogin: Add dedicated application mode to Rare for the webview login page
Add a sub-application to Rare to launch the webview for logging into EGS.
The sub-application operates similatly to the `laucher` sub-application and
it is autonomous. After a successful login in returns the exchange code
to the standard output to be parsed and used by the login dialog.

The reason this implementation was chosen is because when pywebview uses
pyqtwebengine as the GUI library, we cannot launch it through Rare as
it tries to spawn a QMainWindow inside an existing event loop, which is
prohibited by Qt.

Despite that, EGS login page doesn't work correctly with QtWebEngine,
so on linux default to the GTK backend for pywebview, and this change
helps keeping applications using different toolkits separate.

At this moment, spawning the sub-application blocks the execution of the
main application.

This change should make it easier to authenticate through Rare inside
a gamescope session, such as the steam deck.
2024-02-12 21:51:42 +02:00
Stelios Tsampas 9181641d70
Merge pull request #378 from loathingKernel/next
General fixes
2024-01-29 16:36:21 +02:00
loathingKernel 03b9e44b13 Ui: Delete unused pathedit ui 2024-01-29 16:21:32 +02:00
loathingKernel f321736dde GameInfo: Show cover image in color despite installation status 2024-01-29 16:21:19 +02:00
loathingKernel 58574c1977 Legendary: Do a smarter split 2024-01-29 16:20:59 +02:00
loathingKernel fe709f5702 Launcher: Add Homeworld Remastered Collection to the do-not-attach list
Fixes: RareDevs/Rare#376
2024-01-29 16:20:30 +02:00
loathingKernel 1269abf1f7 Rare: Remove dead code from main 2024-01-29 16:19:11 +02:00
loathingKernel 5d2cfbf71a AppImage: Set PYTHONNOUSERSITE 2024-01-29 16:18:57 +02:00
loathingKernel 7cdf7996b2 Update Readme and screenshots 2024-01-29 16:18:46 +02:00
loathingKernel f089703eb5 ListGameWidget: Make Launch/Install buttons larger and the widget itself smaller 2024-01-29 16:18:21 +02:00
loathingKernel da2e1c0d27 ListGameWidget: Fix progress label relocating randomly 2024-01-29 16:18:16 +02:00
loathingKernel 7ef5172d62 ImageWidget: Fix console spam about QPainter not being active 2024-01-27 01:19:51 +02:00
Stelios Tsampas 59eee7e49c
Merge pull request #373 from loathingKernel/next
Runners: disable some pylint checks for vdf
2024-01-22 00:44:04 +02:00
loathingKernel 631e1b9b3c Runners: disable some pylint checks for vdf 2024-01-22 00:38:09 +02:00
Stelios Tsampas d0d3cf2db1
Merge pull request #372 from loathingKernel/next
Workflows: eff javascript
2024-01-22 00:28:19 +02:00
loathingKernel 681bbafa9b Workflows: eff javascript 2024-01-22 00:27:16 +02:00
Stelios Tsampas 8e2a9b0041
Merge pull request #371 from loathingKernel/next
Workflows: woops
2024-01-22 00:23:23 +02:00
loathingKernel 1d23ca337d Workflows: woops 2024-01-22 00:22:50 +02:00
Stelios Tsampas f9f9caf956
Merge pull request #370 from loathingKernel/next
Refactor EOS overlay management form
2024-01-22 00:22:01 +02:00
loathingKernel 17246f1201 Workflows: Run pylint on a matrix of OSes and versions 2024-01-22 00:21:40 +02:00
loathingKernel d9bfdb91ce Runners: Import vdf only on Linux and FreeBSD 2024-01-22 00:16:40 +02:00
loathingKernel 69aca3851f InstallDialog: Update widget attribute name 2024-01-21 23:45:38 +02:00
loathingKernel fa9b49c019 SelectiveDialog: Keep the layout of the central widget 2024-01-21 23:45:28 +02:00
loathingKernel 5b36727076 Dialogs: Add subtitle label in ButtonDialog 2024-01-21 23:45:23 +02:00
loathingKernel 7b52dc204c Downloads: Update queue count when adding a download 2024-01-21 23:44:15 +02:00
loathingKernel ce0b9788ee RareGame: Clear pixmap cache before loading a new pixmap 2024-01-21 23:44:11 +02:00
loathingKernel 06e2c9b714 DebugSettings: Add button to test notifications 2024-01-19 17:17:48 +02:00
loathingKernel 4e6008a8f7 TrayIcon: Generic notifications
* Add a notification when starting a download too
2024-01-19 17:17:31 +02:00
loathingKernel 7aa64b385e Downloads: Move auto-update change to Rare's settings instead of the game's metadata
The setting doesn't have a switch in the GUI yet, but the settings
feels like a better place for it.
2024-01-19 15:07:22 +02:00
loathingKernel 3c01cfc0a8 EosOverlay: Fix a few remaining issues
* Don't create path when preparing overlay download, it fails on updates.
* Concatenate the overlay install path in InstallDialog instead of passing it as `base_path`
* Respect RareGame state in in the EOS overlay form
2024-01-19 14:54:09 +02:00
loathingKernel 99d0bca5fc ConfigHelper: Extend with specialized methods for environment variables and wine/proton prefixes 2024-01-19 12:12:33 +02:00
loathingKernel 451017e2e2 Ui: Fix and issue with legendary settings UI file 2024-01-19 12:10:30 +02:00
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