Commit graph

297 commits

Author SHA1 Message Date
Sophie Herold
3dd59c87ed fileModel: Correct changed checks in file monitor
Those got accidentally inverted when moving to GFile.

Close #199
2023-06-20 16:42:51 +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
Sabri Ünal
b889665c95 Data: Fix Loupe URL
Fix out-of-date Loupe URL.

Fixes: #181
2023-06-10 22:35:21 +03:00
Sophie Herold
8d8197dda4 fileModel: Add missing IS_HIDDEN file attribute 2023-06-07 23:47:58 +02:00
Sophie Herold
291fa13d1f meta: Update copyright headers 2023-06-07 23:44:20 +02: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
Christopher Davis
6df16aaa71 application: Remove backspace as a trash shortcut
Closes https://gitlab.gnome.org/GNOME/Incubator/loupe/-/issues/183

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/229>
2023-05-31 22:04:33 +00:00
Huan Nguyen
735451250c imageView: Merge set_image_from_file with set_images_from_files
Also changing behavior when opening with multiple command line
arguments or when multiple images were selected from other
applications.

Old behavior: Spawn an instance of Loupe for each argument.
New behavior: One Loupe instance containing all arguments.

Closes #195
2023-05-30 12:52:59 +00:00
FineFindus
a3a0ccdf52 imageView: Replace magic values with adw::ToastPriority 2023-05-25 10:56:38 +00:00
FineFindus
32be6c8246 imageView: Check set wallpaper response
Closes #166
2023-05-24 15:34:52 +00:00
Huan Thieu Nguyen
c6897da62d window: Let the user select multiple files to open.
Uses code that drag and drop already uses. It's kinda ugly because the
file dialog returns a ListModel.

As an added bonus, since the button responds to the action "win.open",
it will also allow open multiple files with the primary menu.
It would be a good idea to change the "Open…" label in the primary menu though.

Closes #191
2023-05-21 23:41:22 +02:00
Huan Nguyen
8804938859 window: Support forward and back mouse buttons
The button value for forward is 9. See <GNOME/gtk#515>.

Closes #172
2023-05-21 16:17:48 +00:00
Huan Nguyen
0ddecefe01 imagePage: Correctly align right-click menu
Before it was incorrectly centered
2023-05-21 16:03:13 +00:00
Gage Berz
0679d08c22 fileModel: Skip hidden files
Closes #179
2023-05-17 15:49:13 +00:00
Sophie Herold
dbf662ed3a heif: Ignore EXIF rotation info for now
Ideally we would check if HEIF has transformations
but that will only work when libheif 1.16 is supported

Closes #157
2023-05-04 21:02:42 +02:00
Sophie Herold
3dc9e40bcb imageView: Fix vertical minimum size in measure 2023-05-03 23:47:40 +02:00
Sophie Herold
dbb65fa2cb window: Better solution for swipe sending motion
Swipe gestures send motion events without changed cursor position.
Catch that in a better way to avoid showing overlay controls on swipe.
2023-05-03 22:22:05 +02:00
Sophie Herold
24bbd7eae2 window: Show controls on mouse click 2023-05-03 22:22:03 +02:00
Sophie Herold
a8693c50ef fullscreen: Hide headerbar on idle
Closes #154
2023-05-03 22:21:18 +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
3d6940cd45 image: Show window after 2 secs if dims unknown
Usually we want to wait for dimensions to show the window in correct
apsect ration. But especially for large SVGs dimensions are only known pretty late.
Show the image to give UI feedback instead of waiting for dimensions.

Closes #146

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/209>
2023-05-03 19:16:17 +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
0a94484bab window: Leave fullscreen when status page is shown
We don't allow to fullscreen without image. So if last image
is deleted, let's leave fullscreen since there are no controls
to leave it.

Closes #150

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/208>
2023-05-03 18:14:19 +00:00
Sophie Herold
bea6ad018b propertiesView: Disable open folder for non-native
The GTK API only support native files for opening the
parent directory.

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/207>
2023-05-03 16:41:51 +00:00
Sophie Herold
c42fe235c6 imagePage: Make crossfade from spinner work
It did not work before because the spinner page did
not take up the complete stack.

Also hiding the spinner when animating out of it
since it can be pretty dominant. Especially, since
it's usually not really shown before but the animation
starts emediately instead.

Closes #153

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/205>
2023-05-03 15:54:51 +00:00
Sophie Herold
7c227f75a8 decoder: Cancel file loading on decoder drop
That will probably at least work for scrolling quickly
through images. It will however usually not cancel an ongoing
decoding process.

Issue #155

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/210>
2023-05-03 14:45:07 +00:00
Sophie Herold
fac2d360b6 meta: Update copyright headers 2023-04-26 18:19:23 +02:00
Sabri Ünal
32ee47d08f app: Split rotate actions
To ensure simplicity of the process, replace the rotate actions
with new two actions, without modifying the existing rotate_image method.

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/201>
2023-04-25 17:51:43 +00:00
Sabri Ünal
c92a47a992 application: Remove ctrl+x shortcut
Remove Ctrl+X shortcut to comply GNOME HIG.

More information: https://developer.gnome.org/hig/reference/keyboard.html

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/202>
2023-04-25 17:18:26 +00:00
Sophie Herold
b30296f994 window: Hide cursor with controls fullscreened
Closes #149

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/197>
2023-04-25 00:05:24 +00:00
Sophie Herold
9d5dfd8728 window: i18n for filter name and add 'all files'
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/195>
2023-04-21 16:53:12 +02:00
Sophie Herold
4037b124d2 window: Properties button insensitive for no image
Make the toggle button insensitve if no image is shown.
Also close the properties if no image is shown anymore.

Closes #60

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/193>
2023-04-20 20:11:17 +00:00
Sophie Herold
2dbc7fa585 window: Drop AdwFlap for Headerbar
Redo everything headerbar related with new Adw widgets
when there is a working concept.

Closes #112

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/192>
2023-04-20 19:49:16 +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
916514604c imageView: Hide controls after mouse inactivity
Closes #25

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/189>
2023-04-20 15:18:06 +00:00
Sophie Herold
7b6ee24651 decoder: Only warn about invalid ICC profile
Before the image failed loading

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/190>
2023-04-20 14:27:34 +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
Philipp Kiemle
4b24628409 imageView: Add translator comment 2023-04-19 19:57:21 +02:00
Sophie Herold
792968e51b window: Set action states based on current_page
Fixes actions not getting enabled and disabled

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/184>
2023-04-19 01:46:15 +00: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
aca49427a1 window: Support dropping multiple files
This allows to scroll through all dropped files.
No further images from directories are loaded in
this mode.

Closes #35
2023-04-18 22:29:30 +02:00
Sophie Herold
e710419a22 decoder: Add basic color profile support
This only covers 8bit RGB(A) JPEG, PNG, and HEIF.
Should only be a temporary solution until GTK supports
color profiles.

Closes #36

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/172>
2023-04-18 21:22:09 +02:00
Sophie Herold
3264d7813d propertiesView: Use local datetime
Closes #130

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/166>
2023-04-18 18:32:21 +00:00