Commit graph

1220 commits

Author SHA1 Message Date
Maximiliano Sandoval R
13d7a21501 Implement drag source on images
Using a 128x128 thumbnail.
2022-01-09 00:22:50 -08:00
Christopher Davis
fc6d3668c0 Update gtk-rs deps for return value nullability trust 2022-01-08 22:18:40 -08:00
Maximiliano Sandoval R
be09d49756
image: Implement Copy to clipboard 2022-01-08 23:59:56 +01:00
Christopher Davis
7b760f85f4 image_view: Use window identifier for wallpaper portal
Makes the dialog modal.
2021-12-29 18:46:55 -08:00
Christopher Davis
a12e7eed43 window: Use portal to open files in other apps
Calling `xdg-open` is the wrong thing to do, and has
flaky reliability. What we want is to use the portal
directly with the exact behavior we want.

When using the portal we can't just pass the uri -
we need to own a file descriptor.
2021-12-29 17:43:58 -08:00
Christopher Davis
56a47fb447 Update gtk-rs
This brings us a neat new function, `imp()`,
that lets us drop `from_instance()` everywhere.
2021-12-29 14:02:48 -08:00
Christopher Davis
400672b6b6 window: Add ToastOverlay and use toasts for feedback 2021-12-28 16:40:58 -08:00
Felix Häcker
084304cadc
build: Fix cargo home variable 2021-12-28 09:40:39 +01:00
Christopher Davis
be70bdafe5 window: Implement drag and drop
The main page is no longer a lie.
2021-12-27 22:05:29 -08:00
Christopher Davis
5d9567507c window: Add "Open File..." button, remove gesture
This gives users a very intuitive way to open files.
The gesture was awkard and didn't match any common patterns
across GNOME. The button is simple and obvious.
2021-12-23 20:35:22 -08:00
Christopher Davis
5893d4b764 cargo: Use gtk-rs master
Needed to take advantage of template callbacks
and new APIs.
2021-12-22 18:17:38 -08:00
Christopher Davis
5c25a6a270 application: Use standard shortcut for help overlay
Ctrl+F1 never really worked - that was chosen based
on the mockups, but in reality it only opened Help.
Apps usually use Ctrl+?.
2021-12-22 16:02:17 -08:00
Christopher Davis
1ae7316b32 general: Consolidate explicit dependencies down to adw and gtk4
Use the exported dependencies for everything else.
2021-12-21 16:09:48 -08:00
Christopher Davis
f9cbad9ad9 general: Use adw alias for libadwaita
This will make writing libadwaita-based code a bit
nicer, and make it nicer when we use crates that
libadwaita's API re-exports.

