Commit graph

8489 commits

Author SHA1 Message Date
Daniel Johnson 7b90acbcf2 Correct comment whoopsie. 2023-03-19 14:39:14 -04:00
Daniel Johnson ca6fbba7cb Fix edge artifacts with media rendering
First, round the x, y co-ordinates to land of a pixel edge.

Second, when GDK scaling is used, go to higher quality image filtering.
It's slow enough to notice, but looks right.
2023-03-19 14:38:32 -04:00
Daniel Johnson c29963fa0b Use higher-resolution media on high-DPI screens.
GTK does not make this nice. We load a larger pixbuf, then scale it down
 at drawing time.
2023-03-19 11:19:20 -04:00
Daniel Johnson 603fcf51a7 Clear pixbuf cache when importing a custom media file
Also, make the pixbuf cache more global, so the list and grid views
share it.
2023-03-19 08:33:15 -04:00
Daniel Johnson 65b90df5d2 When importing custom images, copy them unchanged when possible
This avoids quality loss due to transcoding and scaling.

If transcoding is required, this will generate a larger result if the
user has a scaled UI.
2023-03-19 08:18:32 -04:00
Daniel Johnson b536c91d98 Refactor game list image scaling
This decomposes get_pixbuf so the scaling is separated into more
function.

It also removes some of the scaling steps- rather than scaling a file
into a sized pixbuf, this usually just scales when rendering.

This should save memory and image quality, and usually no actual scaling
 is required anyway - so it's cheaper not to try.

 The down-side is scaling on each render pass, rather than caching
 scaled pixbufs, may slow scrolling.
2023-03-19 06:38:58 -04:00
Daniel Johnson 1e42dd3c97 Improved High-DPI support for media
The cell renderer will load media at high resolution (based on the GDK
scale factor) and draw it scaled down.

This retains more detail if the image had the resolution, as icons may,
or if we're scaling down anyway, as small cover-art does.
2023-03-18 18:24:56 -04:00
Daniel Johnson d08f8180c8 ++Bragging! 2023-03-18 17:19:59 -04:00
Daniel Johnson 103b2d2f49 Re-implement SHOW_MEDIA 2023-03-18 17:17:02 -04:00
Daniel Johnson 930d59fa49 Remove unused get_pixbuf() method; we just want the path. 2023-03-18 17:13:02 -04:00
Daniel Johnson 1c6c6e005d Rename COL_ICON to COL_PIXBUF_PATH, and fix some lints 2023-03-18 17:07:52 -04:00
Daniel Johnson 39eb0d3049 Make the cell size properties GObject properties so they can be used as
cell attributes.
2023-03-18 16:55:38 -04:00
Daniel Johnson 77abb59115 Removing timing code 2023-03-18 16:49:36 -04:00
Daniel Johnson b4e6b730b7 Hook up the installed flag
So uninstalled games have greyed out images.
2023-03-18 11:45:23 -04:00
Daniel Johnson 8d77958aee Add a simple LRU cache for the pixbufs. 2023-03-18 11:45:23 -04:00
Daniel Johnson f1d1702599 Place pixbuf centered and at the bottom. 2023-03-18 11:45:23 -04:00
Daniel Johnson 255f343965 Add support for list view as well 2023-03-18 11:45:23 -04:00
Daniel Johnson 6de5cde181 Crude hacky effort to load only pixbufs we actually show
Just to see what the peformance looks like.
2023-03-18 11:45:23 -04:00
Daniel Johnson 30a86fa3f3 Give GameImportDialog a scrolled window
This way if you import many ROMs, the window need not be enormous.
2023-03-18 11:45:01 -04:00
Daniel Johnson 37c1a85ba3 Do not re-fetch the platform just because it is None.
It won't be any better the second time.
2023-03-18 07:06:03 -04:00
Daniel Johnson a477158324 Disable the view sorting menu items when in dynamic views
These views do not apply the sorting options, so it's better to disable
them.
2023-03-16 19:38:38 -04:00
Daniel Johnson b82eb24657 Revised game view sort code
The new code should sort all views consistently (except the dynamic
ones).

Thus, installed games always precede non-installed ones. Non-installed
games can now be sorted by name.

This applies a 'natural sort' to names, so that numbers sort numerically
 (so '20' > '3' inside a name).

 The cost of this appears insignificant - much more time is spent
 building the view.
2023-03-16 19:16:32 -04:00
Mathieu Comandon fe9fcc8679 Simplify get_pixbuf, remove code executing a query 2023-03-15 19:45:38 -07:00
Mathieu Comandon 0d21f46ec2 Move sidebar preselect to method 2023-03-15 19:11:01 -07:00
Mathieu Comandon b2e19c94df Remove terminal: true from execute documentation 2023-03-15 18:10:03 -07:00
Daniel Johnson 3c0ab08e2a Include the directory that contains wine to the PATH for the WINE bash terminal only.
That should not affect too much, but it should allow scripts run in the
bash terminal and see the correct WINE.

