1
0
Fork 0
mirror of synced 2024-09-12 23:54:24 +12:00
Commit graph

1566 commits

Author SHA1 Message Date
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
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
loathingKernel
631e1b9b3c Runners: disable some pylint checks for vdf 2024-01-22 00:38:09 +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
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
loathingKernel
6d3dd3784e
RareCore: Temporarily disable automatic egl sync and remove UI option.
Also set some more defaults for legendary because Rare lacks support for
them. Forced at startup.

* Set `disable_auto_crossover` to `false` because we don't support CX yet.
* Set `egl_sync` to `false` because issues.
2023-12-23 13:38:29 +02:00
loathingKernel
edab90eb4b
Rare: Release 1.10.11 2023-12-20 11:25:29 +02:00
loathingKernel
b039f9e06c
LaunchDialog: allow legendary to check for updates in its own way 2023-12-19 11:46:13 +02:00
loathingKernel
e08169f9d6
Rare: re-release 1.10.9 as 1.10.10 for PyPI 2023-12-18 13:27:36 +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
85d29372d4
GameSettings: Hide proton settings on macOS 2023-12-17 19:34:37 +02:00
loathingKernel
bc485ed40b
RareCore: Don't delete overlay RareGame at exit 2023-12-17 19:34:08 +02:00
loathingKernel
a990400e34
Rare: Release 1.10.9 2023-12-17 15:22:09 +02:00
loathingKernel
32565b3a9c
HeadBar: Update some strings 2023-12-17 01:28:56 +02:00
loathingKernel
dfa60aa99f
ImportGroup: Add platform selection when importing games.
If we are importing multiple games, default to importing the native platform
if the game supports it, otherwise fallback to the Windows platform
2023-12-17 01:20:07 +02:00
loathingKernel
c9264c732e
HeadBar: Default to Mac games fitler on macOS 2023-12-16 21:57:09 +02:00
loathingKernel
1cf53e3b54
Library: Filter unreal engine entries expect for the dedicated option 2023-12-16 20:26:56 +02:00
loathingKernel
b93435d920
Lgndr: Disable legendary's update checks and ignore config file options 2023-12-16 16:23:58 +02:00
loathingKernel
bfa2335551
RareCore: Strengthen config initialization and checks
* Check if the `default_platform` option exists and it is correct
* Check if `install_dir` and `mac_install_dir` are already set
2023-12-16 15:40:01 +02:00
loathingKernel
54ac89a85a
Lgndr: Validate default platform if it is coming from the config 2023-12-16 15:36:38 +02:00
loathingKernel
5f5e471169
RareGameBase: Add default_platform property
This property reports the default platform to use for a game based
on legendary's configuration and if they platform is available in the
game's assets.

Using that property we can make better choices on what platform to operate
on without user intervention. Currently we use it to infer the platform
in when installing, importing, and calculating game versions.
2023-12-16 14:02:53 +02:00
loathingKernel
447d704de3
Lgndr: Log what config location we are using 2023-12-16 13:57:32 +02:00
loathingKernel
1139765343
ImageSize: Make Library images slightly larger to accommodate more text on macOS 2023-12-16 13:52:37 +02:00
loathingKernel
8e573083ad
RareCore: Set install_dir and mac_install_dir on new configurations. 2023-12-16 13:52:06 +02:00
loathingKernel
79df146348
Rare: expand LEGENDARY_CONFIG_PATH before using it. 2023-12-16 13:50:48 +02:00
loathingKernel
0bd34af720
ImportGroup: calculate correct install dir when importing game 2023-12-16 01:28:37 +02:00
loathingKernel
6249e56849
InstallDialog: Oooooooof.gif
* Infer the displayed to reflect where the affected directory is
  If base_path is set outside of InstallDialog, display that.
  If the game is already installed, show the installation directory
  If neither of the above is true, use legendary's inference based on
  the default platform if the game supports it. Fallback to Windows.

* Disable irrelevant and potentially harmful options when the game is
  already installed, such as the installation path, the platform selection
  and creating a shortcut.

* Infer the correct platform based on the existing installation. If it
  is not installed, use the default platform if the game supports it and
  fallback to windows.

* Move the horrible lambda used to populate the error box when the
  platform was unsupported into a separate method.
