1
0
Fork 0
mirror of synced 2024-07-02 21:20:54 +12:00
Commit graph

105 commits

Author SHA1 Message Date
Stelios Tsampas cda4668486
Update rare/components/tabs/games/game_widgets/game_widget.py
Co-authored-by: multisn8 <contact@multisamplednight.com>
2023-02-20 11:28:53 +02:00
loathingKernel 97def45a7e Cleanup: Remove some unused imports 2023-02-18 17:27:18 +02:00
loathingKernel 922b1472dd IconWidget: Fix typo in install_btn css selector 2023-02-17 10:49:34 +02:00
loathingKernel e34800cfd3 LibraryWidgets: Remove unused code and use multiline f-strings for css text 2023-02-15 20:40:20 +02:00
loathingKernel 71aa440e0b GameWidget: Use __slots__ to satisfy forward ui declaration
This way `ui` won't get any typing but this is internal and we can
take care of it until a better method is found to satisfy both.
2023-02-08 15:14:50 +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 34a13ea3b2 ApiResults: Mirror the way RareCore from refactor_backend handles non asset items
`LegendaryCore.get_non_asset_library_items()` returns the same tuple
for `game_list, dlc_dict` as for regular games with assets, so
keep the result for API completeness, since `RareGame` can handle those
games properly.
2023-02-07 13:04:33 +02:00
loathingKernel 15b80ce72f GamesTab: Move installed and uninstalled signal connection inside LibraryController 2023-02-05 19:14:51 +02:00
loathingKernel 1959516b3f GameWidget: Toggle buttons on widget update
ElidedLabel: Use `sizeHint()` for width

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:07 +02:00
loathingKernel 915c41309d GameWidgets: Remove GameUtils from GameWidgets
Also remove attributes tracking the state of each application, those
are handled by `RareGame`

Temporarily disable save syncing related code, pending the move to
the game launcher process
2023-02-04 17:38:07 +02:00
loathingKernel 4063195b4d DownloadsTab: Refactor downloads tab
When updates are queued, they are removed from the update's list. An exceptions is made
when the queued item comes from repairing (without updating), in which case the update is
disabled for the runtime.

A queued item can be either removed (if it is an update it will be added back to the
updates groups) or forced to be updated now. If a queued item is forced, the currently
running item will be added to the front of the queue. Downloads will be queued if
there is no active download but there is a queue already.

The download thread is now responsible for emitting the progress to `RareGame`

InstallDialog: Pass `RareGame` and `InstallOptionsModel` only as arguments.
The `update`, `repair` and `silent` arguments are already part of `InstallOptionsModel`
`RareGame` is used to query information about the game.

InstallInfoWorker: Pass only `InstallOptionsModel` as argument
Emit `InstallQueueItemModel` as result, to re-use the worker when queuing stopped games

RareGame: Query and store metadata property about entitlement grant date
RareGame: Add `RareEosOverlay` class that imitates `RareGame` to handle the overlay

LibraryWidgetController: Remove dead signal routing code, these signals are handled by `RareGame`
Directly parent library widgets instead of reparenting them

GameWidgets: Remove unused signals

EOSGroup: Set install location based on preferences and use EOSOverlayApp from legendary

GamesTab: Connect the `progress` signals of dlcs to the base game's signals
GamesTab: Remove dead code

GlobalSignals: Remove `ProgresSignals`

RareCore: Mangle internal signleton's names

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:07 +02:00
loathingKernel 0d4b75d399 GameProcess: Make it a persistent member of RareGame
The `GameProcess` class now acts as a persistent member of `RareGame`
that can be re-used for launching games. Its signals are handled and
repeated by `RareGame`.

Implements launching directly into `RareGame`

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 5d209e1805 GameWidgets: Split status label to two
The original status_label is used to reflect the state of the game,
the tooltip_label is used to reflect the action of the current hovered
widget.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 7b6a3e181a Shared: Move GameUtils and CloudSaveUtils into rare.shared
Removed `rare.utils.legendary_utils`, the `uninstall_game` function
was moved to `rare.shared.game_utils` for now

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 96b80bc423 Library: Introduce new tile design from refactor_backend
Currently broken but Rare starts

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel e059db1984 LibraryWidget: Remove class variables
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel a58e385f8b GameInfo: Add all currently available tabs to GameInfo
Prepares for removal of dedicated UninstalledGameInfo tab

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
Dummerle 333bb40ad7
Fix wrong origin classification for ue plugins without assets 2022-09-05 20:50:10 +02:00
loathingKernel 1ebd0b18d8 Introduce a very basic RareCore to handle signletons and their cleanup. 2022-09-04 20:39:03 +03:00
loathingKernel e5c7b029ff GameInfo: Offer to also update the game after a verification if there is one 2022-08-02 10:42:38 +03:00
loathingKernel 3ecbae0564 Utils: Rename utils.py to misc.py to not confuse PyCharm checker 2022-08-02 10:42:38 +03:00
loathingKernel 1ad5413e02 LibraryWidget: Always update the progress label to work-around layout issue 2022-06-26 14:31:12 +03:00
loathingKernel fe40dac368 Don't show the installing widget for Epic Overlay and DLCs
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-06-23 17:54:26 +03:00
loathingKernel 5eb3ae7f80 Add SlidingStackedWidget from #196 2022-06-22 16:53:26 +03:00
loathingKernel 08ab130c5c LibraryLayout from #196
Introduces the LibraryLayout from #196.
This layout distributes the available space in either horizontal side and in-between the widgets.