Resolves #4772
2023-03-15 19:11:13 -04:00
Mathieu Comandon b3a889ac69 Enable Flathub service 2023-03-11 03:01:27 -08:00
Mathieu Comandon d0232c20b7 Fix Flatpak config access 2023-03-11 02:59:56 -08:00
Amy Gauna 990e8c3b3b Move PPA_URI for release and staging builds into repository variables. 2023-03-07 18:08:39 -08:00
Daniel Johnson 0dbfd90b5e Some checks against trying to install a system version of WINE
These must be installed via the distro.
2023-02-26 15:54:14 -05:00
Daniel Johnson 5564cd803a Support use of 'system' WINE version in more places
This seems to allow the system WINE to be used for installations.
2023-02-26 15:48:45 -05:00
Daniel Johnson 9bfd13ca81 Remove redundant list conversion
And all together, these commits resolve #4452
2023-02-26 09:33:32 -05:00
Daniel Johnson c2dce2027c I shouldn't shadow a builtin! 2023-02-26 08:06:32 -05:00
Daniel Johnson d31a16e6ba Replace batches() with a local function
batches() was introduces in Python 3.12, but we support back to 3.7.
2023-02-26 08:05:45 -05:00
Daniel Johnson 3ee5a0e01c Batch requests for Amazon patches to 500 at a time 2023-02-26 07:58:30 -05:00
Daniel Johnson e74754e6ff Make WINE installers use the version of WINE configured in the runner configuraton.
The WINE code has its own notion of default runner version that is used
to run things, but the installer uses a default version of its own.

This fix changes WINE (and only WINE) to use its own default WINE
version for installations.

That's it. I've had issues trying to fix this more generally- to make
*all* the configuration settings apply to installations. Doing *just*
the WINE version should be safer. Fingers crossed!

Resolves #4370
Resolves #4555
2023-02-26 07:39:16 -05:00
Daniel Johnson ee494ed095 Change 'Battle.net not installed' to an exception.
This error needs to be shown to the user; it gets logged on the way
anyway.

Resolves #4761
2023-02-23 17:22:17 -05:00
Daniel Johnson 7348bacd4d
Merge pull request #4748 from canepan/patch-1
Fix installers.rst formatting issue
2023-02-20 10:24:14 -05:00
Daniel Johnson 27cb82afcc Set the working directory in output-script scripts.
To do this, I insert the working_dir into the gameplay_info; it should
be the same one it was using anyway.

Resolves #4759
2023-02-20 09:07:55 -05:00
Daniel Johnson bfaa120c60 Remove checks for 'prelaunch' method
The Runner.prelaunch() method is now on the base class; it is always
there. We can just call it.
2023-02-19 10:51:17 -05:00
Daniel Johnson 1c9a52aa1a Separate DLL overrides for managers from DLL enabling
This lets us use the DLL overrides to generate a bash script to run the
game.

This isn't perfect; you need to run the game once in Lutris to actually
copy the managed DLLs into place. But usually this should be more
correct.

Resolves #4027
2023-02-19 09:52:04 -05:00
Daniel Johnson fba712caab Supply missing units for CSS styles 2023-02-19 08:57:44 -05:00
Daniel Johnson b007201369 Also add 'Graphics' sections for Redream and Snes9x. 2023-02-18 07:12:06 -05:00
Daniel Johnson fe33bba7cb Add section to FS-UAE configuration 2023-02-18 07:07:41 -05:00
Daniel Johnson 948ac302f5 Use styles to suppress the section frame (but keep the contents) when it
contains just one
setting.

To make this work, the margins all need to be set via styles also.
2023-02-18 06:48:55 -05:00
Daniel Johnson c151e4b211 Merge a bunch of WINE settings section into "Graphics" 2023-02-16 18:49:00 -05:00
Mathieu Comandon 075a28f981 Add published to events 2023-02-14 13:34:19 -08:00
Mathieu Comandon adf854e24b Set release to jammy 2023-02-14 13:10:40 -08:00
Daniel Johnson ebddf4b36a More simplification
We don't need to keep the GameActions around permanently- we can create
them when needed.

This should make it harder for stale game data to persist.
2023-02-12 12:07:16 -05:00
Daniel Johnson 54ff036dea Simplify GameActions
It's never given just an ID, always a Game, so we can remove support
for that.
2023-02-12 11:22:55 -05:00