2023-12-16 00:49:51 +02:00
loathingKernel
db588ed4e2
Use legendary's installation directory inference 2023-12-16 00:40:15 +02:00
loathingKernel
c3bdffcd50
RareCore: Check if LEGENDARY_CONFIG_PATH is set before creating a new config 2023-12-16 00:39:00 +02:00
loathingKernel
097b76fc6b
FetchWorker: Update strings MacOS -> macOS 2023-12-15 23:30:13 +02:00
loathingKernel
6d5b60a56e
LegendarySettings: Add path edit for macOS specific mac_install_dir option
Used only when installing macOS games on macOS, in any other OS
the setting is set to the same value as `install_dir`
2023-12-15 23:28:49 +02:00
loathingKernel
392b4b7896
RareSettings: Always show information label in interface section 2023-12-15 23:23:32 +02:00
loathingKernel
fd809c708f
UI: Update some strings 2023-12-15 23:22:55 +02:00
loathingKernel
1b85440e2b
IndicatorEdit: Set placeholder as tooltip too 2023-12-15 23:20:32 +02:00
loathingKernel
cada2ae985
ImportWorker: Use default platform when importing, fallback to Windows if there is no assets for the platform 2023-12-15 17:56:33 +02:00
loathingKernel
51337116d5
RareGameBase: use default platform for version 2023-12-15 17:25:09 +02:00
loathingKernel
76083b9f07
Ui: Update some strings in RareSettings form 2023-12-15 16:58:03 +02:00
loathingKernel
1677ea762c
FetchWorker: Fix issue with missing MacOS assets on MacOS
Using `LegendaryCore.get_game_and_dlc_list` with platform `Windows`
updated the assets only for the `Windows` builds of the games missing
`Win32` and `MacOS` assets on clean installs. This caused Rare to not
include MacOS install options on MacOS (duh!). This might also have been
the cause that users were unable to launch games, since they where only
offered the `Windows` build of the games (big duh!).

To fix this, fetch the assets for `Win32` and `MacOS` games before getting
the final list of games and dlcs based on the `Windows` platform.

In this regard, also re-use the existing options for getting metadata to
give the option to the user to include them when updating assets. Also add
an option to include Unreal engine assets which until now were fetched
unconditionally.

* Include Unreal: When the user option is `true` or debugging.
  Defaults to `false`
* Update Win32: When the user option is `true` or debugging.
  Defaults to `false`
* Update MacOS: Force on MacOS, when the option is `true` or debugging on
  other platforms. Defaults to `true` on MacOS and is disabled,
  `false` on others

Furthermore, respect legendary's `default_platform` config option and
set it in the config on new configurations. The new method in our
LegendaryCore monkey allows us to use that option in RareGame when doing
version checks on not installed games, and not defaulting to `Windows`.

Finally, set `install_platform_fallback` to false in a new config to
avoid unwanted side-effects.
2023-12-15 16:57:32 +02:00
loathingKernel
687218d29b
RareGame: Return values only from Game for app_name and app_title
With launchable DLCs we will need to replace the InstalledGame in the
DLC with the InstalledGame from the base game so depend these properties
solely on the Game attribute. Furthermore, since we do not need backwards
compatibility any more, remove the `title` property and rename its uses
to use `app_title`
2023-12-14 23:08:29 +02:00
loathingKernel
dfa12a0138
IconGameWidget: Make icons slightly smaller by using the Library preset
Previously the Display and Library presets were equal. Make the
icons smaller by making the Library preset ~75% of the Display.preset
2023-12-14 13:57:22 +02:00
loathingKernel
cfbb6ea578
GamesTab: Initialize when first shown. 2023-12-14 13:57:04 +02:00
loathingKernel
5abae7ee16
FlowLayout: Fix overlapping widgets and remove default arguments 2023-12-14 00:49:22 +02:00
loathingKernel
23716e40d8
Lgndr: Log function name using the decorator 2023-12-13 21:29:02 +02:00
loathingKernel
dda1793890
Rare: Version 1.10.8 2023-12-13 15:36:57 +02:00
loathingKernel
90acf4b9ce
Lgndr: Make the decorator compatible with python 3.9
Revert this once we move to python `>=3.10`
2023-12-13 15:05:04 +02:00
loathingKernel
f361828f37
Lgndr: Replace _installed_lock with a non-thread-local instance.
Since Python 3.11, `FileLock` is thread-local by default, which causes
numerous issues with Rare because of numerous operations running in
`QThreads` and `QRunnables`. To work around it, add a monkey LGDLFS class
that uses a non-thread-local instance of `FileLock`. Since the monkey class
exists, implement a `unlock_installed` method for code clarity

