Commit graph

9665 commits

Author SHA1 Message Date
Mathieu Comandon 4566f02b25 Run initial sync when first enabled 2024-02-23 13:44:22 -08:00
Mathieu Comandon 84b6d9aefd Add login/logout button to account section 2024-02-23 13:44:22 -08:00
Daniel Johnson 330ef613bc Provide message for the hidden row when it is empty, but also disable 'Show Hidden Games' when there are no hidden games. 2024-02-23 13:44:21 -08:00
Daniel Johnson 20d354232e Hide the hidden row when it is not selected, that is, when you switch away from it. 2024-02-23 13:44:21 -08:00
Daniel Johnson 5aa976e3fa Avoid selected hidden rows when starting up.
This means you won't return to the hidden row *or* the running row; instead you will go to the 'Games' view on start-up.
2024-02-23 13:44:21 -08:00
Daniel Johnson b840c1389f Fix bugs in the filtering so hidden games are hidden, except in the hidden view, and update as soon as you hide them or unhide them. 2024-02-23 13:44:21 -08:00
Daniel Johnson fefbb38d12 Adjust hidden and favorites code for consistency, also add some commenting. 2024-02-23 13:44:21 -08:00
Daniel Johnson 87db808be2 Remove old 'hidden' column from schema, add migration to category
This only works because we don't remove the column from existing databases, but we won't create it in new ones.

There's a bit of error handling so we silently skip the migration if the column's not there.

Also fix broken migration code, so migrations are applied with no init dialog.
2024-02-23 13:44:21 -08:00
Daniel Johnson e0c77de925 Make the 'Hidden' sidebar row itself hidden initially; convert the Show Hidden Games from a toggle to a command.
It shows the hidden sidebar row and selects it.
2024-02-23 13:44:21 -08:00
Daniel Johnson 95e8c95cd9 Make a '.hidden' category and convert Lutris 'hidden' flag to work with it, like with favorites. 2024-02-23 13:44:21 -08:00
Daniel Johnson bcede06990 Fix rebase whoopsie! I did that that import. 2024-02-23 13:44:21 -08:00
Daniel Johnson 1b7cbd7043 Check for whether we got an image file extensions; if not we'll have to transcode and hope. 2024-02-23 13:44:21 -08:00
Daniel Johnson 274524a081 Correct rebase whoopsie! 2024-02-23 13:44:21 -08:00
Daniel Johnson e3b6c03031 Convert the pick-a-custom image to using the trash too, which involves a lot of callback spaghetti.
However, it also avoids a usage of GTK on a worker thread, which was a bug.
2024-02-23 13:44:21 -08:00
Daniel Johnson c8c6c0c756 Trash the media files on refresh, don't just delete them. 2024-02-23 13:44:21 -08:00
Daniel Johnson 76ecd7ba83 Handle possible-path resolution separately at each call site
This means we now delete all media when you click the refresh button.
2024-02-23 13:44:21 -08:00
Daniel Johnson efa543083b Do not try to use empty files as media. 2024-02-23 13:44:21 -08:00
Daniel Johnson d7bde7ce15 Pass multiple paths to the cell renderer.
This way it can update the display immediately without an updated GameStore.
2024-02-23 13:44:21 -08:00
Daniel Johnson 236f0c9999 Replace the single file pattern for service-media with a list
It's a list of one element except for Lutris banners and cover-art; these now support both .jpg and .png, where the user can assign either file type without transcoding.

This, in turn, allow transparency to be used in banners and cover-art via PNG files.

We still transcode any other file types into JPEG files here.
2024-02-23 13:44:21 -08:00
Mathieu Comandon 08466f2258 Send delete payload as an array 2024-02-23 13:44:21 -08:00
Daniel Johnson bd9c4327b6 Apply sorting to category-views also.
I think this code-path was relying on database sorting, which was a bug.
2024-02-23 13:44:21 -08:00
Daniel Johnson 921ec55c72 Remove the view-updated signal in favor of just calling update_store(). 2024-02-23 13:44:21 -08:00
Daniel Johnson 3722426941 Add the flag for multiple-runner-versions to Wine; this allows the right version to download during game installation.
Resolves #5302
2024-02-23 13:44:21 -08:00
Daniel Johnson 9d5ad0d674 Correct changed type information for UninstallGameDialog
The parent window was optional before, but now it is required, so it can be notified about game-removal.

