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.
- 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
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.
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.
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
Ugly, but since we're fixing up the versions for the installer, we should do so for the game as well.
It's that or just insist that the game scripts all should be fixed to specify architecture for their wine versions.
This will just leave the list alone if 'Installed games only' is off and the filter text is empty.
Also, it no longer strips the filter text over and over again, but just once at the start. It still has to strip each game name, but it's half the strippings now.
Also, fix some ruff issues.