* Add decorate `LegendaryCore.egl_sync` with `unlock_installed`
* Log that Rare's monkeys are in use
* Add function signature protocols based on `typing.Protocol`
2023-12-13 15:05:01 +02:00
loathingKernel
9de5627be3
SideTabContainer: Set size policy for the container scrollarea container widget 2023-12-12 14:43:41 +02:00
loathingKernel
490f0dc69f
Shop: Rename module to store 2023-12-12 13:02:07 +02:00
loathingKernel
83dd118784
ShopWidget: The shop is broken, set it only show the free games and the wishlist 2023-12-12 12:48:43 +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
6c0a92966e
GameSettings: Properly find row to insert widgets. 2023-12-12 01:23:19 +02:00
loathingKernel
d563421391
EGLSyncGroup: Properly find the correct rows to insert widgets 2023-12-12 01:23:18 +02:00
loathingKernel
b5a18f2858
ImportGroup: Properly find the row when inserting path_edit and app_name_edit 2023-12-12 01:23:18 +02:00
loathingKernel
3ce62facd2
InstallDialog: Properly find the the row when inserting install_dir_edit 2023-12-12 01:23:17 +02:00
loathingKernel
8e1a3c8c73
LoginDialog: Calculate a fixed height for the login stack based on width
* Properly find row to insert sid_edit into
* Use lazy evaluation for logging
* Clean the login forms by using separate layouts for the interactive fields
2023-12-12 01:23:17 +02:00
loathingKernel
60383d2844
IndicatorLineEdit: Remove hint label
It looks like it is not used by anything any more.
2023-12-12 01:23:17 +02:00
loathingKernel
0ec80e5678
LoginDialog: Set minimum size in a way that avoids resizing on changing widgets
The forms were updated to be more informative and easier to read.

NOTE: The reason the form is bigger than the contents is because the
QLabels have word-wrapping enabled and as such they substitute width
for height (`hasHeightforWidth`)
2023-12-12 01:23:16 +02:00
loathingKernel
e188cee4e5
BrowserLogin: Add privacy note 2023-12-12 01:23:16 +02:00
loathingKernel
64e9e312c7
BrowserLogin: Improve instructions 2023-12-12 01:23:15 +02:00
loathingKernel
8c83f8aa23
InstallDialog: Add install_dir_edit widget without using an extra layout 2023-12-12 01:23:15 +02:00
loathingKernel
0d62965edb
Dialogs: Make titles uniform 2023-12-12 01:23:15 +02:00
loathingKernel
38cc1f34a2
ImportGroup: Update the form when each time it is shown
Reduces startup time and outdated information in the completer/checks.
2023-12-10 23:43:46 +02:00
loathingKernel
ca5daab71d
Lgndr: Log that the data lock is active 2023-12-10 22:46:02 +02:00
loathingKernel
0503cb1bb4
VerifyWorker: Use verify_stdout factory instead of direct assignment 2023-12-10 22:44:59 +02:00
loathingKernel
e1c1d01958
ImportGroup: Use get_boolean_choice factory insteand of lambda 2023-12-10 22:44:19 +02:00
loathingKernel
fa5294b1d5
Lgndr: Replace the monkey functions with factories to create them
The factories are also usable in Rare's code to create compatible
functions for the callbacks. If they there is no callback they just
log what is happening. It also removes the need for `typing-extentions`
module.
2023-12-10 22:43:31 +02:00
loathingKernel
df0f7603f2
ImportGroup: Don't enable the Import Game button if import is running 2023-12-10 22:12:17 +02:00
loathingKernel
8f88dc661c
DlThread: Create callback function for future use 2023-12-10 22:06:44 +02:00
loathingKernel
845bc54a90
InstallDialog: Add selective downloads descriptions as tooltips 2023-12-10 14:22:29 +02:00
loathingKernel
d1d7e6d2e7
InstallDialog: Code consistency with button slot names 2023-12-10 14:22:29 +02:00
loathingKernel
13eaa459e1
LaunchDialog: accept_close -> reject_close for code consistency 2023-12-10 14:22:29 +02:00
loathingKernel
0ea8d2c0d2
UninstallDialog: Handle Escape key
Handle Escape key to go through the proper cancellation routine.
2023-12-10 14:22:29 +02:00
loathingKernel
8ec82f0283
About: Use UI membership instead of double inheritance 2023-12-10 14:22:28 +02:00
loathingKernel
90f55287c0
WineResolver: Fix typo 2023-12-10 14:22:28 +02:00
loathingKernel
562c956634
DebugSettings: Refactor slightly
The quit signal is disconnected currently.
2023-12-10 14:22:28 +02:00
loathingKernel
a33c4e5cf2
AccountWidget: Use ExitCodes enum everywhere instead of magic values 2023-12-10 14:22:28 +02:00
Stelios Tsampas
7824fa20a8
InstallDialog: Always show prerequisites if they exist
* Do not depend the relevant InstallOptionsModel option to on the running platform
2023-12-10 14:22:27 +02:00
loathingKernel
1c9b6f3faf
Launcher: Add Fortnite to detached processes 2023-12-10 14:22:27 +02:00
loathingKernel
b20be46752
InstallDialog: Offer to install prerequisites on native platforms 2023-12-10 14:22:27 +02:00
loathingKernel
5be24a4d89
SteamGrades: Use orjson instead of python's implementation 2023-12-10 14:21:39 +02:00
loathingKernel
86c683835b
Rare: Unset QT_QPA_PLATFORMTHEME at startup
It can mess up theming.
2023-12-10 14:21:39 +02:00
loathingKernel
99eaf86507
AccountWidget: Add a Quit button in the widget in case the system tray
is unavailable (for example running in a gamescope session)

