1
0
Fork 0
mirror of synced 2024-06-29 03:31:06 +12:00
Commit graph

329 commits

Author SHA1 Message Date
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
Stelios Tsampas b3bff4ef3f Paths: Apply the executable rename in pythonw too
Fixes launching the game launcher when Rare is installed through `pip`
on Windows.

Fixes: #339
2023-12-18 10:44:47 +02:00
loathingKernel 0ef2497afb
QtRequests: Handle multiple requests concurrently and use caching
It is still junky but less so. It allows us to use QNetworkRequest's
caching mechanism instead of doing so on our own per-case.
2023-12-12 12:41:18 +02:00
loathingKernel a33c4e5cf2
AccountWidget: Use ExitCodes enum everywhere instead of magic values 2023-12-10 14:22:28 +02:00
loathingKernel 5be24a4d89
SteamGrades: Use orjson instead of python's implementation 2023-12-10 14:21:39 +02:00
loathingKernel c21fddefb4
Utils: Delete deprecated CloudWorker. 2023-12-10 14:21:38 +02:00
loathingKernel 75a339d390
Flatpak: Don't export subprocess's env in flatpak's env 2023-12-10 14:21:38 +02:00
loathingKernel 193b5fba44
Paths: Expose Rare configuration directory 2023-12-10 14:21:38 +02:00
loathingKernel ba65ffa905
Wine,WineResolver: Add more logging 2023-12-10 14:21:37 +02:00
loathingKernel 9a941e3001
Wine: Set environment through flatpak-spawn arguments
Partially fixes #305
2023-12-10 14:21:37 +02:00
loathingKernel 4350591411
Wine: Run commands through flatpak-spawn when in flatpak
Partially fixes #305
2023-12-10 14:21:37 +02:00
loathingKernel ff2b9f2605
Rare: Update scripts to use the new entry point 2023-12-10 14:21:36 +02:00
loathingKernel bdbb61d3a6
Rare: Move the different applications into their respective folders 2023-12-10 14:21:36 +02:00
loathingKernel f672a678c9
Paths: Detect when running though python -m rare 2023-11-29 13:25:04 +02:00
loathingKernel c0ac23b21d
Ubisoft: Update Ubisoft redemption widget to use RareCore
* Load and populate Ubisoft information when the page is shown instead of startup.
* List all Ubisoft games, and differentiate based on whether they been redeemed.
2023-11-28 17:15:45 +02:00
loathingKernel 07cbcf52d0
Meta: Update links 2023-11-28 15:20:06 +02:00
ffqq f38c751d43 feat: add freebsd support 2023-07-16 10:03:59 +03:00
loathingKernel 1f06c87743
ImageManager: Few improvements
Check if there is a `keyImages` attribute before accessing it, and return
an empty list in case it isn't available. Fixes a recent crash with
`Prison Architect - eureka Update 1` DLC.

Exit early from `download_image` if the requested image is currently being
downloaded. This avoids multiple preparations and loading callbacks for
queued images.

Remove checking for supported OS when creating the icon. Now we create
icons in `icns` format for `Darwin` irregardless the fact we don't use them
for anything.
2023-06-05 01:33:11 +03:00
loathingKernel 737730583f ImageManager: Check if desktop icons are supported on current plaform
Before creating icons, check if desktop links are supported by Rare
on the current platform.

Fixes Dummerle/Rare#262
2023-05-14 22:13:12 +02:00
lennard f8b38e0cb8 Fix desktop shortcuts on windows 2023-05-03 12:32:12 +02:00
Dummerle 3f17a69e65
Merge pull request #272 from loathingKernel/fixups
Show environment variables from the "default" section in per-game settings.
2023-04-07 19:37:56 +02:00
lennard 9233c28e5b Update loading widget 2023-04-05 13:09:34 +02:00
loathingKernel b1d438c34c
config_helper: Don't remove section when removing the last option
This is a synchronization nightmare as it is now,
so keep the section to avoid excessive checks.
2023-03-29 14:04:45 +03:00
loathingKernel 44590bb92b
Code cleanup
CloudSaves: don't save `save_path` in case it hasn't changed
IconGameWidget/ListGameWidget: Remove dead code
RareCore: add string translations
utils/paths: Use `AppDataLocation` instead of deprecated `DataLocation`
2023-03-16 12:38:33 +02:00
loathingKernel fb1175ee04
Main: Trust shebangs. Fixes launching games on NixOS
Co-authored-by: multisn8 <contact@multisamplednight.com>
2023-03-12 15:38:18 +02:00
loathingKernel 81ec9bf772
RareCore: Fetch **ALL** saves during launch
To save time and requests, bulk get saves for all games and
load them into each respective RareGame.

