To replace ExpressionListModel where possible. It should be more
performant because it only triggers an `items-changed` signal if the
item filtering changed.
This was added in GTK 4.20 but we need at least 4.20.2 which includes a
bug fix.
`VectorRenderer::set_sprite_sheet_data` was deprecated in libshumate 1.1.
Instead we use `VectorSpriteSheet::add_page`, which allows to use
`GdkTexture` directly, and to add higher resolution sprites.
To the pre-commit checks, we add the checks about translatable strings,
as well as the check about sorting in blp-resources.in.
We also run `blueprint-compiler format` in CI to make sure that we have
consistent formatting.
Blueprint files to compile must be added to src/blp-resources.in.
To avoid having to maintain both a list of Blueprint files and the
corresponding list of UI files in the gresource.xml file, we populate
the resource file with meson.
That way we can benefit from improvements upstream.
This also simplifies the camera API in the process by using a trait
instead of a subclassable GObject.
Always use WebP to generate thumbnails, as it is known to be widely
supported and have a good compression ratio.
Only generate thumbnails when the bandwith savings make sense.
Instead we will use the flatpak-cargo-generator script from
flatpak-builder-tools for Flathub builds.
This is not a problem for reproducible builds since everything has a
hash (commit or Cargo.lock).