lennard
21a339b394
Finish french translation
2023-05-08 08:46:47 +02:00
loathingKernel
7218f0b696
ImportGroup: Add force
import option.
...
When checked, the check for missing files will be skipped, allowing
for games missing too many files or their executable to be imported.
2023-05-07 16:33:08 +03:00
Stelios Tsampas
23c2f6dc0a
RareGame: Return app_title
as folder name if FolderName
is not in customAttributes
...
Fortnite specifically doesn't provide `FolderName` in `customAttributes`, meaning we can't create the shortcut. If the attribute is not provided, assume that it is safe to use the application title.
Fixes : #283
2023-05-04 17:45:51 +03:00
lennard
3d0ebf702a
Bump version 1.10.1
2023-05-04 01:03:59 +02:00
loathingKernel
82128e35ca
RareCore: Use correct typing identifier
2023-05-03 17:27:36 +03:00
loathingKernel
184be66662
ImportGame: Pass app_name
through the signal to resolve some information
...
Not working particularly well, since setting the path tries to auto-detect
the `app_name`, but it doesn't break anything either.
2023-05-03 17:27:36 +03:00
loathingKernel
4a96224dd3
GameInfo: Enable Import Game
button, redirects to Import Game
tab
2023-05-03 17:27:36 +03:00
loathingKernel
1c6a05c3f1
Refactor: Import ImageSize
from widgets
or directly from models
2023-05-03 17:27:36 +03:00
loathingKernel
0e4e7420cf
Refactor: Move ImageSize
to models
...
`ImageSize` is a property of `ImageWidget` it is relevant to
`ImageManager` and the store widgets. So move it out of `ImageManager`.
2023-05-03 17:27:35 +03:00
loathingKernel
6986b1eab3
Rare: Apply UTC timezone info on dates
2023-05-03 17:27:35 +03:00
lennard
672bc814ba
Fix import game
2023-05-03 12:32:12 +02:00
lennard
62aa78dcae
Fix release-tests workflow
2023-05-03 12:32:12 +02:00
lennard
f8b38e0cb8
Fix desktop shortcuts on windows
2023-05-03 12:32:12 +02:00
lennard
ec6f24e3f8
Add tag to hide games from library
2023-05-03 12:32:12 +02:00
lennard
263af75853
Do not set available space text twice in install dialog
2023-05-03 12:32:12 +02:00
lennard
075443261d
Show free space in install dialog
2023-05-03 12:32:12 +02:00
lennard
b6fc468681
Fix win-zip workflow
2023-05-03 12:32:12 +02:00
lennard
fb67c15622
Bump version to 1.10.0
2023-05-01 16:27:26 +02:00
lennard
5cfd3fffe3
Fix offline mode
2023-04-16 19:38:26 +02:00
lennard
30c3dadd4d
Update translations
2023-04-13 01:10:12 +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
lennard
a06dc7cd0f
Use signal.disconnect
without parameters
2023-04-08 01:03:14 +02:00
lennard
60da656877
Disconnect all game process signals before stop to prevent exceptions
2023-04-08 01:03:14 +02:00
lennard
b48e1603cb
Add a signal handler to launch helper
2023-04-08 01:03:14 +02:00
lennard
f1fa0ada1a
Open cloud save dialog after playing a game, if no action set on start
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
loathingKernel
fee96a5f9d
[RareGame] Apply state if the game is found to be running at startup
2023-04-06 23:41:23 +03:00
lennard
9644d45b23
Check if mangohud exists when enabling it
2023-04-05 17:51:36 +02:00
lennard
0186b4f3c4
Add documentation for is_non_asset
...
{'Windows': GameAsset(app_name='', asset_id='', build_version='', catalog_item_id='', label_name='', namespace='', metadata={})}
2023-04-05 13:32:35 +02:00
lennard
df1731de09
Fix key error for default mango hud settings
2023-04-05 13:09:34 +02:00
lennard
ea0f40bb41
Update game state, when saves updated
2023-04-05 13:09:34 +02:00
lennard
9233c28e5b
Update loading widget
2023-04-05 13:09:34 +02:00
lennard
37a8a052c8
Add loading widget to cloud saves
2023-04-05 13:09:34 +02:00
lennard
0943d06820
Add class loadingWidget
2023-04-05 13:09:34 +02:00
lennard
3ec6a45cc3
Add double check for game assets and fix error in cloud save dialog
2023-04-05 13:09:34 +02:00
loathingKernel
849c98bee5
ProgressLabel: Use a centering procedure based on events
...
Previously the `setGeometry()` method was called explicitly. In this
procedure the self-centering widget installs an `eventFilter` on its
parent to react to `Resize` events of the parent.
This breaks centering on the list widgets a bit, pending an investigation
2023-04-04 13:34:33 +03:00
loathingKernel
e9b9f91df8
ImageSize: Include reference to the base image preset
...
"Base" refers to the preset used fetching and storing the image
2023-04-04 13:30:40 +03:00
loathingKernel
cfba81b2ec
SideTabContents: Add implements_scrollarea
option
...
In case a widget uses its own scrollareas for dynamic resizing
(for example the store), setting `implements_scrollarea` to `True`
will avoid the encapsulating scrollarea of the container.
2023-04-01 21:29:30 +03:00
loathingKernel
dcb6bc7b98
GamesTab: Since the layouting is fixed, add a nice margin at the bottom
2023-04-01 00:55:42 +03:00
loathingKernel
74eb87b396
ImageSize: Add smaller size presets for wide images
2023-04-01 00:55:11 +03:00
loathingKernel
8de4213874
FlowLayout: Calculate sizeHint()
based on the container.
...
Fixes `heightForWidth()` and layouting extending past what was required.
Remove dead code from LibraryLayout
2023-04-01 00:54:39 +03:00
loathingKernel
334e30dcc8
ImageWidget: Implement sizeHint()
and minimumSizeHint()
...
Fixes inaccurate widget positioning
2023-04-01 00:53:00 +03:00
loathingKernel
28e6f02fc1
GameSettings: Emit signal when a non-editable row changes from the settings
2023-03-31 14:03:32 +03:00
loathingKernel
459828f1de
RareGame: Initialize steam_date
and last_played
to datetime.min
...
Due to some metadata corruption, metadata now gets locked before
being accessed
2023-03-31 14:02:01 +03:00
loathingKernel
639395c454
EnvVars: Re-enable key press handler
...
EnvVarsModel: Better vertical header icons
2023-03-31 02:42:16 +03:00
lennard
574e491cbf
Bump version 1.9.91
2023-03-31 00:16:04 +02:00
loathingKernel
42b9f581f6
GameInfo: Use QFormLayout instead of QGridLayout for the information
...
Also partition the space to left and right layouts, left layout being the
image and the space below it (pending future usage), and right the
information.
2023-03-30 12:50:42 +03:00
loathingKernel
8e6503758c
RareGame: Store steam grade and its fetch date in metadata
2023-03-29 18:02:48 +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
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
392ea81707
ProtonSettings: correctly access wine_groupbox
2023-03-29 14:02:46 +03:00
loathingKernel
afea6c54f6
GameSettings: Ignore override checks if the game is not installed
2023-03-29 14:01:57 +03:00
lennard
639d785bf1
Update version
2023-03-19 22:14:56 +01:00
lennard
c48a5ff2f8
Update version
2023-03-19 22:05:30 +01:00
lennard
bc69851639
Bump version
2023-03-19 21:45:49 +01:00
lennard
554d3557d3
fix auto sync saves
2023-03-19 20:23:44 +01:00
lennard
3874fac402
Sync saves when game finished
2023-03-18 16:14:01 +01:00
loathingKernel
748ff6d9ed
RareCore: Detect if a game in saves is from another account.
...
And some cleanup
2023-03-18 14:42:46 +01:00
lennard
22b8992e55
Update translation_source.ts
2023-03-16 23:31:16 +01:00
loathingKernel
a768bce996
RareGame: export .egstore
only after installing and successful verification
2023-03-16 18:07:33 +02:00
loathingKernel
c3231d9e17
Use object
instead of ctypes.c_uint64
for signals that carry large ints
2023-03-16 14:04:12 +02: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
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
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
3236a4090c
RareGame: don't delete .egstore
if the game is a DLC
...
VerifyWorker: use RareGame property to apply the verification check
to any DLCs
2023-03-15 21:20:52 +02:00
Stelios Tsampas
dc20293abb
IndicatorLineEdit: Wrap edit_func inside the QRunnable
2023-03-15 18:25:32 +02:00
Stelios Tsampas
07c64b8b9b
GameInfo: Fix enablement check
2023-03-15 18:07:20 +02:00
Stelios Tsampas
2ebc12b1f5
LgdnrCore: Add egstore_write
and egstore_delete
methods
...
`egl_unintall` and `egl_export` try to access EGL's programdata folder which raises an exception if the folder doesn't exist (Windows) or it isn't specified (Linux). Copy the relevant bits from LegendaryCore to LgndrCore and create two new methods that only manipulate the `.egstore` folder.
2023-03-15 17:59:33 +02:00
loathingKernel
ee6a129be8
RareGameSlim: Resolve save game again if dt_local
is None
...
If the save path wasn't known at startup, dt_local will be None. This led
to the UI displaying wrong information about the local save. Detect that
case and resolve the save's status again.
2023-03-14 15:21:10 +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
loathingKernel
cf4835542d
IndicatorReasonsCommon: Add EMPTY
reason
2023-03-14 13:12:42 +02:00
loathingKernel
18ebb6888f
InstallDialog: Allow for some special cases to install 0 size downloads
...
This specifically helps with games that have selectable downloads.
If we import a game with SDLs without any `install_tags` in the config
we will verify against the full game, meaning that files missing will
cause the verification to fail despite the game being correct. Since the
game is correct, resolving the download will result in a 0 size update.
This change will allow the InstallDialog to finish through the Install
button successfully despite having nothing to install.
On the `lgndr` side things are more complicated. Due to minor oversights
in legendary, the `install_tags` in the above example wouldn't be written
to the configuration file, causing a verification loop because the file
list wouldn't be filtered. To fix that, we also save legendary's config
file at the end of cleaning after a 0 size download.
2023-03-14 12:18:19 +02:00
loathingKernel
0cc521ba0b
RareCore: keep configuration when uninstalling a game at startup
...
We don't need to lose the `install_tags` or any other settings because
a disk might be not mounted.
2023-03-14 01:20:13 +02:00
loathingKernel
b7d499f3e1
RareGame: Add is_ubisoft
property
2023-03-13 14:39:14 +02:00
loathingKernel
ec5bf7227b
RareCore: Move validation step after RareGame creation
2023-03-13 14:38:47 +02:00
loathingKernel
c6a9460044
GameInfo: Fix missin format()
argument
2023-03-13 13:18:12 +02:00
loathingKernel
439475dcd1
Downloads: Update queues count at more occasions
...
Also count active download in the queues
2023-03-13 12:30:27 +02:00
loathingKernel
fee1f34451
ImportGroup: Rename button slot
2023-03-13 12:29:33 +02:00
loathingKernel
a7b85500f2
RareGame: Clean and export .egstore
after updating igame
...
When importing a game, the first thing being checked for import information
is `<install_dir>/.egstore`. Due to erroneous handling, that directory can
contain multiples of `.mancpn` and `.manifest` files. This could lead to
importing an older version as legendary expects only one pair of these
files to exist in that directory.
The `.egstore` folder is normally updated/created as part of synchronizing
with EGL. To aid with importing games in the future, we always export this
data for Rare to be able to import games between different OSes
2023-03-13 12:29:04 +02:00
loathingKernel
a17ffe0426
CloudSaves: Set the labels to "None" even if save_path
is not set
2023-03-13 01:11:15 +02:00
loathingKernel
e263523a76
ImportGroup: Constrain QStackedWidget from resizing when changing contents
...
Fix its size to the import button's size.
2023-03-13 00:58:16 +02:00
loathingKernel
97e34d6052
ElideLabel: Improve tooltip handling
2023-03-13 00:54:25 +02:00
loathingKernel
4fd723df2e
RareCore: Show progress while preparing RareGames
2023-03-13 00:04:11 +02:00
loathingKernel
c10bd59384
RareCore: Move installation validation into the post init phase
...
Specifically move it just before loading each game's pixmap. We need
the information set by `__validate_installed` to know which pixmap to
load
2023-03-12 18:59:58 +02:00
loathingKernel
a6b10a6ec4
RareGame: Don't emit widget.update
in set_installed
...
`set_pixmap()` handles emitting `widget.update`
2023-03-12 18:57:30 +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
801294b1ea
RareCore: Resolve grant date from entitlements at post init
2023-03-12 14:43:54 +02:00
loathingKernel
8a15691672
CloudSaves: Set age labels to "None" if game doesn't support cloud saves
2023-03-12 14:15:43 +02:00
loathingKernel
404ce26ec9
ElideLabel: Don't override tooltip if one is set externally
2023-03-12 13:38:10 +02:00
loathingKernel
16400da020
Clean-up
2023-03-12 13:19:24 +02:00
loathingKernel
f46dc2209d
RareCore: Move save game fetching into __post_init
...
Saves is another thing we can fetch later and interact to them becoming
available.
2023-03-12 13:09:09 +02:00
loathingKernel
85998023f0
RareCore: Add asynchronous loading in RareCore for origin and entitlements
...
Speeds up startup by moving non-essential information loading into a
worker that executes some time after the launch dialog has finished.
2023-03-12 12:44:43 +02:00
loathingKernel
f0ba7a7e45
RareCore: Rename RareCore.__games
to RareCore.__library
...
Since RareGame can be both games and dlcs, use a generic name to avoid
confusion
2023-03-12 12:22:44 +02:00
loathingKernel
95c2b07d1e
ImageWidget: Don't try to paint the widget if painter is not active yet.
...
When the UI is being instantiated we might trigger some painting. This
squashes warnings in the output.
2023-03-12 12:19:46 +02:00
loathingKernel
4e1248a18a
RareCore: Move OriginWineWorker execution in load_pixamps()
...
We don't need to know if Origin is installed before launching the window,
so we can save on startup time by executing the worker after the window
has become visible.
2023-03-12 01:11:27 +02:00
Stelios Tsampas
b2f19852d0
CloudSaves: Allow path on Windows to not exist
...
Unlike Linux, we can be sure that the path is correct and it will be
created when the user downloads the saves.
2023-03-11 12:51:55 +02:00
loathingKernel
993b9fca17
CloudSaves: Better handling of changing between games and some UI cleanup
2023-03-11 02:05:41 +02:00