Strictly speaking it needs to be a LutrisWindow, but I can't see how to statically test that with mypy.
2024-02-23 13:44:21 -08:00
Daniel Johnson 45fd28856b Fix my derpy type annotation errors. 2024-02-23 13:44:21 -08:00
Daniel Johnson fbbcf2dff7 Also require the delegate for Game.install(), and we are already providing it. 2024-02-23 13:44:21 -08:00
Daniel Johnson 342a1cb24f Switch the install_updates and install_dlc to use the InstallUIDelegate, and always provide it.
Also, increase pylint max-parents. This thing is not measuring the depth of the hierarchy- we're being penalized for multiple inheritance here.
2024-02-23 13:44:19 -08:00
Daniel Johnson 172e524ba7 Pass in the launch UI delegate explicitly for launch()
This would be better with asyncio; we could keep the InstallWindow or whatnot visible until the game starts.

As it is, we'll just use the LutrisWindow for this.
2024-02-23 13:43:46 -08:00
Daniel Johnson afacf82d07 Remove unused 'icons-changed' signal
Never fired, never connected.
2024-02-23 13:43:46 -08:00
Daniel Johnson c4125aad45 Remove the 'game-install-update' and 'game-install-dlc' signals in favor of direct method calls. 2024-02-23 13:43:46 -08:00
Daniel Johnson 45e7634e55 Replace 'game-install' signal with a straight method call.
Still using the default application object here.
2024-02-23 13:43:46 -08:00
Daniel Johnson 5081458f31 Remove 'game-stop' in favor of 'game-stopped' and the stop_game() method.
This means we have to filter the running-games list a bit more, since we don't guarantee a stopping game is removed from there before anything else.
2024-02-23 13:43:46 -08:00
Daniel Johnson 19ff134fb3 Replace the 'game-launch' signal with direct calls.
Mostly using the application to provide a default UI delegate.
2024-02-23 13:43:46 -08:00
Mathieu Comandon ee9738f320 Use DELETE method when deleting from remote 2024-02-23 13:43:46 -08:00
Mathieu Comandon 62afeeb2ad Get rid of game-removed signal, screw mypy 2024-02-23 13:43:45 -08:00
Mathieu Comandon ad82a5c778 Remove one more game-removed signal 2024-02-23 13:43:45 -08:00
Mathieu Comandon dee381c81e Big commit, continue implementing deletion from remote library, create path_cache module, start getting rid of game-removed signal 2024-02-23 13:43:45 -08:00
Mathieu Comandon d2dbf455e2 Remove special case for the Steam runner 2024-02-23 13:43:45 -08:00
Mathieu Comandon 02444ae019 Half assed python type hints won't let me do trivial stuff like renaming a property, what a bunch of useless crap. 2024-02-23 13:43:45 -08:00
Mathieu Comandon 7c53af2ff0 Half assed python type hints won't let me do trivial stuff like renaming a property, what a bunch of useless crap. 2024-02-23 13:43:45 -08:00
Mathieu Comandon 64d1f4436d Sneaky property EXPOSED\!\! 2024-02-23 13:43:45 -08:00
Mathieu Comandon b3871f93d5 Nested classes, not even once 2024-02-23 13:43:45 -08:00
Mathieu Comandon 71e654c7a6 Reformat 2024-02-23 13:43:45 -08:00
Mathieu Comandon 4c2ad3a1d8 Rename to remove_from_library_checkbox 2024-02-23 13:43:45 -08:00
Mathieu Comandon 7c61eb4184 Rename PGA_DB to DB_PATH 2024-02-23 13:43:45 -08:00
Mathieu Comandon c464ece487 Remove confusion about what the PGA is 2024-02-23 13:43:45 -08:00
Mathieu Comandon 3bfe0af614 Fix matching when incremental updates are used 2024-02-23 13:43:45 -08:00
Mathieu Comandon 32711d4dc9 Store timestamp of end of sync 2024-02-23 13:43:45 -08:00
Mathieu Comandon 8296f15cab Always add runner and platform labels in game bar 2024-02-23 13:43:45 -08:00
Mathieu Comandon a5e3ad5281 Improve year sorting 2024-02-23 13:43:45 -08:00