Commit graph

87 commits

Author SHA1 Message Date
abu_shawarib
45083720a3 image-page: Align popover after click position
Set "halign" proprty of context menu popover to "start"
to appear next to click point. This only works correctly
in RTL after gtk 4.11.3, by gtk@d329b00b

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/247>
2023-07-02 12:13:22 +00:00
Christopher Davis
77c81c8f7c window: Use sp instead of px for breakpoints
sp is a unit provided by libadwaita for sclae-independent pixels.
This unit changes with the text scale factor.

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/228>
2023-05-31 21:32:40 +00:00
Christopher Davis
a5cb0606b4 window: Remove stack from breakpoint
The stack widget is always visible, and does not need to be
set as visible again when the breakpoint is applied/unapplied.

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/228>
2023-05-31 21:32:40 +00:00
Christopher Davis
5297231137 window: Use only one breakpoint
AdwBreakpoint automatically resets properties when the breakpoint
conditions no longer apply. This means we don't need to manually
create a breakpoint for the sidebar at widths greater than 590px,
as libadwaita already does that for us.

This commit removes the extra breakpoint.

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/228>
2023-05-31 21:32:40 +00:00
Christopher Davis
4d391b566e window: Remove extra quotes
Some extra quotes were left in the UI file. Thankfully because
these were fully closed, they weren't causing any issues. Still,
they don't need to be there.

This commit removes the extra quotes.

Part-of: <https://gitlab.gnome.org/GNOME/Incubator/loupe/-/merge_requests/228>
2023-05-31 21:32:40 +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
3dc9e40bcb imageView: Fix vertical minimum size in measure 2023-05-03 23:47:40 +02:00
Sophie Herold
6e29b1ebff window: Move properties to bottom for narrow view
Closes #39
2023-05-03 23:41:36 +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
a8693c50ef fullscreen: Hide headerbar on idle
Closes #154
2023-05-03 22:21:18 +02:00
Sophie Herold
d4f351bf5b propertiesView: Activatable rows not selectable
Inputs get to mixed up if the subtitle in rows that
are activatable are also selectable.

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
Gotam Gorabh
8e0ab20e05 used correct verb phrase for print preview window title
used appropriate title for print preview window.

Fixes: https://gitlab.gnome.org/Incubator/loupe/-/issues/152
Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/198>
2023-04-27 02:12:20 +00: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
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
b55b51a0f3 imageView: Fullscreen button at typical position
My muscle memory, research, and the proximity to "zoom in"
tells me we should try moving it to the right.

Closes #105

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/194>
2023-04-20 20:37:41 +00: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
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
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
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
Christopher Davis
2965799374 general: Remove help-related code
Our help documents are unfinished, and we shouldn't ship
unfinished documentation in our initial release.

We can revert this commit when we're ready to write the
documents properly.

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/156>
2023-04-02 18:36:17 +00:00
Sophie Herold
0e24f347e6 imagePage: Move popover out of LpImage
It cause 'not measured' errors and we have enough
things to handle in LpImage already.

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/146>
2023-03-18 21:24:45 +00:00
Sophie Herold
42d558d22f propertiesView: Use image dimensions from decoder
This also shows the units for SVG dimensions if not pixels.

Issue #43

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/136>
2023-03-14 02:31:07 +00:00
Sophie Herold
a2a9b4134b propertiesView: Use decoder format
Use the format that we actually used when decoding.
The mime type is usually derived from the file extension
which might not always be correct.

Issue #43

Part-of: <https://gitlab.gnome.org/Incubator/loupe/-/merge_requests/132>
2023-03-14 00:50:40 +00:00
Sabri Ünal
8743149cbb ui: Mark two tooltips translatable
- Copy to Clipboard
- Move to Trash
2023-03-11 00:49:03 +00:00
Automeris naranja
9535b33b11 help_overlay: Rename "Primary Menu" to "Main Menu"
"Main Menu" is correct name.

https://developer.gnome.org/hig/patterns/controls/menus.html#primary-menus
2023-03-05 17:05:21 +00:00
Automeris naranja
d65bbc11f1 help_overlay: Show missing actions
This change adds the following actions to the help overlay:
- Copy image to clipboard
- Move image to trash
2023-03-05 17:05:21 +00:00
Automeris naranja
5d3f74b1df window: Add mnemonic to the "Open File" button 2023-03-05 13:59:54 +00:00
Automeris naranja
e1d81fe57b window: Set Main Menu button as primary
By setting the Main Menu button as primary,
the F10 key is automatically assigned to this button.
Setting a shortcut with GtkShortcutController is no longer necessary.
2023-03-05 07:29:10 -03:00
Sophie Herold
f80ec7db56 decoder: Use image-rs, libheif-rs, librsvg
This adds proper support for a lot of image formats including SVGs.
It will be the basis for many features to come. The technical core
is an asynchronous renderer that can arrange textures in smaller tiles
which might be generated on demand.

Closes #34, #40, #41, #49