Known issues: When searching for a game, it will re-align visible widgets, effectively centering the results.
This is because the search and grouping functions are interleaved. #196 handles it differently by adjusting
the opacity and re-ordering of the irrelevant widgets.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-06-20 19:04:46 +03:00
loathingKernel 6335293eef Add ImageWidget and LibraryWidget from #196
Add the Image and Library widgets from #196. In this iteration they replace the image `QLabel` in the existing widgets.

The `PaintWidget` in the `InstallingWidget` has been replaced by the future `LibraryWidget` that has progress indication.

The `ImageWidget` was also used to replace the image `QLabel` in `GameInfo` and `GameDlc` widgets.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-06-19 20:42:49 +03:00
loathingKernel 3a28f2f0a2 Implement image manager
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-06-19 17:12:59 +03:00
Dummerle 1ae1f81915
Fix Error, that origin games are not shown 2022-04-26 21:03:43 +02:00
Dummerle d2436c0cda
Show waning text, if game has no metadata. Only launching offline 2022-04-25 23:32:32 +02:00
aznd 87c3534da4
Fix uninstall for third party launcher games (#200)
* Dont allow third party launcher games to be uninstalled

* Fix indentation
2022-04-23 17:03:03 +02:00
MultisampledNight e234656951
Use QStandardPaths everywhere needed 2022-03-31 21:58:18 +02:00
Stelios Tsampas d6ef44b2f9
Rare: Implement global objects as functions that return a single instance 2022-02-25 20:22:45 +02:00
aznd 9b59707a10
Unify strings formatting (#158)
* Part 1: Unifying strings

* Part 2: Unifying strings

* Part 3: Unifying strings

* Fix missing close bracket

* Remove unneeded str()
2022-02-01 22:29:34 +01:00
Dummerle de6c06906e
Some fixes for installing_game_widget.py 2022-01-23 01:45:16 +01:00
Dummerle 16f28656f9
Fix issue when closing cloud sync dialog on manually sync 2022-01-18 21:28:25 +01:00
Dummerle f32eb5cbc4
Add Unreal Engine Version to app_title and fix AttributeError, when installing UnrealEngine 2022-01-07 00:29:29 +01:00
Dummerle 0bc15be1f6
Fix Icon error for Ubuntu LTS, which uses QtAwesome 0.4.4 2022-01-05 15:44:29 +01:00
Dummerle bf1b8d6d27
Fix some bugs, if no widget available in gamelist 2021-12-27 16:19:57 +01:00
Stelios Tsampas 8f89eb6e88
Rare: pass through Black formatter 2021-12-27 00:37:13 +01:00
Dummerle b05c008ca5
Fix critical hover bug for origin games 2021-12-22 19:27:25 +01:00
Dummerle 0d5659a82f
Fix error in installed widget, if no igame exists 2021-12-22 18:00:31 +01:00
Dummerle fed1e53ab5
Fix error with update check if no igame exists 2021-12-19 20:32:26 +01:00
Dummerle 36568c6cc5
Add Codename to about page and fix error with assets in base_installed_widget.py 2021-12-12 01:41:38 +01:00
Dummerle e370841532
Fix many bugs:
- launch command
- offline mode
- shop search results shows more than 1 game
2021-12-09 20:03:34 +01:00
Dummerle 3116147d8f
Fix empty field in list widgets 2021-12-05 22:24:51 +01:00
Dummerle 206733b468
Some fixes:
- Fixes for macOS
- Use app_name to update games in GameInfo
- Check wine executable at game launch
2021-12-05 20:11:11 +01:00
Dummerle 026d5374a3
Add Multiplatform support for MacOS and Win32 2021-12-05 19:47:03 +01:00
Dummerle 31932aa8a0
Fix installing game widget, which displays progress wrong; update get_uninstalled_pixmap() 2021-12-01 20:14:41 +01:00
Dummerle 4c9ef8acd8
Many fixes:
- store: updated epic api + many other fixes
- installing widget has now no border
- disable startmenu and desktop link on unsupported os
2021-11-22 20:02:58 +01:00
Dummerle 3acc13e9b6
Many fixes 2021-11-17 23:02:36 +01:00