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.
* 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.
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.
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`
* 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
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`)
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.