Basis for fixing the following issues #7, #27, #36, #43, #68, #71
2023-03-04 21:48:51 -05:00
Christopher Davis
ae41a77521 properties_view: Move expressions to UI files
Currently Loupe leaks expressions created in-code. This
is because expressions need to be unwatched in order to be
dropped. Since we'd need to hold a reference to the watch
ourselves and unwatch them in dispose, our code would
become more cumbersome if we were to try to handle this properly.

This commit moves the expressions on LpPropertiesView to the
UI file, as GTK handles cleaning up the expressions it creates,
without any extra consideration on the app side.
2023-03-05 02:13:41 +00:00
Automeris naranja
6857f2c921 window: Change AdwStatusPage title to "View Images"
Fixes https://gitlab.gnome.org/Incubator/Submission/-/issues/1#note_1654093
2023-02-24 19:14:44 -03:00
Sophie Herold
8a46ef32c6 propertiesView: Fix opening flap on drag gesture
This only fixes opening the flap on touchscreens. Preventing
close is much harder. But hopefully wil be fixed upstream.
2023-02-14 22:42:20 +00:00
Sophie Herold
6077292117 helpOverlay: Show correct gestures for RTL
Closes #38
2023-02-07 21:22:12 +00:00
Sophie Herold
69889820cd window: Add Home/End shortcuts for first/last img
This is the same as in EOG.
Also add PageUp/Down for image navigation from EOG.
Cleanup the navigation enums as well.
2023-02-06 19:14:55 +01:00
Sophie Herold
169dd454cc image: Add double click for zoom/fullscreen
Zooms on touchscreens and fullscreens otherwise.
Using the fullscreen behavior for now, since that's what
a lot of other apps do.
2023-02-06 18:40:32 +01:00
Sophie Herold
aa7a2dfd93 window: Add image deletion
Add Flatpak access to GVfs for trash:/// access for being
able to recover files (undo trash operation).

Closes #26
2023-02-02 00:45:40 +00:00
Christopher Davis
04e8646daa properties_view: Make subtitles selectable
Closes #23
2023-02-01 16:02:08 +00:00
Sophie Herold
4eb8b939b3 application: Add shortcuts for paning the view
Closes #54
2023-01-31 04:56:58 +00:00
Christopher Davis
0d74083cf8 propertiesView: Do not propagate natural height
Propagating the height resulted in new window dimensions not
fitting to images.
Use ScrolledWindow instead of PreferencesPage to have
control over propagate-natural-height.
2023-01-31 04:29:29 +00:00
Sophie Herold
f2357513da imageView: Use custom slide widget and IndexSet
Use IndexSet to allow direct access by Path and also allow
an arbitrary ordering that was not possible with Vec. Also
add monitoring of file changes in the directory.

Use a custom LpSlidingView instead of AdwCarousel because
Carousel was never designed for this job and suffered of
bugs. LpSlidingView does not support swiping gestures yet
since they currently don't work yet anyways #24.

Use a new algorithm to fill the LpSlidingView that is
stateless and covers all potential changes in the directory.
This not only fixes bugs but would also work with changed
sorting orders.

This also adds build time template XML validation since it
was useful for the refactoring #46.

Closes #9, #11, #30, #33, #42
2023-01-30 01:08:57 +00:00
sunflowerskater
6e632e7281 window: Update AdwStatusPage description
This change applies @bertob suggestion for an updated AdwStatusPage description:
https://gitlab.gnome.org/Incubator/Submission/-/issues/1#note_1641740
2023-01-20 03:13:45 +00:00
sunflowerskater
2817e9bca6 window.ui: Rename Primary Menu to Main Menu
Currently, the "Main Menu" tooltip is "Primary Menu". However, HIG advises to use "Main Menu" instead:
https://developer.gnome.org/hig/patterns/feedback/tooltips.html

This commit changes the button tooltip to "Main Menu".
2022-12-21 19:03:59 -03:00
Sophie Herold
cc52f7a542 propertiesView: Move location to top of section
It just looks better with icon and it makes sense content wise imo
2022-12-19 18:44:23 +01:00
Sophie Herold
4b9c91f8df exif: Show device maker more consitently
Also, don't call it camera because it can be a scanner etc as well
2022-12-19 18:44:08 +01:00
Sabri Ünal
cbde386126 help-overlay: Improve some shortcuts and help-overlay 2022-12-17 17:07:22 +00:00
Sophie Herold
36000ff65c window: Put prev/next accels at window level
Tried to make things more stateless and RefCell usage for robust
- Use object properties to control the action enabled/disabled
- Borrow model RefCell for only one line or use .replace()
- Don't pass models around and borrow as short as possible instead

Fixes #20
2022-12-16 18:27:45 +00:00
Sophie Herold
65808f5894 propertiesView: Show basic EXIF data
Use libgweather to determine the city for EXIF GPS coordinates.
Make ImageMetadata a GObject to use it's properties in UI.
2022-12-12 11:31:27 -05:00