Commit graph

483 commits

Author SHA1 Message Date
Sophie Herold
127986a8ea window: Don't reset timeout on changing images
Issue #288
2023-12-19 15:25:15 +01:00
Sophie Herold
2648295a18 code: Reformat with group_imports=StdExternalCrate 2023-12-07 20:33:19 +01:00
Matteo Nardi
81c9030288 window: fix show-properties setting bug
Fix issue in previous commit when having multiple windows.
Steps to reproduce:
- enable properties in window A and window B doesn't have them enabled
- switch an image in window B
- the properties would be shown

Co-authored-by: Sophie Herold <sophie@hemio.de>
2023-12-07 15:25:26 +00:00
Matteo Nardi
5e32cfa1df window: remember image property visibility state
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
2023-12-07 15:25:26 +00:00
Sophie Herold
057ca6a3d0 image/rendering: Use scale instead of scale-factor
`GdkSurface:scale` supports fractional scaling available as
"scale-monitor-framebuffer" on Mutter. Use this value everywhere
instead of the integer scale-factor

Closing #182
2023-12-06 23:39:09 +01:00
Sophie Herold
9c8d3dc63f image/rendering: Do not config adj in snapshot
This caused warnings and scrollbars to disappear under certain
conditions.
2023-12-05 21:35:03 +01:00
Sophie Herold
d69d0d5e47 image/scrollable: Abstract adjustment access 2023-12-05 21:26:09 +01:00
Sophie Herold
3ab4d82d36 image: Reorganize into several sub-modules 2023-12-05 16:00:46 +01:00
Sophie Herold
cfed1d3d63 image: File doesn't have to be a property anymore 2023-12-04 18:42:21 +01:00
Sophie Herold
33bcd4a7ac imageView: Remove expression for fullscreen icon 2023-12-04 18:22:47 +01:00
Sophie Herold
fceec31971 print: Remove obsolete callback code 2023-12-04 18:08:44 +01:00
Sophie Herold
2fdfe5657c image: Refresh file info after file rename 2023-12-04 18:08:25 +01:00
Sophie Herold
c0f435386d metadata: Move file info and format to metadata 2023-12-04 18:08:25 +01:00
Sophie Herold
c36e7f4eb6 code: Replace many uses of GtkExpressions
Closes #276, #100
2023-12-04 18:08:20 +01:00
Sophie Herold
50450ad359 window: Simplify action state code 2023-11-30 22:32:29 +01:00
Sophie Herold
30742f4da4 window: Rename queue_hide to schedule_hide 2023-11-30 22:27:21 +01:00
Sophie Herold
a2e2cb2336 window: Use generated connection functions 2023-11-30 22:23:05 +01:00
Sophie Herold
6c58f4cabd window: Don't use expression for title 2023-11-30 22:20:57 +01:00
Sophie Herold
5b3ad7c257 code: Fix typos 2023-11-30 21:58:26 +01:00
Sophie Herold
307c864c6e window: Copy metadata instead of image if selected 2023-11-30 01:20:13 +01:00
Sophie Herold
b56d650086 code: Reformat with new rules 2023-11-29 21:16:11 +01:00
Sophie Herold
4b510412e1 window: Fix title not changed when no image shown
Closes #279
2023-11-29 20:15:42 +01:00
Sophie Herold
7d36c93029 slidingView: Use properties macro 2023-11-29 19:28:27 +01:00
Sophie Herold
4ca7c71538 imagePage: Use properties macro 2023-11-29 19:19:49 +01:00
Sophie Herold
390f16792a imageView: Use properties macro 2023-11-29 19:10:57 +01:00
Sophie Herold
55811a2bb7 image: Use macro for object properties 2023-11-29 18:52:31 +01:00
Sophie Herold
d04e5e255b window: Fix icon for property toggle button
Closes #274
2023-11-29 01:51:00 +01:00
Sophie Herold
f3ff2f5cba ui: Reformat .ui-files 2023-11-29 01:51:00 +01:00
Sophie Herold
5a905cd53f ui: Move .ui-files to src/
Closes #46
2023-11-29 01:50:54 +01:00
Julian Hofer
cd8188a1bb Simplify async code
- Update Cargo.lock
- Use new gtk-core API
- Remove unneeded async
- Remove unneeded clones

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/310>
2023-11-22 09:12:36 +01:00
Starccy
8d185e1e10 chore: display original error
Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/314>
2023-11-21 20:25:37 +00:00
Sophie Herold
4e28ea1cf6 fileDialog: Pre-select current image's folder
Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/287>
2023-11-21 20:00:46 +00:00
Sophie Herold
229c63719e meta: Prepare 45.2 2023-11-21 20:55:03 +01:00
Sophie Herold
a1edf6f882 image: Show image after error in file resolved
LpImage already reloads the image after an image is
invalid because of unsupported format or decoding error.
This patch makes that the "is-loaded" property is changed
to true again after the problem is resolved by a file change.

