The bug that the geometry isn't returned in app pixels on wayland
without scale-monitor-framebuffer was fixed in GDK. Therefore also
require newer GTK version.
Added GSettings support to Loupe. Inspiration was taken from Fractal:
LpApplication will contain `gio::Settings` and all code needing them
will reach them as a singleton by calling `g_application_get_default`.
This design makes the settings dependency less explicit than dependency
injection, but allows for shorter code when new settings will be added
across different parts of the application.
A `show-properties` setting is added for remembaring the image property
sidebar state. It's read by LpWindow when the current page changes, and
saved when toggling the sidebar. When no image is being shown, the
sidebar is always hidden, while the setting remains unchanged. The
sidebar state will be restored when a picture is opened.
Closes#147
We don't install anything to $datadir/glib-2.0/schemas right now,
on NixOS which install packages in separate prefixes, try running
glib-compile-schemas will fail with the following:
```
Running custom install script '/nix/store/...-glib-2.77.1-dev/bin/glib-compile-schemas /nix/store/...-loupe-45.beta/share/glib-2.0/schemas'
--- stdout ---
--- stderr ---
Error opening directory “/nix/store/...-loupe-45.beta/share/glib-2.0/schemas”: No such file or directory
FAILED: install script '/nix/store/...-glib-2.77.1-dev/bin/glib-compile-schemas /nix/store/...-loupe-45.beta/share/glib-2.0/schemas' exit code 1, stopped
FAILED: meson-internal__install
/nix/store/...-meson-1.1.1/bin/meson install --no-rebuild
ninja: build stopped: subcommand failed.
error: builder for '/nix/store/...-loupe-45.beta.drv' failed with exit code 1;
```
Our help documents are unfinished, and we shouldn't ship
unfinished documentation in our initial release.
We can revert this commit when we're ready to write the
documents properly.
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/156>
This adds proper support for a lot of image formats including SVGs.
It will be the basis for many features to come. The technical core
is an asynchronous renderer that can arrange textures in smaller tiles
which might be generated on demand.
Closes#34, #40, #41, #49
Basis for fixing the following issues #7, #27, #36, #43, #68, #71
As we add more rust crates in performance-critical places,
we run into some performance issues with debug builds.
This makes it hard to get a good feel for the performance
of the application, as something may be slow simply because
it's not been optimized by the compiler.
This commit adds a ci profile to our meson options,
and adjusts our CI configuration to use it. Regular
builds should continue to use the development profile.
Also renames `default` to `release`
The initial commit of gnome-image-viewer.
Things are in an MVP state, with image viewing and
opening from the desktop functional. We also can
open images externally, print them, and set them as
backgrounds.