1
0
Fork 0
mirror of synced 2024-06-29 19:51:02 +12:00
Commit graph

221 commits

Author SHA1 Message Date
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
loathingKernel 22e5d3c1a3
Wrappers: Use an edit button instead of double-click 2023-11-28 16:38:01 +02:00
loathingKernel 49fdd410ce
Housekeeping: Remove some print remnants 2023-11-28 16:38:01 +02:00
loathingKernel ecdafd3c1c
Wrappers: Allow wrapper editing on double-click.
Internally this works by removing the old wrapper and adding a new wrapper
int the same index.
2023-11-28 16:38:00 +02:00
loathingKernel 95fba89277
Wrapper: Truncate text on widgets to show only the command
Truncate the widget's text down to the command only without the arguments.
Show the full command with the arguments in the tooltip instead.

Update some text.
2023-11-28 16:38:00 +02:00
loathingKernel 21141e43ea
Wrapper: Fix wrapper reordering not being saved.
The order was determined by the order of the container dictionary entries.
Re-order them before returning the list by their index in the container
widget.

Fixes #304
2023-11-28 16:38:00 +02:00
loathingKernel 07cbcf52d0
Meta: Update links 2023-11-28 15:20:06 +02:00
loathingKernel f3a962260c
About: Update page
* Check for updates each time the page is visited
* Updated links, developers and contributors.
* Use a less difficult to read color for links

The check for updates still happens at startup, there is now a
subsequent check every time the about label is visited.

The update check should be moved into RareCore itself in the future.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-11-28 15:12:56 +02:00
lennard 42c1a1aaa6 Add a small fix 2023-04-08 01:03:14 +02:00
lennard c876e1fc3a Fix linux and proton settings environment_changed on windows 2023-04-08 01:03:14 +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
loathingKernel 2e1585bda8
EnvVarsModel: Be more lenient when checking for unchanged contents
Previously the unchanged contents check tested both `key` and `value`
at the same time, so the following case was not accepted.

`ENV_VAR=ENV_VAR`

No matter how unlikely it is for the key to be equal to the value, there
is no reason to restrict it.

For the `key` ("0") column, protecting against existing keys also handles
this case. For the `value` ("1") column, a check has been added.
2023-04-07 14:19:20 +03:00
lennard 9644d45b23
Check if mangohud exists when enabling it 2023-04-05 17:51:36 +02:00
lennard df1731de09 Fix key error for default mango hud settings 2023-04-05 13:09:34 +02:00
loathingKernel 28e6f02fc1
GameSettings: Emit signal when a non-editable row changes from the settings 2023-03-31 14:03:32 +03:00
loathingKernel 639395c454
EnvVars: Re-enable key press handler
EnvVarsModel: Better vertical header icons
2023-03-31 02:42:16 +03:00
loathingKernel 4b2bc7f91f
EnvVars: Handle environment variables with a QAbstractTableModel
Using a ChainMap and this custom model, we can display global environ
variables in the per-game settings, allowin better overview and
simpler override.
2023-03-29 14:07:19 +03:00
loathingKernel 392ea81707
ProtonSettings: correctly access wine_groupbox 2023-03-29 14:02:46 +03:00
lennard 554d3557d3
fix auto sync saves 2023-03-19 20:23:44 +01:00
loathingKernel ae74d3438b
GameSettings: Use a PathEdit for override_exe
In the process convert to Ui membership instead of dual
sub-classing for those forms
2023-03-16 12:41:50 +02:00
loathingKernel 837b391350
PathEdit: Allow for the completer's root path to be set at runtime.
This allows to complete from relative paths, such use exe override

Fix constructor argument names to follow Qt's types.
Set the same filters as the dialog for the completer.
Use the completer's icon provider for the dialog.

Force Rare to use Qt's file dialog instead of the native one.
2023-03-15 22:49:18 +02:00
loathingKernel 5cf802dee7
ProtonSettings: Don't default to a directory when there is no configuration
Defaulting to a directory caused the configuration file to flood with
`STEAM_COMPAT_DATA_PATH` options after IndicatorLineEdit became
 asynchronous
2023-03-14 13:19:51 +02:00
loathingKernel d641d0fcf2
DefaultGameSettings: Less verbose file name 2023-03-14 13:17:43 +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
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 0e161eb4d2 Use Worker base class for runnables in legendary settings and ubisoft widget.
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-27 23:49:44 +02:00
loathingKernel 5ba368a5bf SideTabContainer: Use a signal to update the title instead of monkeypatching setTitle method into the widget
Widgets that need to implement a title should be of a dual subclass
of any `QWidget` subclass and the `SideTabContents` class which provides
the signal.
2023-02-21 15:27:52 +02:00
loathingKernel 4ef73b48ef Dialogs: Homogenize dialog titles 2023-02-18 19:36:49 +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 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 1721677e33 GameWidget: Implement reactive and interactive labels
The `status_label` displays what is currently going on with the game.
It reflects the current operation running on it or if it requires special
attention (update, needs verification etc)

The `tooltip_label` displays hover information such as what happens
if a part of the widget is clicked or in the case of the launch button if
the game can run (without version check, offline etc)

The context menu on the widgets will be updated and populated according
to the installation state of the game. Since the context menu was revised
the shortcut creation code was revised too to make it more compact.

the `create_desktop_link` and `get_rare_executable` functions are moved
from `rare.utils.misc` to `rare.utils.paths` to avoid cyclical imports and
better grouping. Two functions are added, `desktop_link_path` to uniformly
calculate the path of the shortcut and `desktop_links_supported` which
checks if Rare supports creating shortcuts on the current platform.
`desktop_links_supported` should be used as safeguard before `desktop_link_path`.

Desktop links are currently untested on Windows but if `shortcut.Description`
works as expected, it should be good to go.
2023-02-07 13:41:59 +02:00
loathingKernel 211f92d2d6 MainTabWidget: Use returned indices instead of hard-coding disabled tabs
Parent the tabs properly for consistency
2023-02-06 09:19:31 +02:00
loathingKernel a8bc418e42 Reference tabs by their returned indices instead of hardcoded numbers 2023-02-04 17:38:07 +02:00
loathingKernel de273cbe20 WrapperSettings: Move class variables into instance variables 2023-02-04 17:38:07 +02:00
loathingKernel b9e9ed8088 EnvVars: Use monospace fonts for keys and values 2023-02-04 17:38:07 +02:00
loathingKernel 9ca39d94ab GlobalSignals: Reorganize signals into groups
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 61749f9acd EOSWidget/UbiActivationHelper: Move them from Settings to ImportSync 2022-11-03 22:34:50 +02:00
lennard 923aa1b90d
Migrate to legendary 0.20.30 2022-10-26 21:36:16 +02:00
lennard 8e721cc324
Include Origin games in get_wine_prefixes() 2022-10-23 22:52:39 +02:00