Commit graph

9484 commits

Author SHA1 Message Date
Daniel Johnson bf169bc0ef Do not move a game that can't be moved; abort before making any changes instead.
However, we handle the exception here and show a warning dialog about this. The user can choose to just set the location without moving or updating anything - they'll have to fix things up themselves.

Should help with #5223
2024-01-12 19:44:27 -05:00
Daniel Johnson 6f283f21a4 Filter out products that are not installable from the extras list for GOG.
DLCs you do not own are listed by the GOG api but are _not_ installable, and we will get 404s trying to download the extras for them.

So let's not offer them at all.
2024-01-12 17:05:01 -05:00
Daniel Johnson 30b62ab94a Move steam game playtime transfer code down to the steam service.
It makes GOG crash, and probably other services too!
2024-01-12 17:01:37 -05:00
Daniel Johnson 0cca6e1bd5 If the GOG API won't provide download links, we'll skip those files. 2024-01-11 20:00:20 -05:00
Mathieu Comandon 2052ad4d6c Remove messages about 'checking credentials' which are most unhelpful 2024-01-11 15:40:48 -08:00
Daniel Johnson a3e36e1650 Enable download of DLC extras from GOG.
This is a bit painful; to do this we extract the downlink information when we pull the extras, and put that in the extras dict.

Then, InstallerWindow keeps the dict rather than just the ID from it; it passes the entire thing back into the service so that the GOG service can obtain the download subdict and it goes from there.

There are minimal changes for itch.io, the only other service with extras. The new code here just strips the IDs out and proceeds as before.
2024-01-11 15:33:32 -08:00
Mathieu Comandon 37d81a1cd6 Add some entries to the Changelog 2024-01-11 03:05:56 -08:00
Daniel Johnson 460904bb44 Add a visible warning about using Virtual Desktops with Proton or GE versions of Wine.
It's better to let users know this feature isn't going to be used. I'd use 'condition' here, but it does not support dynamic updates baed on config settings like the version.

This isn't perfect - a system provided Wine might not be detected at this point. But I think it is likely to be sufficient; the actual check against the Wine exe path remains anyway.

The rather gruff 'not supported' warning remains in any case.
2024-01-11 04:47:23 -05:00
Daniel Johnson 2c4fd23ed7 Update get_formatted_playtime() to use the same localized strings as parse_playtime()
This way the parse/format roundtrip will not be broken by translators getting creative, or forgetting some of the strings.

This does mean we'll lose the translations for playtimes in the next release. I'd hand-fix this, but @strcore has told me not to do this.
2024-01-11 04:25:24 -05:00
Daniel Johnson 647a4b0494 Simplify find_hours logic. Normalizing does not achieve anything now. 2024-01-11 04:17:05 -05:00
Mathieu Comandon e4cc1d3eaf Disable Wine virtual desktop when used with Wine-GE or Proton 2024-01-10 19:04:49 -08:00
Mathieu Comandon 8c0951fbd3 Sync Steam games playtime to Lutris 2024-01-10 18:47:00 -08:00
Mathieu Comandon a663f8006e Accept more formats in the playtime edit widget, add tests 2024-01-10 18:26:41 -08:00
Daniel Johnson 659bc241da Fix incorrect or inconsistent slug generation.
Only scummvm uses "lutris_slug" but it is provided for Gog too - with stale data.
2024-01-10 19:39:43 -05:00
Daniel Johnson 0e96bed1f7 Also move the SIGTERM and winekill stuff onto a worker thread. 2024-01-09 17:35:16 -05:00
Daniel Johnson 183d80a2d3 Actually SIGKILL processes at the end of force-stop on the worker thread, not the main thread. 2024-01-09 17:26:17 -05:00
Daniel Johnson 9f2888172a
Update changelog
Oops! Media are not going to the trash. That's still in an outstanding PR.
2024-01-09 10:13:59 -05:00
Daniel Johnson 04be24351c Duplicate @strcore's prophylactic code for the special lutris.py game service game lookup code too. 2024-01-09 04:33:32 -05:00
Mathieu Comandon af8d00c029 Unmurder the caching feature 2024-01-08 22:40:16 -08:00
Mathieu Comandon 81b756e3d9 Remove deprecated scaler option in Dosbox 2024-01-08 22:09:49 -08:00
Mathieu Comandon 10c0aacfe2 Allow AntimicroX to work from Flatpak 2024-01-08 21:51:59 -08:00
Mathieu Comandon 3f45d1f524 Only get service game if the game's service match 2024-01-08 21:33:47 -08:00
Mathieu Comandon 67b8189a9f Do not launch the Steam client with mangohud 2024-01-08 20:50:52 -08:00
Mathieu Comandon 4932b5ca0a Disable autodetect button on Flatpak 2024-01-08 20:03:03 -08:00
Daniel Johnson ea7c87881f Don't grab the Vulkan API version pre-emptively; it's cached anyway. 2024-01-08 16:41:27 -05:00
Daniel Johnson f07883d0f2 Merge remote-tracking branch 'origin/master' 2024-01-08 04:37:22 -05:00
Daniel Johnson eb5120be23 Toot toot! Add more stuff to the change log.
Much of it is actually not my stuff but @strcore's.
2024-01-08 04:37:12 -05:00
Mathieu Comandon 238b20da83 Avoid crash if lsblk output can't be read 2024-01-08 01:19:50 -08:00
Mathieu Comandon 73863761e0 Replace Twitter link with Mastodon 2024-01-07 20:34:46 -08:00
Mathieu Comandon a892d08f63 Update CONTRIBUTING and INSTALL 2024-01-07 20:33:04 -08:00
Mathieu Comandon b3d52d35e5 Initial changelog for 0.5.15 2024-01-07 19:20:29 -08:00
Mathieu Comandon 00f72b0fb4 Emit a view-updated signal instead of reconstructing the store directly in redraw_view 2024-01-07 18:00:20 -08:00
Mathieu Comandon f055e65ce0 Check for service_id presence 2024-01-07 17:27:47 -08:00
Daniel Johnson a903b67180 Download missing Lutris media when installing games during service refresh.
This extends sync_media() so it can download for a specific set of games, so we can download only the installed games, not games you had already.