* Do not show the launch window while instantiating the application. This
probably was causing numerous issues because it was running outside of
the applications event loop. This also fixes the exit button on the login
dialog requiring `sys.exit()` to quit Rare. Now it goes through the
proper cleanup procedures.

* Make slot and signal names more uniform

* Fix a problem with RareCore connecting RareGames to the same signals
multiple times when the library was refreshed.
2023-12-10 14:21:39 +02:00
loathingKernel
c21fddefb4
Utils: Delete deprecated CloudWorker. 2023-12-10 14:21:38 +02:00
loathingKernel
c4da6a9512
MainWindow: Untie exit procedure from offline argument 2023-12-10 14:21:38 +02:00
loathingKernel
6e7ea3181e
GameInfo: Add tags groupbox 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
debb62c990
CloudSaves: On Windows, resolve the save path immediately if unset 2023-12-10 14:21:38 +02:00
loathingKernel
9a87e4e39f
RareLauncher: Fix crash when a false app_name argument is supplied 2023-12-10 14:21:37 +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
5f062830cf
RareLauncher: Enable terminate and kill buttons 2023-12-10 14:21:35 +02:00
loathingKernel
adf192e424
Rare: Version 1.10.7 (pre-release) 2023-12-10 13:52:33 +02:00
loathingKernel
5a2c9ae444
Lgndr: Handle exceptions in the unlock decorator 2023-12-10 13:47:07 +02:00
loathingKernel
9dd078aa92
Lgndr: match _handle_uninstaller signature 2023-12-10 12:18:50 +02:00
loathingKernel
e308686468
Revert "Lgndr: Add _login overload in core.py"
This reverts commit 8d0397415d.
2023-12-10 12:09:38 +02:00
loathingKernel
6daee29c24
Revert "Lgndr: Undo bind_ip changes"
This reverts commit 7979563cb5.
2023-12-10 12:09:26 +02:00
loathingKernel
2319c7c889
Rare: Release 1.10.6 2023-12-07 19:44:37 +02:00
loathingKernel
b60062d455
Code: Use vars() instead of directly accessing __dict__ 2023-12-07 19:40:16 +02:00
loathingKernel
509d33e1b7
MainWindow: Default to closing to tray to respect the default setting 2023-12-07 19:39:45 +02:00
loathingKernel
c2676eaa90
GameProcess: Don't spam with not found processes on startup 2023-12-07 19:39:07 +02:00
Stelios Tsampas
dab13748f3
About: Fix crash on version update check
Fixes: #330
2023-12-07 19:33:58 +02:00
loathingKernel
999d3bf7b8
Rare: Release 1.10.5 2023-12-05 00:26:59 +02:00
loathingKernel
70af132da1
EOSGroup: Check for 'user.reg' file to validate prefix path 2023-12-03 17:01:05 +02:00
loathingKernel
842bd27e8c
Rare: Release 1.10.4 2023-12-03 11:21:52 +02:00
loathingKernel
c56e7ce82c
RareGame: Moved some properties and methods to RareGameBase
These properties or methods were moved to RareGameBase
* `version`: For RareEosOverlay and maybe RareGameSlim
* `is_origin`: For RareGameSlim
* `install_path`: A partial Origin-unaware version
* `is_mac/is_win32`: For completeness

