Commit graph

10018 commits

Author SHA1 Message Date
Daniel Johnson 7b67e6231a Faster deduplication; use natural sorting for category names in the dialog, and also in the sidebar. Also, natural sorting for games in the category-games dialog.
Some more commenting too.
2024-04-04 15:44:04 -07:00
Daniel Johnson f70bf499b7 Comments, remove visibility of '.hidden' category in the dialog. 2024-04-04 15:44:04 -07:00
Daniel Johnson 3f324c5ce0 Restore the ability to have single-game category windows (so you can compare side by side).
If you multi-select, we will have a single common multi-category dialog. This can lead to overlap, where a game categories are in two windows. This doesn't seem to cause any real problems.

Also, move the game count into a subtitle so it fits better.
2024-04-04 15:44:04 -07:00
Daniel Johnson 7014502412 Add a warning if you are editing categories for multiple games.
This is in case you do not realize the dialog is for >1 game; it will warn even if only one is being changed. If you are viewing 1 game and change it, no warning since that is the expected case.
2024-04-04 15:44:04 -07:00
Daniel Johnson f861db3c0a Provide a callback to initialize the edit-games-dialog before it is shown, to avoid the checkbox checking animation.
Still can't be an __init__ argument with the games- we need to add games to an already open window.
2024-04-04 15:44:04 -07:00
Daniel Johnson b24b0b72fc Tidy up the edit game category implementation and fix some obsolete GTK things in it. 2024-04-04 15:44:04 -07:00
Daniel Johnson 946fe2b342 Revise the edit-game-categories dialog so games are incrementally added
This way if you try to use the Categories command while the window is open, it can just adopt additional games.

Though without a game list, it's hard to know what the dialog will actually do.
2024-04-04 15:44:04 -07:00
Daniel Johnson e5bff4e2af Support multiple games in the edit-game-categories dialog.
When a category is applied to some but not all selected games, an indeterminate checkbox shows. Click it and it becomes determinate (and checked).

On save, any remaining indeterminate categories are skipped, but we work out what categories are to be added or removed for each game in turn.

Resolves #5372
2024-04-04 15:44:04 -07:00
Daniel Johnson ad5c35a65e Change the terminology from "Log in" to "Login".
Not the way I would spell it, but I can't spell anyway.
2024-04-04 15:43:44 -07:00
Daniel Johnson 973ece5a33 Change from buttons to hyperlinks
This saves space and keeps the splash graphics better lined up.
2024-04-04 15:43:44 -07:00
Daniel Johnson 4c702c254a Add a "Turn on Library Sync" button to the notification bar.
We do not sync by default, but once you log in this will prompt you to do so. This will turn on the setting and start a full library sync
2024-04-04 15:43:44 -07:00
Daniel Johnson 3015ca60d4 Go back to using a link to Lutris.net, but use CSS to remove the link color (which rendered it unreadable) 2024-04-04 15:43:44 -07:00
Daniel Johnson e0c81d7024 Show the log-in notification only with the splash, not if you have games or if you have games, but they are filtered away. 2024-04-04 15:43:44 -07:00
Daniel Johnson 4975ce4030 Move away from using LutrisService
It looks like we're moving away from this in favor of some modules; I'll do what the AccountsBox is doing.
2024-04-04 15:43:44 -07:00
Daniel Johnson ee70fba51a Hide and show the notification bar when you log into or out of Lutris. 2024-04-04 15:43:44 -07:00
Daniel Johnson bed49c83e4 Hide and show the notification bar on service login/logout, and hook up the Login button 2024-04-04 15:43:44 -07:00
Daniel Johnson 507561d1d3 Create a notification bar to log in.
First cut, always visible, buttons don't work. But it's the spirit of the thing!
2024-04-04 15:43:44 -07:00
Daniel Johnson a4211eaf1c More subtle logic for the Wine update.
We'll load the latest Wine if you have the 'runners/wine' directory, but not if you do not.

The 'Update' button provided in preferences now pre-creates this directory if it is missing, enabling the update to proceed.
2024-04-04 18:36:26 -04:00
Daniel Johnson 526cebd1fb Runner updates should be less choosy - you can have a runner without yet having its directory (it can be coming from flatpak or be part of your distro)
So, we should be able to install versions of the runner without a pre-existing runner dir, or with one that is empty.
2024-04-04 18:02:02 -04:00
R1kaB3rN b8d651fedb Target Proton-GE (Latest)
Co-authored-by: Mathieu Comandon <strycore@gmail.com>
2024-04-04 12:06:32 -07:00
R1kaB3rN 065afac87f Kill wineserver via UMU Proton
- Kills the wineserver process associated with the running prefix via the `wineserver` command in the UMU-Proton directory instead of wineboot which had lead to unreliable results
2024-04-04 12:06:32 -07:00
ferrreo d51aa8ac8a Fix "table games has no column named hidden" error
When the hidden column was removed from the games table in schema.py the setting of the column value was never removed from installer.py

