1
0
Fork 0
mirror of synced 2024-08-17 03:01:57 +12:00
Commit graph

254 commits

Author SHA1 Message Date
loathingKernel
6e7ea3181e
GameInfo: Add tags groupbox 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
b60062d455
Code: Use vars() instead of directly accessing __dict__ 2023-12-07 19:40:16 +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
e4782b70ae
GameInfo: Add button icons 2023-11-28 16:38:02 +02:00
loathingKernel
eb48a506d2
GameInfo: Add 'Modify Game' button to adjust selective downloads 2023-11-28 16:38:00 +02:00
loathingKernel
eaed611c5f
GameDlcWidget: Respond to update signal
Using the update signal we can enable and disable the install/uninstall
button by querying the state of the RareGame
2023-05-29 14:32:30 +03:00
loathingKernel
6b0bf9621d
GameDlcWidget: Fix crash when installing or uninstalling a DLC
When the user navigates to a different game info page, the dlc widgets
get deleted. Because the signal was connected to a lambda, the connection
wasn't severed upon deletion and once the DLC would finish downloading,
Rare would crash because the object with the piggyback signal was already
deleted. By using a dedicated slot to emit the signal we ensure that the
connction is severed at Qt object deletion
2023-05-29 03:04:43 +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
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
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
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
afea6c54f6
GameSettings: Ignore override checks if the game is not installed 2023-03-29 14:01:57 +03:00
lennard
554d3557d3
fix auto sync saves 2023-03-19 20:23:44 +01: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
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
loathingKernel
c6a9460044
GameInfo: Fix missin format() argument 2023-03-13 13:18:12 +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
8a15691672
CloudSaves: Set age labels to "None" if game doesn't support cloud saves 2023-03-12 14:15:43 +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
lennard
4ec1f39109
Update cloud widget, when state changed
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 21:22:38 +02:00
lennard
4b85ed8223
Cache all saves in a dict in api_results
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 19:15:32 +02:00
lennard
70960c73c4
Some ui improvements for cloud saves
- Show text on widget if save is not up-to-date
- Fix text in game info -> cloud saves

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 18:54:27 +02:00
lennard
189167f4f7
Add upload and download function to RareGame
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-08 18:34:26 +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
92346e11d0
OriginWineWorker: Execute during launch and properly resolve paths for Wine 2023-03-07 23:43:42 +02:00
lennard
d399382afd
Fix origin stuff on windows
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:23 +02:00
lennard
eec3dfeb1e
Fix some rebase errors
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:22 +02:00
lennard
1ac1fd89f8
Show install path for origin games in game info
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-03-07 17:11:22 +02:00
loathingKernel
e55c40448c
Misc: rename get_size to format_size 2023-03-06 00:39:23 +02:00
loathingKernel
46664f3577 Fix a few minor errors 2023-03-02 01:05:53 +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
Stelios Tsampas
e748468078
Update rare/components/tabs/games/game_info/move_game.py
Co-authored-by: multisn8 <contact@multisamplednight.com>
2023-02-20 11:31:03 +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
7e4ded70b5 MoveGamePopUp: Don't translate or do any text formatting in path_edit callback function 2023-02-17 13:29:59 +02:00
loathingKernel
a438eb764b MoveGamePopUp: Don't refresh indicator on widget.update 2023-02-16 10:46:47 +02:00
loathingKernel
0bd7af3d77 MoveGamePopUp: Use ElideLabel for the warning 2023-02-15 19:58:28 +02:00
loathingKernel
efcbea91cf MoveGamePopUp: Make the warning label always visible 2023-02-15 19:48:48 +02:00
loathingKernel
6c0663771c GameInfo: Make widgets react to changes from RareGame's widget.update signal
Note: the `__update_widget()` method, while it doesn't have any visible delay
has the potential for improvement. I didn't do it because it felt like
premature optimization.

MoveGamePopUp: update it to use RareGame and it's signals

RareGame: Add `install_path` attribute and change `needs_verification` setter
Now both setters will update the local `igame` attribute and save it too.

MoveWorker: Update it to use RareGame.
Other changes include moving "same-drive" moving into the worker and using
`os.path` methods instead of `PathLib`

SteamGrades: Remove worker, it is implemented in RareGame now.
2023-02-15 16:59:33 +02:00
loathingKernel
6b3a841378 Refine QueueWorker and implement worker_info for VerifyWorker and MoveWorker 2023-02-04 17:38:07 +02:00