Co-authored-by: Dummerle <44114474+dummerle@users.noreply.github.com>
2023-03-10 17:01:00 +02:00
loathingKernel f6189772d0
WineResolver: Move common wine operations to rare/utils/wine
`rare.utils.misc.get_raw_save_path` has been removed in favor of the
equivalent `RareGame` property.
2023-03-10 17:00:55 +02:00
lennard 4b85ed8223
Cache all saves in a dict in api_results
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 19:15:32 +02:00
lennard a66600efa3
Move cloud save ui to a new tab in game_info
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 17:46:26 +02:00
lennard d399382afd
Fix origin stuff on windows
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:23 +02:00
lennard 9733e119c9
Show install path for origin games in game info
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:21 +02:00
loathingKernel 5748d0e6ee
RareCore: Manage initialization in RareCore instead of LaunchDialog
This is the last change of the `backend_refactor` branch. This makes
`RareCore` the centerpiece of Rare by moving initialization before the UI
is brought up. RareCore is now in control of creating and querying `RareGame`
objects, re-introducing the ability (incomplete) to refresh the games library.
As a result, ApiResults has been removed.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:21 +02:00
loathingKernel 786fa2c59f
WaitingSpinner: center contents 2023-03-06 00:39:23 +02:00
loathingKernel e55c40448c
Misc: rename get_size to format_size 2023-03-06 00:39:23 +02:00
loathingKernel ca9bf7c1e8 StaticStylesheet: Share common properties by setting common object names 2023-03-03 16:51:26 +02:00
loathingKernel 76a616615b Resources: Move some more stylesheets into the static CSS 2023-03-03 14:16:04 +02:00
loathingKernel 1dd8856a29 Resources: Add static stylesheet for widgets that need special handling irregardless of theme
The static stylesheet properties are always applied. If there is a theme
stylesheet to be applied, they are appended in the end of the theme
stylesheet.

This removes stylesheet properties from the library widgets, some special
buttons and the queue worker labels.

To update the static stylesheet first edit `rare/resources/static_css/stylesheet.py`
and then execute it as a script.
2023-03-02 15:36:45 +02:00
loathingKernel e6c703f873 ExtraWidgets: Cleanup some code 2023-02-18 18:16:29 +02:00
loathingKernel dd6df40e40 ExtraWidgets: Remove SideTab widgets and update imports 2023-02-18 17:33:25 +02:00
loathingKernel 5938835249 ExtraWidgets: Remove IndicatorLineEdit and PathEdit and update imports 2023-02-18 17:29:41 +02:00
loathingKernel 97def45a7e Cleanup: Remove some unused imports 2023-02-18 17:27:18 +02:00
loathingKernel 2d0f7aa51d ExtraWidgets: Copy IndicatorLineEdit and PathEdit into their own file.
The new file is not used at the moment.
2023-02-18 16:40:30 +02:00
loathingKernel ecc1bd8d5c IndicatorLineEdit: Run edit callback function asynchronously
Execute the edit callback function in a thread. By executing it in a thread
we don't have to wait for longer validation procedures to finish to
continue updating the UI. This is most notable in the MoveGamePopUp
which is heavy on disk IO.

Because we cannot use special text formatting in a thread, the
indicator messages have been reworked while also becoming extensible.

A dictionary of extended reasons can be specified through the
`IndicatorLineEdit.extend_reasons()` method.

The dictionary has to follow the following format
```
python
{
	MyIndicatorReasons.REASON: self.tr("Reason message")
	MyIndicatorReasons.OTHER_REASON: self.tr("Other reason message")
}
```

In the above example `MyIndicatorReasons` is a subclass of `IndicatorReasons`
which should be specified as follows

```
python
MyIndicatorReasons(IndicatorReasons):
	REASON = auto()
	OTHER_REASON = auto()
```
2023-02-18 14:37:37 +02:00
loathingKernel da49a91a03 Utils: return correct value type string for get_size() 2023-02-17 13:23:44 +02:00
loathingKernel 6c0663771c GameInfo: Make widgets react to changes from RareGame's widget.update signal
Note: the `__update_widget()` method, while it doesn't have any visible delay
has the potential for improvement. I didn't do it because it felt like
premature optimization.

MoveGamePopUp: update it to use RareGame and it's signals

RareGame: Add `install_path` attribute and change `needs_verification` setter
Now both setters will update the local `igame` attribute and save it too.

MoveWorker: Update it to use RareGame.
Other changes include moving "same-drive" moving into the worker and using
`os.path` methods instead of `PathLib`

SteamGrades: Remove worker, it is implemented in RareGame now.
2023-02-15 16:59:33 +02:00
loathingKernel 9f408772e3 RareGame: Resolve and cache steam grade 2023-02-14 10:20:59 +02:00