1
0
Fork 0
mirror of synced 2024-06-28 03:00:49 +12:00
Commit graph

229 commits

Author SHA1 Message Date
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
loathingKernel 2f983d9b52 InstallDialog: Adjust collapsible widget 2022-08-28 22:07:26 +02:00
Dummerle 3469946ee9
Install prereqs by default on windows 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 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 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 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 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 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 51c45015a4 InstallDialog: Remove unused arguments 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 61a2a6781d Add window hint to keep minimize button while still disabling close button
Disable reject method for launch dialog
Don.t update the assets again for the 32bit and mac games by waiting for ImageWorker to finish
2022-06-24 11:29:41 +03:00
loathingKernel 367f6cf0eb Add window buttons to Launch and Login Dialogs 2022-06-23 20:39:43 +03:00
loathingKernel 7dbe414b87 Pass edited files through black 2022-06-23 18:05:04 +03:00
loathingKernel 145bc5f540 Use SlidingStackedWidget for the login dialog.
Also fixes the login window missing dialog type hints for the window manager.

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-06-23 17:57:29 +03:00
loathingKernel 5eb3ae7f80 Add SlidingStackedWidget from #196 2022-06-22 16:53:26 +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
Stelios Tsampas 06c89b459e InstallDialog: Remove QMessageBox, use existing dedicated label
InstallInfoWorker: Reset excepthook to default