Also clean up the unused imports exposed by
this change.
2021-12-21 14:56:25 -08:00
Felix Häcker
ec0f13d250
build: Fix rust-analyzer 2021-12-21 20:38:13 +01:00
Felix Häcker
2bb8e70196
cargo: Disable verbose output 2021-12-21 20:37:25 +01:00
Christopher Davis
d4fca8aae3 general: Iv* to Lp*
We're probably going to be keeping `loupe` as the codename
and binary name going forward.
2021-12-21 10:55:02 -08:00
Christopher Davis
4d1141a675 widgets: split view and image
This will make implementing a more comprehensive photo view simpler.
2021-12-20 08:37:50 -08:00
Christopher Davis
5e7965ff4a window: Disable swipes on the flap
We don't want or need these for this case.
2021-10-08 05:50:49 -07:00
Christopher Davis
5314547625 flatpak: Remove libadwaita from manifest
libadwaita is included in the SDK now.
2021-10-03 04:19:48 -07:00
Christopher Davis
59898b8e83 flatpak: Update logging domain 2021-09-29 12:30:07 -07:00
Christopher Davis
125d843413 image_view: Remove unused import 2021-09-29 01:08:57 -07:00
Christopher Davis
363cbc85bc image_view: Remove present()
Using a layout manager actually does this for us.
2021-09-29 01:00:31 -07:00
Christopher Davis
80502064ce Add pre-commit hook
This is something we can use to check formatting before
any commits are pushed.
2021-09-29 00:48:00 -07:00
Christopher Davis
8361c3a7d4 image_view: Show previews for wallpapers
In case we decide to do cool things the preview later.
2021-09-29 00:42:53 -07:00
Christopher Davis
3ca0eb4d02 application: Update year 2021-09-29 00:38:07 -07:00
Christopher Davis
1e0732ac92 ui: Add tooltips to buttons 2021-09-29 00:38:07 -07:00
Christopher Davis
f7553e02a4 More typography fixes 2021-09-29 00:38:07 -07:00
Christopher Davis
02694cc8da window: Adjust sentence casing and typography 2021-09-29 00:38:07 -07:00
Christopher Davis
0d37d123c9 image_view: Add note to investigate printing
This is one of the features we need for the MVP,
but printing is a bit beyond my current knowledge.
So, I need to research this. Onto other things for
now, so I'll add note.
2021-09-29 00:38:07 -07:00
Christopher Davis
945aff3029 image_view: Load images once
We don't need to load the file twice just to get the
dimensions. We can load a GdkTexture, use it's APIs
for the width and height, and return that as a result
to the window. This allows us to kill the `dimensions-loaded`
signal and one of the places where we need to load a file.
2021-09-29 00:38:04 -07:00
Christopher Davis
e0820e0881 README: Add info to install section
Directory navigation does not work without the app
installed on the system.
2021-09-28 18:38:01 -07:00
Christopher Davis
6fbad6d6ce application: Formatting 2021-09-28 17:56:33 -07:00
Christopher Davis
cced598239 general: Rename to Loupe
Sets the codename, binary name, and app ID name to Loupe.
The user-visible name is still Image Viewer.
2021-09-28 17:44:26 -07:00
Christopher Davis
9833c1edc0 Update dependencies; Use new libadwaita dark style 2021-09-28 16:00:44 -07:00
Christopher Davis
ae640d607c README: Remove GEGL integration
Probably not needed for an MVP
2021-09-28 15:57:48 -07:00
Christopher Davis
3ec5ad42db Remove widgets::init()
We don't need this since `TemplateChild` registers the type for
us now.
2021-09-24 06:25:33 -07:00
Christopher Davis
e41acf0701 window, image_view: Cleanups
* Move context menu model to image_view.ui
* Remove useless property assignment
2021-09-24 06:12:37 -07:00
Christopher Davis
293dc3c124 window: Bind headerbar opacity to controls
No purpose yet, but will help when we want to implement
fading. Need to have support for closures in Rust first.
2021-09-24 05:58:55 -07:00
Christopher Davis
e45b89f854 window: Rework fullscreen
We can use AdwFlap and have one single headerbar for both
fullscreen and unfullscreened.
2021-09-24 01:18:31 -07:00
Christopher Davis
e589028f1b application: Set the active window for show_uri () 2021-09-23 08:05:34 -07:00
Christopher Davis
0c62962d06 application: Subclass AdwApplication
AdwApplication automatically handles styling for us.
2021-09-23 08:05:34 -07:00
Christopher Davis
1687411536 general: clippy lint fixes 2021-09-22 22:57:54 -07:00
Christopher Davis
4fbf0e2203 build: Version bump
40 and 41 are both out now, we're starting the 42 cycle.
2021-09-22 22:40:00 -07:00
Christopher Davis
decba30212 css: Use @theme_base_color
This works better with the new OSD styling and with
transparency.
2021-09-22 22:39:12 -07:00
Christopher Davis
52af944521 css: Make checkerboard style less specific 2021-09-22 22:13:32 -07:00
Christopher Davis
f15491af78 css: Remove custom header styling
Adwaita handles this well enough now.
2021-09-22 22:12:33 -07:00
Christopher Davis
b85255a6be application: Stop using add_window ()
This isn't needed since we use an ApplicationWindow
2021-09-22 21:56:15 -07:00
Christopher Davis
f9ac6470ad window: Use gtk_widget_class_install_action ()
Simplifies our action handling a lot - we no longer need
to use the `action!` macro here, and we don't need
`lookup_action ()` to set the action state or activate
actions.
2021-09-22 21:33:47 -07:00
Christopher Davis
c6ff46a578 css: Add styling for checkerboard 2021-09-22 20:49:31 -07:00