1
0
Fork 0
mirror of synced 2024-06-29 11:40:37 +12:00
Commit graph

44 commits

Author SHA1 Message Date
loathingKernel 5e022e6d28 Lgndr: Rename a few fields to reflect legendary's names 2022-08-08 21:06:58 +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 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 9df3355200 LegendaryUtils: Remove dead re-implemented functions 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
Dummerle 2f43431589
Do not remove config, when deleting a game, but keep files 2022-07-01 17:42:41 +02:00
aznd 19ac7e6c50 Don't double delete the dir 2022-06-26 17:27:35 +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
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
Dummerle e916301999
Add config_helper.py to automatically check sections and options 2022-02-05 14:48:50 +01: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 45163eafb5
Fix startup_check and verification 2022-01-24 16:56:14 +01:00
Stelios Tsampas 8f89eb6e88
Rare: pass through Black formatter 2021-12-27 00:37:13 +01:00
Dummerle ea0c153a23
Show error message after error occurred in verification 2021-12-05 20:57:51 +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 0c5bd642e3
More fixes:
- remove widgets in dl tab after uninstalling
- fix verification error: worker was not started
2021-11-22 20:09:05 +01:00
Dummerle efa4722475
some translation fixes 2021-11-17 23:02:37 +01:00
Dummerle 3acc13e9b6
Many fixes 2021-11-17 23:02:36 +01:00
Dummerle 65f85f9b3d
Add game_utils.py to launch and uninstall games
-  All game launch and sync save mechanic is now in game_utils.
- some cleanup
2021-11-17 23:01:22 +01:00
Dummerle b0125ba020
Many optimizations, bug fixes and other small fixes 2021-11-13 00:34:35 +01:00
Dummerle 4eae77ffff
Add update manifest function and remove os.makedirs from proton_prefix_edit 2021-11-13 00:34:35 +01:00
Dummerle 8627484097
update_list() in games/__init__.py takes now a list of app_names, to update multiple games at same time
- verification signal is now connected
- signals are more consistent. Taking app_names instead of Game Models
2021-11-03 18:33:01 +01:00
Dummerle 4f25fd8a20 Update new Signal System 2021-10-14 23:05:00 +02:00
Dummerle 0324202d9f Update Legendary 2021-10-03 19:37:46 +02:00
Dummerle d11cc7abf3 add legendary submodule and rename custom_legendary to legendary in imports 2021-09-06 21:10:18 +02:00
Dummerle b799241357 Fix Space bug in Icon layout; Remove config sections on uninstall; Remove unused Widget 2021-08-30 15:14:40 +02:00
Dummerle d6b318d9ef Fix some errors 2021-08-17 15:09:46 +02:00
Dummerle a5997f62ab replace os.name with platform.system() to differentiate between mac and linux 2021-06-20 21:55:31 +02:00
Dummerle 3a39bac09c Reformatting and update german translation 2021-05-21 13:40:10 +02:00
Dummerle 5a6a8fc1e7 Remove Windows Desktop files on uninstall 2021-05-12 11:45:10 +02:00
Dummerle 14c1dbf19c Remove desktop link on uninstall 2021-05-01 11:17:18 +02:00
Dummerle ee467d9398 Add logging for Games, error handling 2021-04-22 14:11:12 +02:00
Dummerle 933c7c7c58 Fixed bug at launch game 2021-04-14 14:30:36 +02:00
Dummerle c8b434f1a2 Catch exceptions at launch of game 2021-04-12 20:34:55 +02:00
BuildTools 665083c5b5 lowercase snake case 2021-04-07 22:39:23 +02:00
Renamed from Rare/utils/LegendaryApi.py (Browse further)