This should also hopefully works around problems with apps like GIMP
writing files in a way where an error appears itermittently.

Closes #256
2023-11-16 22:59:19 +00:00
Julian Hofer
831cf953c6 Preserve order when removing items from file model
The files are stored in an index map.
When removing from that map, `remove` does not guarantee to preserve order.
However `shift_remove` does.

Fixes #270
2023-11-15 15:25:07 +01:00
Sophie Herold
abdd54def7 decoder: Pass on transformations_applied info
This prevents HEIF images from getting transformations applied
again that already has been applied by the decoder.

Closes #251
2023-11-14 13:53:33 +01:00
Sophie Herold
15e2fb2257 print: Use same print operation throughout
Use a hack to wait in print signal for the layout dialog to be ready
instead of creating a new print operation with the same settings.

This works around a bug in GTK where the wrong printer gets selected
(issue #243), as well as the print dialog getting shown twice when
using the print portal (part of #61).

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/302>
2023-10-31 01:31:36 +00:00
Sophie Herold
8b2b12a206 image: Always request tiles in set_zoom_target
This makes zoom for SVGs work again. Not entirely clear
why this is needed but a safe fix for now.

Closes #240

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/301>
2023-10-31 01:01:27 +00:00
Sophie Herold
65e7789863 decoder: Fix animations with variable frame length
Before, the length of the first frame was used for all frames.

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/300>
2023-10-31 00:31:25 +00:00
Sophie Herold
896508deee window: Only accept drops of correct type
This got lost with having a custom "accept" signal handler since
the signal uses g_signal_accumulator_first_wins. Fixing this also
works around GTK not properly checking the drops and ending up
in criticals.

Fixes #234
2023-09-06 09:30:00 +00:00
Sophie Herold
4994ec9b59 imageView: Update SlidingView after removing image
When unsupported images formats were detected the image
was not removed from the SlidingView if already preloaded.
This caused weird hickups.

Fixes #233
2023-09-05 19:55:09 +00:00
Sophie Herold
cae9d54218 window: Show flat headerbar in empty state 2023-08-31 13:51:16 +00:00
Sophie Herold
f97b878b7a window: Allow to delete non-native image files
Only check if there is a path. With testing for native
the deletion in SMB etc is not possible that we support
properly.
2023-08-29 19:40:24 +00:00
Sophie Herold
8cb14169db slidingView: Allow WidgetExt::allocation for now
Has been deprecated but not sure what is the correct replacement
2023-08-16 12:21:59 +02:00
Sophie Herold
05868d785f window: Always ask for program to open images
This fixes "Open With…" not always asking for a program.
2023-08-16 12:03:46 +02:00
Sophie Herold
65a5f39861 image: Force minimum tile size of 1000x1000
Everything else does not make sense loading performance
wise.

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/276>
2023-08-16 08:44:41 +00:00
Sophie Herold
07513f5940 image: Don't render first tiles with zoom=1
Closes #145

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/276>
2023-08-16 08:44:41 +00:00
Sophie Herold
270853ea57 image: Reload image on FileMonitor Renamed events
The Rename event is also fired if the file got replaced
via a file move.

Closes #227

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/271>
2023-08-08 16:27:03 +00:00
Sophie Herold
a027513447 decoder: Use glycin for decoding SVGs as well
Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/267>
2023-08-06 11:59:33 +00:00
Sophie Herold
1a7a34c3b6 Revert "print: Add libadwaita-rs features missing upstream"
This reverts commit ae23db6967.
2023-08-06 11:27:35 +02:00