Commit graph

137 commits

Author SHA1 Message Date
Sophie Herold
6958f427bd application: Shortcuts for non-animated next/prev
Don't animate switching between images for Alt+Arrow.

Closes #45
2024-01-31 23:34:25 +01:00
Sophie Herold
0e44037239 ImageView: Reliably show image restored from trash
Closes #316
2024-01-28 20:57:19 +00:00
Sophie Herold
67513dc3f5 window: Stop adding svg mime manually
This was from way back when glycin didn't support SVGs yet.
2024-01-28 20:57:19 +00:00
Sophie Herold
171077ffc7 window: Resize to natural on map
Only at this point we can be certain about the screen info like size an
scaling factor.
2024-01-19 15:47:16 +00:00
Sophie Herold
446ae5063a window: Limit HeaderBar to min width as nat width
Before we were doing the same with just the title in the HeaderBar. This
gave problems with correctly measuring for ADW_CENTERING_POLICY_LOOSE.
2024-01-09 20:12:02 +01:00
Sophie Herold
b1d1d547cf image/zoom: Force zoom to center for buttons
Before, using buttons on touchscreen could zoom to the cursor position.
2024-01-04 14:37:11 +01:00
Sophie Herold
fe43bc3a4c metadata: Centralize many loose ends 2024-01-01 22:43:30 +01:00
Sophie Herold
4a7ef27853 window: Move overlay controlling to own module 2023-12-22 22:52:43 +01:00
Sophie Herold
d185973815 windowTitle: Add custom window title widget
Fixes #202
2023-12-20 19:28:22 +00:00
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
33bcd4a7ac imageView: Remove expression for fullscreen icon 2023-12-04 18:22:47 +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
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
55811a2bb7 image: Use macro for object properties 2023-11-29 18:52:31 +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
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
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
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
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
0cff205c9d general: Update to gtk-rs 0.7 2023-08-06 11:24:01 +02:00
Sophie Herold
d1465b43e6 window: Use border variant of raised HeaderBar
This avoids shadows over images

Closes #106

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/263>
2023-08-04 19:17:32 +00: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
08a9c3e450 window: Remove default drop target style
The default does not fit well with our new custom one.

This also removes a bunch of code which was not used.

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/258>
2023-07-18 17:48:43 +00:00
Sophie Herold
cf8fa499d9 window: New way to detect own window in d+d
This is a (hopefully) cleaner way to detect if we are
dragging out of the own window to not show drag indicator
in that case.

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/258>
2023-07-18 17:48:43 +00:00
FineFindus
78b16518e5 window: Use custom overlay visual for drop target
Closes #59

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/258>
2023-07-18 17:48:43 +00:00
qwel
3111efdd94 window: First work for drag overlay visuals
Issue #59

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/258>
2023-07-18 17:48:43 +00:00
Christopher Davis
186401fb57 general: Change user-facing name to Image Viewer
This is part of the move to Core.

Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/256>
2023-07-13 21:51:09 +00:00
Sophie Herold
06d688e79e src: Format let-else statements 2023-07-07 19:22:51 +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
291fa13d1f meta: Update copyright headers 2023-06-07 23:44:20 +02: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
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
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