This meant on a fresh Lutris install user's cannot install games and are met with "table games has no column named hidden" errors.

This cleans up that incorrect setting of the column value.
2024-04-04 10:29:12 -07:00
Daniel Johnson 1117bf204a Add bragging to the changelog, but also some more 'critial bug' items. 2024-04-04 06:35:22 -04:00
Mathieu Comandon fa04547243 Initial changelog for 0.5.17 2024-04-03 14:23:31 -07:00
Mathieu Comandon 10c0354a90 Get rid of legacy.get_game_launcher, all installers on the website have been fixed 2024-04-03 13:46:40 -07:00
Mathieu Comandon cb17de4c8e Download media on manually added games 2024-04-03 04:20:16 -07:00
Mathieu Comandon 04c6d0da10 Don't raise error when Proton path not found, return nothing 2024-04-02 19:23:02 -07:00
Mathieu Comandon 8d5543d45c Fortnite mention can be removed since we no longer show the installers 2024-04-02 19:07:00 -07:00
Mathieu Comandon 5a3e2cd711 Updates for installer moderation 2024-04-02 19:05:35 -07:00
Mathieu Comandon bfe9b67747 Docstrings + handle category creation on updates 2024-04-02 18:32:18 -07:00
Mathieu Comandon eba3a88cc2 changed = True isn't needed here 2024-04-02 06:09:37 -07:00
Mathieu Comandon 3bc822a80b Updates for category sync 2024-04-02 06:06:15 -07:00
Mathieu Comandon acd7257a2b Category sync for newly created games 2024-04-02 05:39:04 -07:00
Mathieu Comandon 749c6ec06d Start refactoring LybrarySyncer (+ rebase with last commit) 2024-04-02 05:12:38 -07:00
Daniel Johnson a95ff285dc Make LibrarySyncer.is_sync a global variable again.
It really needs to be, or it's just useless - resulting in a UI error and potentially multiple threads syncing at once.

The problem is that _IS_LOCAL_LIBRARY_SYNCING is now a mutable global, and in Python this is treacherous. 'from x import G' copies G into scope, which is bad news for a global like this.

 'import x' followed by 'x.G' works, but this is real dark corner, so I've added a global function just to read the global variable; it reads the original, not a copy, even if you copy the function reference into scope with 'from x import f'.

 So this works without making LibrarySyncer a singleton.
2024-04-02 04:43:37 -04:00
Mathieu Comandon e2c68e1b41 Create LibrarySyncer class 2024-04-02 00:14:51 -07:00
Mathieu Comandon 7a10f9e2d2 Update version of ruff in Makefile 2024-04-01 23:52:18 -07:00
Mathieu Comandon eba175cbc5 Format code with newer Ruff version 2024-04-01 23:43:34 -07:00
Mathieu Comandon f7f5da433f Fix wrong name being applied in case of multiple GPUs from the same vendor 2024-04-01 20:32:18 -07:00
Daniel Johnson b09efe491b Make the file extension check for .AppImage case-insensitive.
The problem is that we often have .AppImage instead of the more Unixy .appimage, but the later occurs too.

So, We'll tolerate whatever CrAzY Casing you can come up with.

Resolves #5396
2024-04-01 16:53:58 -04:00
Mathieu Comandon 2abe2323f7 Return default ID if no game is provided 2024-03-28 23:14:52 -07:00
Mathieu Comandon 738bda4bb4 Allow picking WUA files for Cemu 2024-03-28 19:42:06 -07:00
Mathieu Comandon 8836eae836 Fix types 2024-03-28 14:37:45 -07:00
Mathieu Comandon 782e3330dd Add test for incorrect version 2024-03-28 14:28:57 -07:00
Mathieu Comandon 960c078e94 Add mock for runner version 2024-03-28 13:24:45 -07:00
Mathieu Comandon 916e8aa0db Start breaking up version code and add tests 2024-03-28 12:51:00 -07:00
Mathieu Comandon c490ae2a8d Move some runner tests in runners folder 2024-03-28 10:58:33 -07:00
Daniel Johnson 42b74a51c9 Provide explicit types for the execute methods. Also, make sure to return a tuple on every code path of _execute().
Resolves #5380
2024-03-27 16:56:25 -04:00
Daniel Johnson b2a819fb2b Add a gross hack to tolerate GE-Proton versions of Wine not having architectures on the end of them.
I feel dirty, but it's the best I can do.
2024-03-26 17:46:54 -04:00
Daniel Johnson ef5436edef Do not return the wrong version from get_default_runner_version_info() if a specific version is specified; this leads to crashes when we try to install a verison already installed. 2024-03-26 17:40:03 -04:00