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

1081 commits

Author SHA1 Message Date
loathingKernel 2923c09bad GamesTab: Also scroll to top when filter changes.
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel ab596139af RareCore: Add RareGames to a data structure in RareCore
This merges a few of the internal features of RareCore such us
RareGame filtering and thus game grouping based on attributes.

This is required to properly connect a single signal from RareCore to
the downloads tab for game installation. This also includes filtering
games based on updates and other attributes.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel b0c4fb4212 GameUtils: Adapt to use 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 4640f8af6f RareGame: Add metadata loading into RareGame itself and adapt tray icon to use the same file structure
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +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 83df445de9 GlobalSignals: Fix signal names in EGLSyncGroup and ImportGroup
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 857b3a3cc0 WineResolver: Pass LegendaryCore at instantiation
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel b73fc328d2 GameInfo: Use ui member instead of double inheritance for the UI module
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 ab858b87d3 InstallDialog: Fix title capitalization
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel b0242106e7 SideTabContainer: Don't override QWidget::scroll() method
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 6d41a1994f ExtraWidgets: Fix some typing and style issues
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 672a283472 GameInfoTabs: Emit back signal instead of accessing parent when Esc is pressed
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 6eb4e19807 GameInfo: Adapt tab to handle uninstalled games too
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 4796fb5efa GameSettings: Check if Igame has save_path attribute before using it
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel d7a5404517 VerifyWorker: Move to rare/shared/workers
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel c5e2893f64 UninstalledInfoTabs: Remove
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
loathingKernel 4239acea24 GameDlc: Replace double inheritance with UI member class
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
loathingKernel 652968b6bf RareGame: Introduce RareGame from refactor_backend branch
Shared: Move WineResolver to `rare/shared/workers`
PathSpec: Move to `rare/models`

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2023-02-04 17:38:06 +02:00
lanmaster53 db1691b694
Fixed a bug that caused a UI crash on Mac-based systems. (#267) 2023-02-04 15:23:07 +01:00
lennard 41be89cbb5
Update translations 2023-01-31 19:27:59 +01:00
lennard afea6a663a
Make error text in install dialog selectable 2023-01-27 15:51:00 +01:00
lennard f210d7df60
Bump version 2023-01-22 21:14:18 +01:00
lennard 7d0ac98a7c
Add a workaround for Fall Guys 2023-01-09 18:12:44 +01:00
lennard e46ae0f91e
Fix "Offline" text in account widget 2023-01-08 20:41:02 +01:00
lennard 16775fb661
Bump version 2022-12-08 21:33:31 +01:00
ondrej.ivanko de236ea397 fix ValueError: 'mutable default X for field indirect_status is not allowed: use default_factory' 2022-12-05 20:09:17 +01:00
lennard a90d6ba7c8
Fix too high download speed 2022-12-01 00:12:12 +01:00
lennard f31d9424bc
Bump version 2022-11-04 22:09:28 +01:00
loathingKernel cb49e8b678 Integrations: EOS -> Epic Overlay 2022-11-04 02:44:45 +02:00
loathingKernel b84d8a5c67 ImportSync: Rename to Integrations due to expanding their use. 2022-11-03 22:50:21 +02:00
loathingKernel 61749f9acd EOSWidget/UbiActivationHelper: Move them from Settings to ImportSync 2022-11-03 22:34:50 +02:00
loathingKernel 692ffa99bc CollapsibleWidget: Resize the widget when contents change
Currently this is achieved by toggling the checked state twice
in a programmatic way. This ensures correct animations until
a better solution is found.

In addition, now both CollapsibleFrame and CollapsibleGroupBox
inherit their common methods from the abstract class CollapsibleBase.
2022-11-03 21:23:48 +02:00
loathingKernel da79519e80 GameListHeadBar: Combine the "Import" and "EGL Sync" buttons into a menu
The "EOS and Ubisoft" tab is currently empy
2022-11-03 14:53:58 +02:00
loathingKernel 891804ae37 AccountWidget: Remove dead signals after the offline mode fix
Signals, if they carry the same datatype, can be chained simply
with `signal.connect(othersignal)` without the need to use a `lambda`
expression and `emit()`

TabWidget: Fix error because the `exit_app` signal was called directly
2022-10-31 17:00:01 +02:00
loathingKernel 435d560b5c InstallDialog: Update the collapsible widget to take a widget instead of a layout
This change makes it more inline with how QScrollArea operates on a central widget.
Other changes include using a QFrame instead of a QWidget as a base and
adding a QLabel for the title instead of the horizontal line.

The advanced options were split into their own separate widget. Right now
their class operates only as a container with the logic remaining in the
InstallDialog.
2022-10-31 16:59:55 +02:00
loathingKernel ae43fd7ea3 StyleSheets: Apply padding to QGroupBox 2022-10-29 14:50:18 +03:00
loathingKernel eae2bdaa8a StyleSheets: Add padding to checkable QGroupBox to align it 2022-10-29 14:50:18 +03:00
loathingKernel 5370355e5d Lgndr: Restructure module to follow legendary's file hierarchy
Move overloaded class files into the folders following
legendary's structure. Move Rare's integration classes into
their own subfolder.
2022-10-29 14:50:18 +03:00
loathingKernel e6ff2bb41e ImportGroup: Enable the button when "Import DLCs" changes 2022-10-29 14:50:18 +03:00
loathingKernel a5c8d92e24 Application: set HiDPi scaling attribute 2022-10-29 14:50:18 +03:00
loathingKernel 9fcb924ae8 Widgets: Correct CollapsibleWidget name 2022-10-29 14:50:18 +03:00
loathingKernel 47b474a31a StyleSheets: Remove last use of custom noBorder property
Instead, use `QFrame.NoFrame` as `FrameShape` to set `0px` border width.
2022-10-29 14:50:18 +03:00
lennard ca45c62414
Fix offline mode 2022-10-29 12:23:50 +02:00
lennard e208daf545
Fix wrong import from migration 2022-10-26 21:57:04 +02:00
lennard 923aa1b90d
Migrate to legendary 0.20.30 2022-10-26 21:36:16 +02:00
lennard 59f134f815
Bump version 2022-10-23 22:58:38 +02:00
lennard 97157646a1
Fix some translation strings 2022-10-23 22:52:49 +02:00
lennard 8e721cc324
Include Origin games in get_wine_prefixes() 2022-10-23 22:52:39 +02:00
loathingKernel 3291100709 InstallDialog: Set irrelevant widgets as disabled.
Do not hide irrelevant options, show them as disabled instea.
This like the install directory are still informational despite
not being editable.

Also homogenize variable and widget naming.
2022-10-23 21:36:44 +03:00
loathingKernel c1a008dce1 MainWindow: Don't connect to the global exit signal
Instead of connecting to the global `exit_app` signal, pass the signals
through their respective widgets. Because signals are queued by
default, this ensures that slots are executed in the order they are
connected. Makes it cleaner to do cleanup procedures where they should
make sense, unlike the global signal, where it has to be inferred by
the widget instantiating order.
2022-10-23 16:08:27 +03:00
loathingKernel 3c413c4e1f AccountWidget: Refuse to logout if there are active downloads
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-10-23 00:54:11 +03:00
loathingKernel 28b2b7ea9b MainWindow: Handle active downloads when exiting through WM's close button.
When the closed through the WM's close button, `closeEvent()` is
 used directly. In this case the dialog in the `on_exit_app`
slot was skipped.

There is a mishandled case. If coming from logout while there
is an active download (Yes to logout -> No to stop download)
we end up in a weird state which I haven't investigated yet.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-10-23 00:01:30 +03:00
loathingKernel ef65e8ce09 DownloadsTab: Show the update version of InstallDialog if it is an update
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-10-22 15:44:22 +03:00
loathingKernel e9fab53aff UninstallDialog: If the game has selectable downloads, default to keeping configuration
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-10-22 15:41:49 +03:00
Stelios Tsampas 53cab3ecb9 GameInfo: Add missing space 2022-10-19 17:53:37 +03:00
lennard b6786171ae
Fix game launch on windows 2022-10-18 23:02:38 +02:00
lennard 68868c6259
Set game to not running, if an error occurred 2022-10-18 21:26:48 +02:00
lennard 378d876c3b
Add Ukrainian language 2022-10-17 20:00:46 +02:00
lennard 4cadc263e6
Fix --skip-update-check option for launch helper 2022-10-01 00:45:22 +02:00
lennard a55ad96fbc
bump version 2022-09-27 22:22:07 +02:00
lennard ebd567e665
Disable pypresence settings if not installed 2022-09-27 21:55:57 +02:00
lennard fbd16b99ae
Update translations 2022-09-27 21:48:44 +02:00
lennard 780bd798a9
Rename rare code name to new name 2022-09-27 21:10:44 +02:00
lennard 24774b07c0
Fix move game on Windows 2022-09-27 21:09:41 +02:00
lennard 829da4f93b
Bump version 2022-09-19 23:10:03 +02:00
Dummerle 5d24c672b2 Catch Permission errors, when disabling and enabling EOS overlay 2022-09-19 01:00:17 +02:00
loathingKernel 83551f9b9e DownloadThread: Don't mark prerequisites as installed if the user selected not to install them
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-09-18 20:52:59 +03:00
Stelios Tsampas 0960cbbdd3 DownloadThread: args is a string! 2022-09-18 15:07:42 +03:00
Stelios Tsampas 14eda1c246 DownloadThread: Weirdly setNativeArguments doesn't exist despite the docs saying that is should be available on Windows 2022-09-18 12:52:15 +03:00
loathingKernel 2f5da4e628 GameLaunchHelper: actually exit when game has finished 2022-09-16 17:33:26 +03:00
loathingKernel 1137d75e79 Lgndr: Update to legendary 0.20.29 2022-09-16 15:26:31 +03:00
loathingKernel 7d2e1ddac2 Lgndr: Keep legendary's logger name 2022-09-13 12:38:43 +03:00
loathingKernel e621955a22 RareSettings: Handle permission error when deleting logs 2022-09-13 12:38:43 +03:00
Stelios Tsampas 9d28680804 Build: enable console output on windows if it is a test build 2022-09-13 12:38:43 +03:00
Dummerle e45f392652
Bump version 2022-09-12 17:23:09 +02:00
loathingKernel f7e9375964 LaunchDialog: Make the split 75/25 2022-09-11 19:45:17 +03:00
loathingKernel cf5fd415e5 LaunchDialog: Add a middle-ground solution for concurrent image downloads 2022-09-11 14:51:37 +03:00
loathingKernel 52108688d3 LaunchDialog: Use ElideLabel for progress information 2022-09-10 22:42:47 +03:00
Stelios Tsampas cbf4c38564 Redirect stdout and stderr to os.devnull if we are in a frozen GUI application form 2022-09-10 22:05:00 +03:00
Stelios Tsampas 7a1935335e GameInfo: Work-around slowdown on widget update_game() request 2022-09-10 19:04:40 +03:00
Stelios Tsampas 21ea2af8e1 App: Move timer initialization after LaunchDialog has finished 2022-09-10 18:07:32 +03:00
Stelios Tsampas 74a3d9458d LaunchDialog: Show validation progress separately from download progress. 2022-09-10 17:27:37 +03:00
Stelios Tsampas cc74767f0a App: Move verification requirement check into launch dialog 2022-09-10 15:33:48 +03:00
Stelios Tsampas c3e192cbbe Add requirements-full.txt with everything 2022-09-09 20:49:30 +03:00
loathingKernel b7b96f79b2 Apply fix for "403 Client Error" by applying pending https://github.com/derrod/legendary/pull/477 2022-09-08 20:43:03 +03:00
loathingKernel c8586d2beb Always return the absolute path to the exectuble 2022-09-08 20:25:55 +03:00
loathingKernel 70328d6472 Console: Minimize instead of keeping open if game is running
DesktopShortcuts: Normalize StartWMClasss with application name
2022-09-08 16:57:43 +03:00
Stelios Tsampas afcb3f7e7a GameLaunchHelper: Allow closing the window only if the application has exited or crashed 2022-09-08 16:02:17 +03:00
Stelios Tsampas 8d9f02eab5 Initialize logging in RareApp and log both Rare and GameLaunchHelper 2022-09-08 15:33:36 +03:00
Stelios Tsampas e4638c2fa3 Console: Center window on show() 2022-09-08 13:34:47 +03:00
Stelios Tsampas c6b9f5c64f Fix shortcut creation on windows 2022-09-08 13:16:15 +03:00
Stelios Tsampas 7ebeee0d1e App: Log both to file and to stderr 2022-09-08 02:13:10 +03:00
Stelios Tsampas d5d795ce79 Paths: Query paths after the OrganizationName and ApplicationName have been set
At the point they were evaluated, `OrganizationName` and `ApplicationName` are unset
resulting in wrong paths. As a quick fix, explicitly set them to their later values
Per OS examples:
Windows:
	before:
		data: C:\Users\<user>\AppData\Local
		cache: C:\Users\<user>\AppData\Local\cache
	after:
		data: C:\Users\<user>\AppData\Local\Rare\Rare
		cache: C:\Users\<user>\AppData\Local\Rare\Rare\cache
2022-09-08 01:27:37 +03:00
Stelios Tsampas 377fd486dc stupid quotes 2022-09-07 20:46:56 +03:00
Stelios Tsampas 6a2af0be7c Quote executable path for Windows 2022-09-07 19:19:14 +03:00
loathingKernel 5029921b09 Move a bunch of class attributes to instance attributes 2022-09-07 18:21:50 +03:00
Dummerle 26e8a235cc
Bump version 2022-09-05 22:55:50 +02:00
Dummerle 4f91c6b422
Move widgets and uninstalled_games attributes to __init__() 2022-09-05 22:46:44 +02:00
Dummerle 333bb40ad7
Fix wrong origin classification for ue plugins without assets 2022-09-05 20:50:10 +02:00
Dummerle 0d43f1103d
Include source directory, when running from source 2022-09-05 20:18:40 +02:00
Dummerle 4a28fd3d0d
Fix config_helper.py 2022-09-04 22:49:43 +02:00
loathingKernel aa9cf4c5b5 GameLaunchHelper: Remove LegendaryCoreSingleton usage 2022-09-04 21:40:41 +03:00
loathingKernel 1ebd0b18d8 Introduce a very basic RareCore to handle signletons and their cleanup. 2022-09-04 20:39:03 +03:00
loathingKernel 7020141148 LaunchDialog: Move update check before login() 2022-09-04 19:51:23 +03:00
loathingKernel afcdc1dea1 App: Move legendary initialization to the singleton
App: Move tray to MainWindow
Shared: Add destructor for singleton instances
2022-09-04 01:14:43 +03:00
loathingKernel 4951743bbf ConfigHelper: Protect name space from globals 2022-09-02 17:53:56 +03:00
loathingKernel 0a89f0e0b8 Make launch and alias for start 2022-09-02 13:17:05 +03:00
loathingKernel 48867a8656 DebugSettings: Add restart button, thanks Dummerle! 2022-09-02 00:31:10 +03:00
loathingKernel dfb388a9ba App: Do a bit more cleanup to avoid crashes 2022-09-02 00:20:04 +03:00
loathingKernel 3c5575fda9 LaunchDialog: Don't explicitly delete LoginDialog 2022-09-02 00:04:39 +03:00
loathingKernel 345ee443ed ImportLogin: Only add the first part of the split 2022-09-02 00:02:20 +03:00
loathingKernel b3348a1eca ImportLogin: Check if programdata is set 2022-09-01 23:48:30 +03:00
loathingKernel 0388d4bf9d ImportLogin: Fix failure to login using EGL data 2022-09-01 22:49:09 +03:00
loathingKernel fb708ce5fd LoginDialog: Update to legendary 0.20.28 2022-09-01 18:53:16 +03:00
loathingKernel 2c36ffcd51 Lgndr: Adjust for d8af06c936 2022-09-01 11:49:42 +03:00
loathingKernel 6941556265 InstallDialog: setup UI class as member instead of double inheritance 2022-08-31 17:42:40 +03:00
loathingKernel b1c713be12 InstallDialog: Show silent dialog in case of error
InstallDialog: Default shortcut creation to Unchecked in the UI file
InstallDialog: Save and reuse last shortcut creation value
2022-08-31 17:41:12 +03:00
Dummerle 98489297f1
Bump version and update some dependencies 2022-08-30 23:12:15 +02:00
Dummerle 4e325eb3d8
Ignore some pylint errors 2022-08-30 01:33:08 +02:00
loathingKernel a6d1cae8a8 Lgndr: Temporary fix for DLManager monkeypatching in Windows 2022-08-30 01:22:08 +02:00
Dummerle 002bf908e6
Update translation_source.ts 2022-08-28 22:07:39 +02:00
loathingKernel 2f983d9b52 InstallDialog: Adjust collapsible widget 2022-08-28 22:07:26 +02:00
Dummerle a71bb1fe91
Add missing dependencies to pyproject.toml 2022-08-27 13:43:55 +02:00
Dummerle cb3f316bf0
Fix proton visibility on Windows 2022-08-27 12:47:17 +02:00
Dummerle 70a51902d2
Move move game stuff to external file
I know it's weird
2022-08-27 12:32:20 +02:00
Dummerle 625066d2da
Fix two small errors in game launch helper 2022-08-27 12:32:20 +02:00
Dummerle 3469946ee9
Install prereqs by default on windows 2022-08-27 12:32:20 +02:00
Dummerle 2797485e69
Fix reason for cloud save edit, if nothing wrong 2022-08-27 12:32:20 +02:00
Dummerle da07d6b791
Move some options in install dialog to advanced options 2022-08-27 12:32:17 +02:00
loathingKernel 2b141c276f InstallDialog: Fix dlm keyword argument 2022-08-26 11:38:13 +03:00
loathingKernel b15a5b7007 Fix game launching if compiled with Nuitka 2022-08-18 02:24:51 +03:00
loathingKernel 50a37be433 DownloadsTab: Remove dead code 2022-08-17 23:46:10 +03:00
loathingKernel c40fef0595 Lgndr: Transfer what DownloadThread does to install_game_real (not used yet)
DownloadThread: Refactor names to match Lgndr
2022-08-12 13:17:53 +03:00
loathingKernel dffd768934 Re-add dlc arguments 2022-08-08 21:32:31 +03:00
loathingKernel 5e022e6d28 Lgndr: Rename a few fields to reflect legendary's names 2022-08-08 21:06:58 +03:00
loathingKernel e97e9fe841 Downloads: Add skip_dlcs and with_dlcs arguments. 2022-08-08 17:26:38 +03:00
loathingKernel 3ee789a695 Update DownloadThread 2022-08-03 02:33:50 +03:00
loathingKernel 38dfdc8bc2 Lgndr: Remove LegendaryCLISingleton
Since `LegendaryCLI` isn't stateful, we can instantiate
it when needed
2022-08-02 10:42:38 +03:00
loathingKernel 5ac71e99f0 DownloadThread: Use clean_post_install instead of local copy
InstallDialog: Handly empty `config_tags`
Lgndr: Cleanup
2022-08-02 10:42:38 +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 785aaf648e GameInfo: Detect repair_and_update requirement
If a game was partially installed and it was imported
through the import functionality, if `repair_and_update`
is specified it will report `0` download size if there
is no real update to be done. Fix it by detecting the
need for an update explicitly.

This will also force games that have failed verification
to also update while repairing them, fixing the
long-standing issue of repairing an older version of a
game and then doing the update in a separate step.
2022-08-02 10:42:38 +03:00
loathingKernel c388f99c46 Lgndr: Move generic function implementations to api_monkeys 2022-08-02 10:42:38 +03:00
loathingKernel 3501741c03 DownloadsTab: invalidate and recreate update widgets on import
Previously on game import, multiple update widgets for the same game
were created in the downloads tab. Instead of checking if a widget
already exists, invalidate the delete the existing and add a new one
with the current information about the installed game.
2022-08-02 10:42:38 +03:00
loathingKernel f375357a2c Utils: fix unresolved references 2022-08-02 10:42:38 +03:00
loathingKernel 7408116deb Lgndr: Don' use lambda with default argument 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 f51563ea93 Models: Move installation related models into their own file 2022-08-02 10:42:38 +03:00
loathingKernel 7fba2259ed LoginDialog: Fix crash due to messagebox parent 2022-08-02 10:42:38 +03:00
loathingKernel ee5adce18b Implement LgndrIndirectLogger to return the last logged message from LegendaryAPI
The indirect return is stored in a `LgndrIndirectStatus` object that provides checking and unpacking features

Lgndr: `LgndrInstallGameArgs.install_tag` default to None
Lgndr: add default `move` method.
Lgndr: monkeypatch `dlm.status_queue` after preparing a download to reduce `InstallQueueItemModel`
InstallOptionsModel: implement `as_install_kwargs` to pass only relevant arguments to `LgndrInstallGameArgs` in InstallDialog
InstallOptionsModel: rename `sdl_list` to `install_tag` as they were the same thing
LegendaryUtils: Update to use `LgndrIndirectStatus`
UninstallDialog: Add option to keep configuration decoupled from keeping game data
GameUtils: Add messagebox to show error messages from legendary after uninstalling a game
InstallDialog: Update to use `LgndrIndirectStatus`
InstallDialog: Update selectable download handling to match legendary's
DownloadThread: Remove multiple instance variables, instead reference them directly from `InstallQueueItemModel` instance
ImportGroup: Replace `info_label` with an `ElideLabel` for displaying long messages
ImportGroup: Don't translate message strings in the `ImportWorker`
GameInfo: Call `repair()` if needed after verification instead of handling it locally
GamesTab: Fix string matching for capitalized strings and scroll to top on when searching
2022-08-02 10:42:38 +03:00
loathingKernel 28531eec38 Lgndr: Add logger monkey class
The class acts as an intermediate between the logger and the function call
It keeps the last message that was sent to the logger. The instance of the
class can be returned as a return value from the LegendaryCLI methods to
provide return status and the message related to it.

The level at which it considers the logged message as an error is configurable.
By default it considers logging.ERROR and above as faulty return values
2022-08-02 10:42:38 +03:00
loathingKernel bbaff5f42c Lgndr: Add re-implemented uinstall_game
Lgndr: Change the exception level to CRITICAL for core
LegendaryUtils: Use uninstall_game from our Lgndr
UninstallDialog: Update to return a tuple of values
App: Keep files if the install directory was lost
App: Run legendary's exit procedures on exit
2022-08-02 10:42:38 +03:00
loathingKernel 8bbb42a045 Lgndr: cleanup 2022-08-02 10:42:38 +03:00
loathingKernel 654f734975 Lgndr: Update test get_boolean_choice to the arguments of its counterpart 2022-08-02 10:42:38 +03:00
loathingKernel 5c1ff81370 LegendarySettings: clean_manifests expects more values 2022-08-02 10:42:38 +03:00
loathingKernel 2bf41f20d1 Lgndr: Match the arguments of legendary's get_boolean_choice 2022-08-02 10:42:38 +03:00
loathingKernel 99cb7f46fd ImportGroup: Set the wordwrap option for the information label 2022-08-02 10:42:38 +03:00
loathingKernel d05f74b286 ImportGroup: Add option to import DLCs 2022-08-02 10:42:38 +03:00
loathingKernel 14087a3c6c Lgndr: Add default implementation for get_boolean_choice that returns False 2022-08-02 10:42:38 +03:00
loathingKernel 9df3355200 LegendaryUtils: Remove dead re-implemented functions 2022-08-02 10:42:38 +03:00
loathingKernel b4a1efa357 Lgndr: Add 'repair_and_update' argument in InstallOptionsModel 2022-08-02 10:42:38 +03:00
loathingKernel aeb149a3e9 Lgndr: Use custom wrapped decorator to wrap LegendaryCLI functions
Lgndr: Add `get_boolean_choice` to relevant args dataclasses
Lgndr: Move mock functions to `api_monkeys`

InstallDialog: Add status queue to prepare_overlay_install arguments, fixes missing download stats
2022-08-02 10:42:38 +03:00
loathingKernel 7aded95a1f Lgndr: Monkeypatch modified DLManager into LegendaryCore at module import 2022-08-02 10:42:38 +03:00
loathingKernel caffd9c51d Lgndr: Return result from resolve_aliases (woops) 2022-08-02 10:42:38 +03:00
loathingKernel 9acfd7a67f Lgndr: Follow comment pattern 2022-08-02 10:42:38 +03:00
loathingKernel 53fba8c705 Lgndr: Set 'estimate' to 0 before it can be calculated 2022-08-02 10:42:38 +03:00
loathingKernel 10b845c0aa Lgndr: Save the manifest if it was downloaded while verifying 2022-08-02 10:42:38 +03:00
loathingKernel 545d77ef07 Lgndr: Expose 'resolve_aliases' for outside usage 2022-08-02 10:42:38 +03:00
loathingKernel 3aae3887f6 Lgndr: Create argument models for consistent function arguments and cleaner implementation.
Lgndr: Prefix files that aren't part of legendary with 'api_'
Lgndr: Return statistics from 'verify_game' instead of parsing the exception
VerifyWorker: Add 'error' signal for exceptions.
2022-08-02 10:42:38 +03:00
loathingKernel 197f915fb3 InstallOptionsModel: Rename fields to use the same names as Legendary's arguments 2022-08-02 10:42:38 +03:00
loathingKernel 883bd268ff Mirror Legendary classes structure in the shim.
Lgndr: Move code segments copied from `prepare_download` back to their original location in `install_game`
Lgndr: Add the LgndrLogHandler at initialization instead of every function.
Lgndr: Move `verify_game` to its original place in `LegendaryCLI`
Lgndr: Change the way DLManager is patched into LegendaryCore proper
Shared: Add singleton for LegendaryCLI, LegendaryCoreSignleton returns core from LegendaryCLI
VerifyWorker: Update to use `verify_game` from `LegendaryCLI` directly
PreLaunchThread: Initialize LegendaryCLI to get LegendaryCore from it
InstallDialog: Update `prepare_install` argument names
2022-08-02 10:42:38 +03:00
loathingKernel 3892f4a594 ImportGroup: Update the shim stuff for the import worker 2022-08-02 10:42:38 +03:00
loathingKernel 51c45015a4 InstallDialog: Remove unused arguments 2022-08-02 10:42:38 +03:00
loathingKernel d4bf783018 Update core to the submodule rebase 2022-08-02 10:42:38 +03:00
loathingKernel fd2c094dc2 Add override for prepare_overlay_install() 2022-08-02 10:42:38 +03:00
loathingKernel 9af4e7ead8 Specify correct return type for prepare_download() and disable formatting for copied code segments 2022-08-02 10:42:38 +03:00
loathingKernel 2c2f44c97c Use a loggin handler in stead of monkeypatching for raising LgndrException 2022-08-02 10:42:38 +03:00
loathingKernel 78fb13830e Set logging level instead of disabling it in DLManager 2022-08-02 10:42:38 +03:00
loathingKernel 99ab488820 Pass the correct status queue and monkeypatch run_real in prepare_download 2022-08-02 10:42:38 +03:00
loathingKernel 9698bf445b Re-enable logging in DLManager correctly 2022-08-02 10:42:38 +03:00
loathingKernel 82015f21d4 Fix ordering in InstallDownloadModel to match prepare_download 2022-08-02 10:42:38 +03:00
loathingKernel ad81546b35 Adjust EGLSyncGroup to use LgndrException 2022-08-02 10:42:38 +03:00
loathingKernel c302775acd Remove dead code from EGLSyncGroup 2022-08-02 10:42:38 +03:00
loathingKernel d4718f823f Use custom exception to overload log.error and log.fatal in egl_import and egl_export 2022-08-02 10:42:38 +03:00
loathingKernel 3ec8973de8 Update shim UIUpdate and DLManager to the cleanup changes from the submodule 2022-08-02 10:42:38 +03:00
loathingKernel a9954a98f6 LegendaryCore: Re-use super's prepare_download() instead of copying it. 2022-08-02 10:42:38 +03:00
Stelios Tsampas 04a76ed2ff Include PoC implementation of LegendaryCLI for the import_game method 2022-08-02 10:42:38 +03:00
Stelios Tsampas e58d33ee5d Create shim legendary classes for overloaded functions 2022-08-02 10:42:37 +03:00
Stelios Tsampas f4743d99b6 Remove submodules 2022-08-02 10:42:37 +03:00
Dummerle e6fc2323f1
Do not exit console, when game exited 2022-08-01 01:22:37 +02:00
loathingKernel 4139797eff ImageManager: Also test if 'game.metadata' has 'keyImages' 2022-07-28 22:20:06 +03:00
loathingKernel e005423d0a GameUtils: Remove functions moved to LaunchHelper 2022-07-11 23:07:00 +03:00
loathingKernel ef88a913f9 LaunchHelper: Add terminate and kill button in the console (visible only in windows for now) 2022-07-11 22:18:26 +03:00
loathingKernel 43c8cf8b52 LaunchHelper: Move console into the game_launch_helper folder
LaunchHelper: Log stderr to the console
2022-07-11 22:18:26 +03:00
loathingKernel 406cfc136f ImportGroup: Close file after reading app_name 2022-07-11 22:18:26 +03:00
loathingKernel 06e5901aab ImportGroup: properly name the hlayout 2022-07-11 22:18:26 +03:00