Commit graph

358 commits

Author SHA1 Message Date
Sophie Herold
06d688e79e src: Format let-else statements 2023-07-07 19:22:51 +00:00
Christopher Davis
9e70931faf Revert "general: Remove help-related code"
This reverts commit 2965799374.

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/248>
2023-07-02 12:43:52 +00:00
abu_shawarib
33b4928c72 Revert "imagePage: Correctly align right-click menu"
This reverts commit 0ddecefe01.

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/247>
2023-07-02 12:13:22 +00:00
FineFindus
bc9aff5068 refactor: Use is_some_and 2023-06-26 11:59:17 +00:00
FineFindus
52057aba65 window: Disable trash for non-native files 2023-06-23 19:42:30 +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
Huan Thieu Nguyen
ffb2e1064d window: Toast priority high to push old toast to queue. 2023-06-21 19:13:46 +00:00
Sophie Herold
eb94683d1f fileChooser: Only list supported image formats
Closes #151

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/238>
2023-06-21 10:03:38 +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
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