New methods
* `is_overlay`: For the download manager

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-12-03 11:21:52 +02:00
loathingKernel
a355339016
EGLSyncGroup: Resolve EGL manifest path on showEvent() 2023-12-03 11:21:51 +02:00
loathingKernel
8d0397415d
Lgndr: Add _login overload in core.py
Revert this commit once the new version of Legendary (`>0.20.33`) is released
2023-12-03 11:21:51 +02:00
loathingKernel
7979563cb5
Lgndr: Undo bind_ip changes
Revert this commit once the new version of Legendary (`>0.20.33`) is released
2023-12-01 13:22:35 +02:00
loathingKernel
9aae822295
Lgndr: Import legendary changes 2023-12-01 13:21:44 +02:00
loathingKernel
32859715d3
Lgndr: Use perf_counter in download (Rare only) 2023-11-30 12:51:39 +02:00
loathingKernel
f672a678c9
Paths: Detect when running though python -m rare 2023-11-29 13:25:04 +02:00
loathingKernel
3e7408ee8f
EGLSync: Update the widget when it is shown for the first time
* Don't hide irrelevant elements in Windows, disable them and use them as information
* Create the `Manifests` folder in ProgramData if its parent exists.
2023-11-29 13:16:52 +02:00
loathingKernel
a87f34163a
Skip widget updates on spontaneous events.
Spontaneous are events external to the application such as the window
manager showing or hiding the application. We don't want to update on those.
2023-11-29 12:50:39 +02:00
loathingKernel
c063f5f5b9
Library: Move image loading from RareCore to the GameWidget
Instead of loading images in the showEvent of the MainWindow,
load them in the showEvent of each widget. It seems to reduce
the startup stuttering this way. With some more work
we can only load the images for the widgets that are currently
visible and reduce the stutter even more.

At the same time, reduce the number of concurrent downloads
in the image manager and add a timeout so we won't halt.
The exception from the timeout is just logged at this point,
and the download is not requeued.
2023-11-29 12:50:02 +02:00
loathingKernel
c05209578c
InstallDialog: Fix install dialog not calculating available space
After the PathEdit change that stopped it from emitting the
textChanged signal when instatiated, the available space
calculation wouldn't take place, so do it when the dialog
becomes visible.
2023-11-29 12:47:56 +02:00
loathingKernel
ef07243677
IndicatorEdit: Set contents before connecting signals
Previously a lot of things would start running concurrently at
startup as we were setting up the UI. This removes a considerable
amount of perceived delay.

Note: there are better ways to make sure forms are populated when they
are viewed, such as each widget's `showEvent()`
2023-11-29 12:47:56 +02:00
loathingKernel
3b0c25e241
Widgets: Move PathInputDialog to rare/widget as a generic option
This widget is currently unused and could be deleted
2023-11-29 12:39:27 +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
05070919f3
GameWidget: Remove obsolete cloud saves code 2023-11-28 16:51:27 +02:00
loathingKernel
4726849403
LoadingWidget: Use @MultisampledNight 's animation
Thanks, UwU
2023-11-28 16:48:13 +02:00
loathingKernel
d6809c287e
RareCore: Fix a problem with dialogs spawning multiple times.
RareCore was connecting RareGames to the same signals
multiple times when the library was refreshed.
2023-11-28 16:38:03 +02:00
loathingKernel
110ea51ed6
DxvkSettings: Add compiler config option 2023-11-28 16:38:02 +02:00
loathingKernel
083094bcfc
Downloads: Code clarity 2023-11-28 16:38:02 +02:00
loathingKernel
f2c575e082
InstallDialog: Expose platforms in RareGame and use it
to populate the combobox
2023-11-28 16:38:02 +02:00
loathingKernel
43766c82a4
GameInfo: Enable Modify button only when the game has SDLs
Add icons to the DLC install/uninstall buttons
2023-11-28 16:38:02 +02:00
loathingKernel
d53eb92e53
Login: Remove spacer 2023-11-28 16:38:02 +02:00
loathingKernel
e4782b70ae
GameInfo: Add button icons 2023-11-28 16:38:02 +02:00
loathingKernel
301d070ab3
WrapperSettings: Show wrapper name in warning dialogs. 2023-11-28 16:38:01 +02:00
loathingKernel
7b308d7c90
WrapperSettings: Use Ui through membership instead of inheritance. 2023-11-28 16:38:01 +02:00
loathingKernel
536078748b
WrapperWidget: Use a drop-down menu to hold actions. 2023-11-28 16:38:01 +02:00