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

261 commits

Author SHA1 Message Date
loathingKernel e50015c25c
WrapperSettings: Improve widget structure
* Remove the annoying stacked widget, instead create a double layout in
the container and place a label in that to hold the placeholder message.

* Implement the scroll area as a custom widget. This custom widget installs
an event filter on the container to adjust the scrollarea size when the
container size changes.
2024-02-24 13:11:28 +02:00
loathingKernel 2e8dcc49ca
Settings: Translate titles 2024-02-24 02:25:47 +02:00
loathingKernel 5bf353ec37
Rare: Replace QToolButton with QPushButton
QToolButton is not really designed to be used in the way we did and since
QPushButton supports having a menu attached to, we can replace tool buttons
in most cases.

* Fix the presentation of the TabButtonWidget by updating RareStyle's css

* Reduce the size of the top tab bar to save vertical space.

* Remove infoLabel property
2024-02-21 20:25:03 +02:00
loathingKernel 8dbce8e9f2
Rare: rename icon function to qta_icon 2024-02-21 13:30:41 +02:00
loathingKernel 5b217e0b15
Overlay: remove print statements 2024-02-18 12:54:24 +02:00
loathingKernel d16b3d5d68
Runners: rename proton to steam 2024-02-18 12:50:35 +02:00
loathingKernel 5359b73c35
Settings: Use membership instead of double inheritance 2024-02-16 13:03:27 +02:00
loathingKernel e776ed457a
WineSettings: Order executable before prefix 2024-02-16 12:27:06 +02:00
loathingKernel 582b83c12b WIP 2024-02-12 21:52:08 +02:00
loathingKernel b7b1bc6406 RareSettings: Use QDesktopServices to open the file manager for us 2024-02-12 21:52:08 +02:00
loathingKernel 4f4689e82b RareSettings: Add global options for style sheets and color schemes
* Add an option to select the library view mode.
  This will allow us to instantiate only one library view at startup,
  reducing time and complexity of the process.
2024-02-12 21:52:08 +02:00
loathingKernel b84686aba6 Overlay: Clean old code 2024-02-12 21:52:08 +02:00
loathingKernel 2d3a8deec1 Rare: Update some strings 2024-02-12 21:52:08 +02:00
loathingKernel 8a3bdbdd91 Rare: Improve translation handling
* Remove base Qt translations from repo, load translations from Qt itself
* Prefix translation `qm` files with `rare_`.
* Rename `translation_source.ts` to simply `source.ts`
* If the selected language matches the system local, remove the option from the configuration.
2024-02-12 21:52:08 +02:00
loathingKernel 284543a6d9 Rare: Decouple Rare's locale from legendary's
* Instead of using legendary's locale as fallback, use system't locale
as default.
* Do not hardcode language names and countries but use QLocale on
the translation filenames.
2024-02-12 21:52:08 +02:00
loathingKernel 94030055cf Wrappers: Add a combobox with existing wrappers for the user to choose from.
Add a combobox in the "Add wrapper" dialog, populated with existing
user-defined wrappers from other games.
2024-02-12 21:52:08 +02:00
loathingKernel fb91a55f30 Dialogs: Use consistent dialog titles for the launcher's dialogs 2024-02-12 21:52:08 +02:00
loathingKernel e8e4ed739b Remove some unused imports 2024-02-12 21:52:08 +02:00
loathingKernel 8df9b08e7e WrapperDialog: Use subtitle 2024-02-12 21:52:07 +02:00
loathingKernel a104cf4518 Wrappers: Add WrapperDialog based on ButtonDialog for consistent look and feel 2024-02-12 21:52:07 +02:00
loathingKernel 1cfcb783c2 EnvVars: Add MANGOHUD as read-only 2024-02-12 21:52:07 +02:00
loathingKernel a15a2fbbe2 OverlaySettings: Refactor to be more event-driven complaint 2024-02-12 21:52:07 +02:00
loathingKernel aadf795d21 Overlays: Reorder method assignments 2024-02-12 21:52:07 +02:00
loathingKernel bb5b0f1585 Overlays: Update title strings 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 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 b67c391a26 Chore: fix argument name in keyPressEvent 2024-02-12 21:51:42 +02:00
loathingKernel 58574c1977 Legendary: Do a smarter split 2024-01-29 16:20:59 +02:00
loathingKernel 06e2c9b714 DebugSettings: Add button to test notifications 2024-01-19 17:17:48 +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 80ac9296fc Rare: cherry-pick some sourcery suggestions 2024-01-02 17:57:02 +02:00
loathingKernel 600441a614 Rare: Import platform specific modules only on said platforms 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 85d29372d4
GameSettings: Hide proton settings on macOS 2023-12-17 19:34:37 +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 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 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 8ec82f0283
About: Use UI membership instead of double inheritance 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
Stelios Tsampas dab13748f3
About: Fix crash on version update check
Fixes: #330
2023-12-07 19:33:58 +02:00
loathingKernel 110ea51ed6
DxvkSettings: Add compiler config option 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