Resolves #4545
2024-01-07 14:40:32 -05:00
Daniel Johnson 8cabab49c7 Disable the 'Show Hidden Games' checkbox when in a service view - we do not implement it there. 2024-01-07 10:33:39 -05:00
Daniel Johnson 0b9dfecb0c Reduce the number of special case checks for the service id 'lutris'. 2024-01-07 10:26:59 -05:00
Daniel Johnson 5ebebf41a6 Fix crash when hiding a game from the Lutris view specifically. 2024-01-07 10:07:07 -05:00
Daniel Johnson 858786decd Whoops; the 'appid' equivalent for the lutris service is the slug, of course. 2024-01-07 09:34:04 -05:00
Daniel Johnson 553db0fb46 Modify the 'installed' property on StoreItem to use the cached installed game data to check for installation.
Saves a database query to do this.
2024-01-07 09:23:13 -05:00
Daniel Johnson 5c26ebb90e Do not fall back to the installed game if the actual game_data has the key, even if it has a blank value. 2024-01-07 09:10:20 -05:00
Daniel Johnson 43489fb071 When loading the game list into the view, use single SQL query to load the installed games.
We generally need them all, and pounding the database over and over for each game *even if it has no installed game counterpart* we cause nasty concurrency issues when reloading the service at the same time.

Instead, we load them and all preload the StoreItem - even if there's no installed game, if the StoreItem knows this, there's no need to fetch that data for that game.
2024-01-07 08:41:23 -05:00
Daniel Johnson acfc74117a Consolidate the end-of-cycle checks for the launch animation. 2024-01-06 13:49:36 -05:00
Daniel Johnson 8b0819fa41 Add some handling so that if we do not understand /proc/driver/nvidia/version we just fall back to glxinfo instead. 2024-01-06 07:29:22 -05:00
Daniel Johnson 6e130124ce Cache NVidia driver info- this should not change while Lutris is running. 2024-01-06 07:17:28 -05:00
Mathieu Comandon fc261bdb0e Add taskmgr in Wine actions 2024-01-05 18:21:19 -08:00
Mathieu Comandon 9b31c55453 Add appid to service game list 2024-01-05 17:08:07 -08:00
Daniel Johnson bd390f2dc5 Since the runner versions dialog OK button does not work while installing, let's disable it at that time. 2024-01-05 18:56:31 -05:00
Daniel Johnson fc10bc01ed We need to reliably fire the completion and error functions from remove_folder.
If the folder being removed is missing, we consider that success, so the next callback needs to run at once.
2024-01-05 17:15:47 -05:00
Daniel Johnson 4d87e85af4 Runniner install dialog needs to handle TrashPortal asynchonous completion.
It should report errors, and should update the UI and clear the wine version cache when the trashifiation is done.
2024-01-05 17:07:47 -05:00
Daniel Johnson 56ad4c4be9 Missed a spot!
Need to get the runner version dialog's title from the runner, not the row.
2024-01-05 17:03:28 -05:00