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
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
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
b56d650086
code: Reformat with new rules
2023-11-29 21:16:11 +01:00
Sophie Herold
55811a2bb7
image: Use macro for object properties
2023-11-29 18:52:31 +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
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
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
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
0cff205c9d
general: Update to gtk-rs 0.7
2023-08-06 11:24:01 +02:00
Sophie Herold
c4d8145dd3
image: Deny drag gesture for touchscreens
...
ScrolledWindow can handle the panning in images
better than we can.
This fixes an issue where zoomed in images can't
be zoomed or rotated on touchscreens.
Issue #176
Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/264 >
2023-07-31 21:08:58 +02:00
Sophie Herold
55551ae6a2
general: Update copyright notices
...
Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/258 >
2023-07-18 17:48:43 +00:00
Sophie Herold
06d688e79e
src: Format let-else statements
2023-07-07 19:22:51 +00:00
Christopher Davis
439286be40
general: Use std's OnceCell where possible
...
Rust's standard library now provides a drop-in replacement
for `OnceCell`. It requires no API changes from `once_cell`'s
version.
This commit replaces the version from `once_cell` with the
new `std` struct where possible. We still need to use
`once_cell` for properties until
https://github.com/gtk-rs/gtk-rs-core/pull/1113
is merged. We also still need it for Lazy until that lands.
Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/241 >
2023-06-23 18:59:09 +00:00
Sophie Herold
cc1c8a3da5
image: Use contains in modifier type flag checks
...
This, for example, allows to also pan the image
with Ctrl+Shift+Scroll like in EOG.
Closes #175
Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/237 >
2023-06-20 20:42:14 +00:00
Sophie Herold
0c2bdbd736
image: Do not guess bg color for opaque images
...
In theory this feature made sense to see a black square
but in practice it seems mostly confusing.
Closes #186
Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/235 >
2023-06-20 20:02:18 +00:00
Sophie Herold
c1422cf728
image: Notify when setting file property
...
This fixes new file names not being shown in HeaderBar
after renames.
2023-06-20 16:54:38 +02:00
Sophie Herold
2faef84321
image: Also set zoom target when not animating
...
This currently only seems to affect HighRes scrolling
where SVGs are not rendered for the zoom level.
Closes #185
2023-06-20 13:23:21 +00:00
Sophie Herold
1b2dde79b6
decoder: Use glycin for image loading expect SVG
...
This gives us sandboxed image decoding and others the
option to extend Loupe with other image formats.
2023-06-07 20:21:28 +00:00
Sophie Herold
24bbd7eae2
window: Show controls on mouse click
2023-05-03 22:22:03 +02:00
Sophie Herold
fab6558285
image: Cancel scroll deceleration on gesture
...
Seems like the deceleration from kinetic scrolling can
interact with gestures, making the image jump around.
Closes #103
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/211 >
2023-05-03 19:50:47 +00:00
Sophie Herold
6db58463bf
imageView: Skip unsupported formats when sliding
...
If an image with unsupported format is opened directly,
the error is shown.
Closes #92
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/212 >
2023-05-03 18:58:02 +00:00
Sophie Herold
dab333e510
image: Include alpha<1 in bg color detection
...
Only ignore alpha=0 pixels instead of alpha<1 pixels.
Also apply agorithm to non transparent images.
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/191 >
2023-04-20 18:36:40 +00:00
Sophie Herold
2f9fad47a1
src: Update or add auto generated license headers
...
Closes #55
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/169 >
2023-04-19 20:02:01 +02:00
Sophie Herold
83b95a58bd
image: Also allow drag with middle button
...
Closes #138
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/180 >
2023-04-19 00:51:00 +00:00
Sophie Herold
e5d5841e5d
tiling: Store tiling for each layer and fix bugs
...
Tilings now have a flexible origin and are stored with the
tile layer. This allows to make the first tile centered
in the viewport, allowing for faster getting a complete
viewport.
This also fixes some rendering bugs caused by forgetting
tiles the were still needed. But not all of them.
Fixes #83 , #94
Issue #82
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/179 >
2023-04-19 02:16:37 +02:00
Sophie Herold
587599f50b
print: Render SVG for correct size
...
Closes #140
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/165 >
2023-04-18 23:52:53 +00:00
Sophie Herold
ae5ca76176
printing: Add printing support
...
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/165 >
2023-04-18 23:52:53 +00:00
Sophie Herold
e96b9ccac9
image: More fine-grained zoom instructions
...
Add parameters to use zoom_to without animation or
snapping to best fit. Hopefully fixing 100%/200% snapping
to best fit when close to filling the window and
fixing high res scroll wheel bugs.
Closes #120 , #134
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/177 >
2023-04-18 23:23:18 +00:00
Sophie Herold
44e265374b
image: Fix thumbnail for auto rotated images
...
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/175 >
2023-04-18 22:35:19 +00:00
Sophie Herold
3684a9c02e
image: Use lighter background for light theme
...
Closes #124
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/171 >
2023-04-18 21:49:43 +00:00
Sophie Herold
8669b870af
image: Fix textures and bg color not reloading
...
The reload procedure for changed image files is triggered
but the old data has to be deleted to be re-generated.
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/176 >
2023-04-18 21:03:02 +00:00
Sophie Herold
5a93ec71da
image: Do not require monitor information
...
Before, monitor information not being available lead to panic.
Closes #77
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/167 >
2023-04-18 17:08:35 +00:00
Sophie Herold
fad8bb7939
decoder: Use GFile instead of PathBuf
...
This allows to show images from locations that don't
have a representation with path.
This also works around not being able to read files in trash:///
Closes #56
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/174 >
2023-04-18 16:22:49 +00:00
Sophie Herold
032707a210
fileModel: Use GFile with URI as key
...
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/174 >
2023-04-18 16:22:49 +00:00
Sophie Herold
f8cc9f5f84
i18n: Use gettext function instead of wrapper
...
No need to deviate from the default here.
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/170 >
2023-04-12 12:58:40 +00:00
Sophie Herold
8b3cfd000a
cargo: Remove gtk-macros dependency
...
Using the crate is depreacted. Replaced spawn! macro
with our own spawn function
2023-04-06 21:08:33 +00:00
Sophie Herold
1b18486826
image: Move background color guess to other thread
...
Also, skip it completely for JPEG and BMP
Issue #111
2023-04-04 22:13:36 +00:00
Sophie Herold
5d7cbe026f
image: Remove debug prints from bg color guesser
...
Closes #111
2023-04-03 16:56:54 +02:00
Sophie Herold
7bf9baa581
image: Ensure contrast for transparent images
...
Determine if the image is transparent and has low
contrast with default background color. If so,
use a different background color.
Closes #31
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/151 >
2023-04-02 23:08:51 +00:00
Sophie Herold
533158bb69
image: Request tiles on size_allocate
...
Fixes tiles for SVG might be missing when enlarging window.
Closes #104
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/155 >
2023-04-02 21:36:24 +00:00
Sophie Herold
750fbfd305
image: Settle with either rotate or zoom gesture
...
Add thresholds after which the gesture is assumed to be
only zoom or rotate.
Closes #95 , #29
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/145 >
2023-04-02 16:47:57 +00:00
Sophie Herold
e5fc4bc85c
image: Add high DPI support
...
Always interpret the scaling percentag in physical pixels.
This makes 100% show the image 1:1 in screen pixels.
Closes #37
2023-04-02 15:22:12 +00:00
Sophie Herold
67207bb215
image: Use mipmaps for zoom-out and NN for zoom-in
...
Before we always used "linear" filtering. This gave
a harsh image with moire patterns when zooming out
and washed out images when zooming in.
Closes #68 , #71
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/125 >
2023-03-25 15:32:31 +00:00