Also pass through black formatter
2022-05-27 13:26:01 +03:00
loathingKernel 3bf7b20fbc InstallDialog: Add max shared memory override and download reordering options
Fixes: #206
2022-05-26 23:17:02 +03:00
loathingKernel 4ec42a1708 InstallDialog: Move worker signals inside worker class
Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-05-05 15:25:28 +03: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 150fff348b
Fix Desktop shortcut and login dialog task bar icon + bump version 2022-04-25 23:32:26 +02:00
Dummerle 8b723f7fcc
Update install prequisites, which raised an error 2022-04-13 01:08:27 +02:00
Dummerle d077e2bc24
Add pre_launch settings 2022-03-21 23:00:33 +01:00
Dummerle c26a30d9c9
Add load meta settings for 32 bit and macos 2022-03-21 23:00:32 +01:00
Stelios Tsampas d6ef44b2f9
Rare: Implement global objects as functions that return a single instance 2022-02-25 20:22:45 +02:00
Dummerle 2e6890bfd9
Move appdata paths to utils/paths.py to avoid crashes, if PyQt5 does not exist (deb workflow) 2022-02-17 00:04:53 +01:00
Dummerle 8f83b4adde
Add download option to create a shortcut after installation 2022-02-04 22:15:32 +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
aznd 7deb4152ac
Implement logging in via webengine (#160)
Add webview as optional dependency, to login from there, to not have to copy SID manually
2022-01-30 00:23:37 +01:00
Dummerle 2fda18ba12
Set download only option invisible, when installing overlay 2022-01-24 16:56:15 +01:00
Dummerle d830fa9b13
Fix empty directory check in install_dialog.py 2022-01-24 16:56:15 +01:00
Dummerle 0d11c8ecc4
Fix empty dir check in install_dialog.py 2022-01-24 16:56:14 +01:00
Dummerle 25c04d2812
Add Reasons to IndicatorLineEdit as tooltip 2022-01-24 16:56:14 +01:00
Dummerle a4ac523406
Get default base_path in install_dialog.py 2022-01-24 16:56:13 +01:00
Dummerle 0cea43f0d1
Add Epic Overlay Settings in Legendary Settings + Update Legendary submodule 2022-01-24 16:56:12 +01:00
Dummerle 662c8ed04c
Add link text to browser login 2022-01-23 01:03:56 +01:00
Dummerle 8ce359124e
Merge pull request #155 from Dummerle/Add_UE_support
Add Unreal Engine support, to install Unreal Engine for Windows
2022-01-09 21:00:59 +01:00
Dummerle e79b928fdb
Remove AssetWorker. They are fetched, with games and dlcs in ImageWorker 2022-01-08 23:01:51 +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 0698231ca0
Fix bug, if no mac games exist + small memory leak 2022-01-04 21:35:45 +01:00
Dummerle 78c0a74692
Fix some small issues
- shop: fix overlaying widgets
- launch_dialog.py dlg: error when catching exception
- fix exit in offline mode
2021-12-31 01:03:37 +01:00
Stelios Tsampas 8f89eb6e88
Rare: pass through Black formatter 2021-12-27 00:37:13 +01:00
Dummerle 8b0bddc174
Fix Bug, when fetching assets 2021-12-19 00:00:18 +01:00
Dummerle 620fbe8e97
Always download Windows assets 2021-12-18 23:24:20 +01:00
Dummerle 7d600f8d34
Do not create a worker for every request 2021-12-12 00:25:21 +01:00
Dummerle d93294536a
Add --test-start to use in appimage-builder 2021-12-11 00:18:57 +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 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 bd0802e4be
Get some requests from image worker, to avoid same request twice 2021-11-30 20:32:45 +01:00
Dummerle 9bfb9ede76
Update SaveGameFiles after uploading saves 2021-11-17 23:02:35 +01:00
Dummerle 8b8c3a1f64
Rebasing cloud_save_update with main 2021-11-17 22:59:28 +01:00
Stelios Tsampas 7156490952
Add initial implementation of WineResolver
Remove borders from EGLSync lists.
Color install/uninstall buttons correctly in DLC tab
Adjust InstallDialog because the check function runs early now.
2021-11-13 00:34:31 +01:00
Dummerle f87465ece4
Some cleanup 2021-10-20 19:19:03 +02:00
Dummerle d999598aff
Update Size policy of login dialog 2021-10-20 18:04:29 +02:00
Dummerle c3ee315e02 Do not reload install dialog when download only option changed 2021-10-14 23:57:57 +02:00
Dummerle a5f26c8a23 Rename shared.legendary_core to core 2021-10-14 23:18:13 +02:00
Dummerle c9b9ab6814 Fix some typing errors for python 3.8 2021-10-10 22:08:31 +02:00
Stelios Tsampas 463443796d Adjust BrowserLogin to use IndicatorLineEdit
Adjust Locale in `LegendarySettings` to use `IndicatorLineEdit`
Adjust `InstallDialog` to conform with new `PathEdit` `edit_func` specification

This commit temporarily removes `EGLSync` from `LegendarySettings`
as it is being worked on.
2021-10-10 20:47:26 +03:00
Dummerle 6ba445158d Remove login successful page and auto parse sid 2021-10-07 21:58:50 +02:00
Dummerle 3bf6692760 Add shared.py 2021-10-07 20:19:24 +02:00
Dummerle 87ab3ca4a6 Fix bug, if api request fails 2021-10-04 21:01:45 +02:00
Dummerle 9273c4c645 Login Dialog: Set Max thread count 2021-10-03 22:20:54 +02:00
Dummerle df7964a79f Move api requests to login dialog 2021-10-03 21:29:33 +02:00
Dummerle bb4f08691a Fix set locale to legendary locale + reformatting 2021-09-13 20:24:09 +02:00
Stelios Tsampas 228c3ab03e Move EGL Sync page into the main LegendarySettings page and make it useful. (WIP)
Move GameInfo to its own file.
Use get_pixmap in GameDlcWidget to get the pixmap.
Remove unused function from RareSettings.
Convert About to FormLayout.
2021-09-12 14:23:40 +03:00
Dummerle 9bec942358 Fix error on double download when update without settings 2021-09-10 23:30:59 +02:00
Dummerle d11cc7abf3 add legendary submodule and rename custom_legendary to legendary in imports 2021-09-06 21:10:18 +02:00
Dummerle c212904cc0
Merge branch 'shop' into update_shop 2021-08-22 22:43:08 +02:00
Dummerle 48768fd905 Fix login from merge 2021-08-16 23:20:21 +02:00
Dummerle 258fdabfec add get_pixmap function 2021-08-16 23:08:15 +02:00
Dummerle 4cfe2bf336 merge branches 2021-08-16 22:50:31 +02:00
Dummerle 96806274f9 Some fixes: Update gamelist; dl_tab.finished; AppImageBuilder.yml; install_dialog: auto verify 2021-08-16 20:41:33 +02:00
Dummerle 5dcaa3f8af Update steam ratings (Only update if need) 2021-08-13 21:24:03 +02:00
Dummerle 59a7359e19 Set cache_dir and data_dir in one place (xdg) 2021-08-08 00:49:27 +02:00
ChemicalXandco 7af64f1b83 add import platform 2021-07-01 19:08:04 +01:00
Stelios Tsampas 1365b36b08 Delegate opening browser to a function (futureproofing) 2021-06-24 20:08:22 +03:00
Stelios Tsampas c29cc06e70 Display Ready message when each thread has finished. 2021-06-24 20:08:22 +03:00
Stelios Tsampas dc2a99c2ee Terminate threads and handle cleanup.
* Set the `WA_DeleteOnClose` attribute for the MainWindow.
* Handle the case where `programdata_path` exists but is empty.
* Emit a signal from `LaunchDialog` instead of using `exit()`.
* Remove `LoginThread` as it was never deleted and caused a `SIGSEGV` on exit.
* Handle termination and deletion of `SteamThread` and `ImageThread`.
* Rename `finished` to `completed`, to not override the inherited `finished` signal.
* Emit a signal from Account widget to do cleanup instead of immediately quitting.
2021-06-24 20:08:22 +03:00
Stelios Tsampas 09d9e0f9a0 Raise ValueError when failing to login so it can be logged. 2021-06-24 20:08:22 +03:00
Stelios Tsampas be8ee8b955 Add check options message in InstallDialog. 2021-06-24 20:08:22 +03:00
Stelios Tsampas ff3aa1929c Handle install and uninstall colors in qss. Make tab_bar more consistent 2021-06-24 20:08:22 +03:00
Stelios Tsampas e8dadb6b00 Update the RareStyle to handle radiobutton, disabled widgets, etc.
* Add RareStyle qrc with the icons needed for comboboxes and spinboxes
* Add images as svg
* Refactor `styles` to `resources` since it contains more things now.
* Add stylesheet folders, each folder must contain a `stylesheet.qss` file.
* Don't use QResources, instead add an identifier in the qss url() which can
  replaced later with the full path.
* Update RareStyle with SVG images for better quality.
2021-06-24 20:08:04 +03:00
Stelios Tsampas f49cc413dd Add prefix path select dialog to LoginDialog.
* Make exception handling more general in InstallDialog.
* Fix the title of PathEdit file selection dialog.
2021-06-24 20:07:18 +03:00
Stelios Tsampas 90ac9a1574 Re-implement LoginDialog. 2021-06-24 20:07:18 +03:00
Dummerle a5997f62ab replace os.name with platform.system() to differentiate between mac and linux 2021-06-20 21:55:31 +02:00
Dummerle 2549d92fe3 Fix cloud saves bug and some protondb fixes 2021-06-15 18:26:58 +02:00
Dummerle e1bef2a47c Fix offline mode 2021-06-13 20:57:51 +02:00
Dummerle 0246b96c40 Fix offline mode 2021-06-12 00:29:55 +02:00
Dummerle 838783c1fb Show error message and warnings after core.prepare_download 2021-06-07 15:42:49 +02:00
Dummerle 21e3478c1b Delete dialogs on close 2021-06-03 23:33:36 +02:00
Stelios Tsampas 9a307856f6 Ensure the result signal has been connected 2021-05-26 15:40:23 +03:00
Stelios Tsampas 5b2cc055ff Close at the correct signals 2021-05-25 23:52:25 +03:00
Stelios Tsampas 0200347e72 Convert InstallDialog to modeless so it doesn't block the main UI any more. 2021-05-25 23:52:25 +03:00
Stelios Tsampas c1d5c98945 Disable cancel button when thread is running. 2021-05-25 23:52:25 +03:00
Stelios Tsampas e019c2ab7e Don't disable cancel button, wait for thread instead. 2021-05-25 23:52:25 +03:00
Stelios Tsampas fd84065fcb Add verify button to not block on every change.
Add some behavioral safeguards until thread can be stopped.
2021-05-25 23:52:25 +03:00
Stelios Tsampas 181636f2be Connect all widgets to the get_download_info function. 2021-05-25 23:52:25 +03:00
Stelios Tsampas b0ec5c5fcb Move all download preparations inside InstallDialog.
InstallDialog now returns a InstallQueueItemModel ready
to be downloaded or queued.

Renamed a few model attributes to match legendary's names.

InstallDialog can be run silently for auto-downloads.
2021-05-25 23:52:25 +03:00
Stelios Tsampas 376d3e0eba Don't use global threadpool as it gets deleted when exiting the dialog
Woops...
2021-05-25 23:52:25 +03:00
Stelios Tsampas 148cf0ff8e Add models for the download queue.
The addition of download_only option broke the download queue
due to different positional arguments and tuple indices. Since
using indices is awkward, models to represent the download
and each item in the queue itself were added.
2021-05-25 23:52:25 +03:00
Stelios Tsampas 494e078522 Fix remaining issues with the install dialog.
* Fix race condition between the sdl checkboxes.
* Fix default tag not been included in the list of tags.
* Delete InstallDialog on close.
* Specify parent for InstallDialog.
2021-05-25 23:52:25 +03:00
Stelios Tsampas 1131edda20 Add selective downloads 2021-05-25 23:52:25 +03:00
Stelios Tsampas 5ccf73d737 Update install dialog and remove the extraneous install info dialog 2021-05-25 23:52:25 +03:00
Dummerle 2e148aebff Add protondb grades and option to disable it 2021-05-21 13:09:26 +02:00
Dummerle d50ccc6e55 Add option for download only 2021-05-20 23:00:38 +02:00
Dummerle df726c0c57 Merge remote-tracking branch 'origin/dev' into dev
# Conflicts:
#	rare/components/tabs/games/game_info/__init__.py
2021-05-19 11:51:04 +02:00
Dummerle a129556441 Add basic structure for downloading grades 2021-05-19 11:06:00 +02:00
Stelios Tsampas 748d51f31f Improve PathEdit a bit more
Add placeholder text
Remove some unused variables
Open dialog starting from path if set
2021-05-18 01:57:20 +03:00
Dummerle 6deabf4a92 Reformatting, 1.3.0 2021-04-22 14:34:06 +02:00
Dummerle 497a6009d0 Add offline mode and --offline option 2021-04-19 15:44:28 +02:00
Dummerle c1251ac4c6 Install_dlc: Use base_game_path 2021-04-16 23:41:59 +02:00
Dummerle 709b4dcc8d Fix Launch Progressbar 2021-04-16 18:56:33 +02:00
Dummerle 93acab85c0 Add support for DLCs 2021-04-16 17:48:24 +02:00
Dummerle 14bd150e5f Install: Use default values from config 2021-04-15 16:09:17 +02:00
Dummerle 56550ba5a4 Hide launch_dialog.py on login; Better compare version numbers 2021-04-09 13:00:40 +02:00
BuildTools 665083c5b5 lowercase snake case 2021-04-07 22:39:23 +02:00