1
0
Fork 0
mirror of synced 2024-10-02 02:07:16 +13:00
Commit graph

302 commits

Author SHA1 Message Date
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
Dummerle
4a28fd3d0d
Fix config_helper.py 2022-09-04 22:49:43 +02: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
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
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
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
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
b4a1efa357 Lgndr: Add 'repair_and_update' argument in InstallOptionsModel 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
82015f21d4 Fix ordering in InstallDownloadModel to match prepare_download 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
576b4571cf Fix get_rare_executable func for macOS 2022-06-27 16:53:19 +02:00
aznd
19ac7e6c50 Don't double delete the dir 2022-06-26 17:27:35 +02:00
loathingKernel
9e394f9981 GamesTab: Create methods for repeated widget removal and deletion code segments
HeadBar: Compact the headbar, re-use ButtonLineEdit from shop for the search function
SelectViewWidget: Remove content margins and make widget naming consistent

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-06-22 20:00:00 +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
7073a6ad7a
Merge pull request #212 from loathingKernel/theming
Split resources into base and themes to make diffs lighter
2022-06-19 00:49:14 +02:00
loathingKernel
99f3303db1 Resources: Split stylesheets from base resources
Stylesheets: Each stylesheet specifies its own resources file

Signed-off-by: loathingKernel <142770+loathingKernel@users.noreply.github.com>
2022-06-19 00:01:56 +03:00
Dummerle
37ae6e2b6e
Fix most errors 2022-06-18 13:25:39 +02:00
Dummerle
4d441c4068
Integrate helper with rare to launch games 2022-06-13 22:59:34 +02:00
Dummerle
54f82aa4b5
Basic working helper process 2022-06-13 22:59:34 +02:00
Dummerle
9bfa841ef5
Add game helper to launch games in a detached process 2022-06-13 22:59:34 +02:00
Dummerle
feb45afc47
Fix eos overlay bug not showing installed correct 2022-06-13 21:37:26 +02:00
loathingKernel
3bf7b20fbc InstallDialog: Add max shared memory override and download reordering options
Fixes: #206
2022-05-26 23:17:02 +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
afc919421c
Do not run test workflow on every commit + fix small desktop link on windows 2022-04-26 21:13:37 +02: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
48562f6527
Use pathlib for resources path, to fix FileNotFoundError 2022-04-10 14:24:41 +02:00
Dummerle
0bb74197ce
Remove version and codename from paths.py 2022-04-04 23:25:38 +02:00
Dummerle
5b8bb411ee
Don't create resources folder in paths.py 2022-04-04 23:21:23 +02:00
Dummerle
97214d5267
Optimize steam grades 2022-04-04 21:02:01 +02:00
MultisampledNight
e234656951
Use QStandardPaths everywhere needed 2022-03-31 21:58:18 +02:00
MultisampledNight
a73fb2e01b
Merge create_desktop_link and Rare's version 2022-03-31 21:58:18 +02:00
MultisampledNight
30361eb4bb
Use QStandardPaths instead of guessing ~/Desktop 2022-03-31 21:58:15 +02:00
Stelios Tsampas
303bd0fd20 A bunch of minor UI fixes 2022-03-29 00:36:42 +03:00
Dummerle
7f44ca7985
Fix proton settings and bug in pre-launch 2022-03-22 21:48:20 +01:00
Dummerle
b996aac3f7
Fix Wine Resolver, mangohud, pre launch, 2022-03-21 23:01:55 +01:00
Dummerle
3c148d8093
Add wrapper for PahEdit edit function to accept "~" as $HOME 2022-03-21 23:00:33 +01:00
Dummerle
d077e2bc24
Add pre_launch settings 2022-03-21 23:00:33 +01:00
Stelios Tsampas
c70e9e9b02 Avoid making window smaller than horizontal contents 2022-03-18 19:36:47 +02:00
Stelios Tsampas
cb852b6912 Align a bunch of stuff 2022-03-18 19:12:19 +02: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
Dummerle
36e84bce9f
Fix Discord RPC 2022-03-14 17:23:52 +01:00
Dummerle
f081f3943d
Fix bug with "%" in lineedits 2022-03-14 17:23:52 +01:00
Stelios Tsampas
d6ef44b2f9
Rare: Implement global objects as functions that return a single instance 2022-02-25 20:22:45 +02:00
Zhao Zuohong
5346372def add "Categories=Game;" in desktop entries 2022-02-17 19:32:03 +08: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
67b48d0725
Use QStandardPaths to get paths 2022-02-05 16:23:34 +01:00
Dummerle
baa5df380b
Images from store are saved for runtime 2022-02-05 16:03:21 +01:00
Dummerle
e916301999
Add config_helper.py to automatically check sections and options 2022-02-05 14:48:50 +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
KovvalskiX
a341bc7ac9 Got colors working 2022-02-01 05:43:43 +03:00
Dummerle
b13daed37a
Add some checks, if no wine prefixes exist and update prefixes, when changing in linux settings 2022-01-24 16:56:15 +01:00
Dummerle
45163eafb5
Fix startup_check and verification 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
a9eca719ba
Save version in title of Unreal Engine 2022-01-08 17:44:37 +01:00
Dummerle
92c6f77c37
Add support for unreal engine 2022-01-07 00:16:06 +01:00
Dummerle
6f99c22a72
Merge pull request #154 from Dummerle/game_meta
Save last played time and add quick launch for tray icon
2022-01-06 18:27:37 +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
eb8ce30169
Save last played and add quick launch for tray icon 2022-01-02 22:52:43 +01:00
Stelios Tsampas
8f89eb6e88
Rare: pass through Black formatter 2021-12-27 00:37:13 +01:00
Dummerle
90e27bc5f2
Update translation and fix bug if desktop directory not exists 2021-12-19 00:27:11 +01:00
Dummerle
bab0659e12
Remove languages from qresources 2021-12-10 20:05:51 +01:00
Dummerle
c425775f28
Update to new QResource system 2021-12-09 21:59:07 +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
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
31932aa8a0
Fix installing game widget, which displays progress wrong; update get_uninstalled_pixmap() 2021-12-01 20:14:41 +01:00
Dummerle
1abcf16583
Add update in dl tab, when imported game, with available update 2021-11-30 23:15:00 +01:00
Dummerle
bd0802e4be
Get some requests from image worker, to avoid same request twice 2021-11-30 20:32:45 +01:00
Dummerle
8d4f25b8c2
More Fixes and cleanup:
- downloads: fix delete_later() and set installed widget and dl progress on same value
- about: use qt requests, to avoid long startups
- fix offline mode bugs
- set TextLabels in Store invisible
- fix origin launch
- remove unused files
2021-11-28 00:50:02 +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
Stelios Tsampas
325e7df004
RareStyle: Add a background and a border to ease transition in the Main and Side tab bars. 2021-11-21 17:18:36 +02:00
Stelios Tsampas
26bbdf1c0e
RareSettings: Reload themes dynamically on selection
It is a unpolished but it serves well as a way to preview the theme.
Awesome font icons are not re-rendered in the correct colors.
Some styles might look a bit broken until restart.
2021-11-21 17:18:36 +02:00
Stelios Tsampas
c952c978af
WineResolver: Check if winepath exists along with wine because Proton doesn't ship it 2021-11-21 17:18:36 +02:00