1
0
Fork 0
mirror of synced 2024-08-08 14:58:02 +12:00
Commit graph

59 commits

Author SHA1 Message Date
loathingKernel
3ecbae0564 Utils: Rename utils.py to misc.py to not confuse PyCharm checker 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
2bf41f20d1 Lgndr: Match the arguments of legendary's get_boolean_choice 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
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
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
2c2f44c97c Use a loggin handler in stead of monkeypatching for raising LgndrException 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
Stelios Tsampas
04a76ed2ff Include PoC implementation of LegendaryCLI for the import_game method 2022-08-02 10:42:38 +03:00
loathingKernel
406cfc136f ImportGroup: Close file after reading app_name 2022-07-11 22:18:26 +03:00
loathingKernel
0d6c9a8505 ImportGroup: Show messagebox when importing multiple games (scanning install folder)
I moved around a few things because the separate lists felt like they
would make the handling a bit complicated.
2022-07-02 22:19:40 +03:00
loathingKernel
76cd33054a EGLSyncListGroup: Move message box outside of thread to prevent "parent in other thread" crash 2022-07-02 11:48:33 +03:00
Dummerle
667ca0ecb6
Move import games to separate thread 2022-07-01 17:43:25 +02:00
Stelios Tsampas
1c296474c5 Add a bunch of accumulated fixes.
Shared: Require an argument to initialize the each singleton, if it is called uninitialized, raise a RuntimeError
InstallDialog: Use QCheckBox label for the information text and remove the layout
LaunchDialog: Minor code clarity improvements
Console: add a Dialog with the process's environment variables
GameUtils: Inherit the system's environment and not a clean one
ImportGroup: Add the ability to automatically import all games in a folder
RareStyle: Use rgb values, remove hex codes and rgba values
IndicatorLineEdit/PathEdit: Infer object names from class name, don't override layout method
Models: Type fields as Optional (`Union[<something>, None]`)
Paths: Use pathlib for everything

Signed-off-by: Stelios Tsampas <loathingkernel@gmail.com>
2022-05-05 13:27:39 +03:00
Dummerle
b996aac3f7
Fix Wine Resolver, mangohud, pre launch, 2022-03-21 23:01:55 +01:00
Dummerle
d077e2bc24
Add pre_launch settings 2022-03-21 23:00:33 +01:00
Stelios Tsampas
717945d729 SideTabWidget: Add container widget with a title and a scrollarea as the master widget for each tab 2022-03-18 18:03:14 +02:00
Dummerle
66ae7c614f
Show wrapper widget for proton and mangohud with disabled button 2022-03-14 17:23:55 +01: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
25c04d2812
Add Reasons to IndicatorLineEdit as tooltip 2022-01-24 16:56:14 +01:00
Dummerle
4820719bef
Fix #151 2021-12-27 00:37:13 +01:00
Stelios Tsampas
8f89eb6e88
Rare: pass through Black formatter 2021-12-27 00:37:13 +01:00
Dummerle
a9ce9df758
Fix Show an error message after import failed. Fix DLC error 2021-12-05 19:47:06 +01:00
Dummerle
026d5374a3
Add Multiplatform support for MacOS and Win32 2021-12-05 19:47:03 +01:00
Dummerle
1abcf16583
Add update in dl tab, when imported game, with available update 2021-11-30 23:15:00 +01:00
Dummerle
b60fb43568
Some fixes and optimization 2021-11-29 01:23:33 +01:00
Dummerle
db177e162f Some fixes for windows 2021-11-25 21:54:34 +01:00
Stelios Tsampas
bcae6cb7fd
EGLSync: Don't test input in egl_path_edit on Windows 2021-11-21 18:59:37 +02:00
Stelios Tsampas
e6b67f50f7
EGLSync: Skip egl_path_edit on Windows 2021-11-21 18:57:56 +02:00
Stelios Tsampas
a25149346c
EGLSync: Use direct reference to shared.core 2021-11-21 17:18:37 +02:00
Stelios Tsampas
3a464acba7
EGLSync: Refine error reporting from wine resolver. 2021-11-21 17:18:37 +02:00
Stelios Tsampas
81bc1007d2
EGLSync: Naming 2021-11-21 17:18:37 +02:00
Stelios Tsampas
8ec321b41f
EGLSync: Descriptive names 2021-11-21 17:18:36 +02:00
Dummerle
3acc13e9b6
Many fixes 2021-11-17 23:02:36 +01:00
Dummerle
f67b45fac3
Add german qt translations file + some fixes 2021-11-13 00:56:03 +01:00
Dummerle
b0125ba020
Many optimizations, bug fixes and other small fixes 2021-11-13 00:34:35 +01:00
Stelios Tsampas
af2cacca90
EGLSync: Handle return codes from import/export.
EGLSync: Re-enable list if it still have items after automatic sync.
2021-11-13 00:34:34 +01:00
Stelios Tsampas
1b1f5bcf84
Import: Formatting. 2021-11-13 00:34:34 +01:00
Stelios Tsampas
21eb49aee8
EGLSync: Disable the file watcher because it can fail if EGL is running at the same time 2021-11-13 00:34:34 +01:00
Stelios Tsampas
96144d9da5
Use the tree view for the AppNameCompleter
* IndicatorLineEdit: Add hint label
* EGLSync: Send a list of app_names to update the game list.
* EGLSync: Show message with WINEPREFIX is unset in settings.
* WineResolver: Return empty string when WINEPREFIX is unset.
2021-11-13 00:34:33 +01:00
Stelios Tsampas
5a0646cb87
Add Completer for app_name in ImportGroup. 2021-11-13 00:34:33 +01:00
Stelios Tsampas
4c3d9925e7
Do implicit sync with EGL when automatic sync is checked.
Update game list only on import.
Make WineResolver a QRunnable.
Add some prefix discovery to PathSpec.

Signed-off-by: Stelios Tsampas <loathingkernel@gmail.com>
2021-11-13 00:34:33 +01:00
Stelios Tsampas
7cbcfe09a3
Enable/Disable export/import buttons based on selection
Signed-off-by: Stelios Tsampas <loathingkernel@gmail.com>
2021-11-13 00:34:33 +01:00
Stelios Tsampas
f2401af6de
Remove mistargeted connection to update_gamelist 2021-11-13 00:34:33 +01:00