23429d9631
Implement GtkScrollable in FivView
...
This fixes rendering and positioning behaviour when dragging on X11,
where we aim to use a native GdkWindow.
2022-07-17 05:27:06 +02:00
1fee920902
Make the browser scroll with touchpad on Wayland
...
And generally clear up scroll handling.
2022-07-15 07:35:33 +02:00
a1b2225750
Move the browser's popup menu to its own file
2022-07-04 20:44:47 +02:00
a8f7532abd
Employ embedded thumbnail extraction
...
And store all direct thumbnailer output in the browser's cache--
low-quality thumbnails will always be regenerated, as is desired,
and we'll reload faster on devices where we don't store thumbnails.
This change improves latency at the cost of overall efficiency,
seeing as images with thumbnails will be spent cycles on twice.
Keeping this out-of-process avoids undesired lock-ups.
Moreover, embedded thumbnails can be fairly expensive to decode.
2022-06-08 02:51:54 +02:00
8dfbd0dee2
Add a command line option to extract thumbnails
...
Only use LibRaw for now, which probably has the most impact
using the least amount of effort.
2022-06-08 02:51:54 +02:00
4ca8825e02
Clean up
...
Use gchar when memory is allocated through GLib.
2022-06-05 13:30:53 +02:00
8bba456b14
Cache thumbnails across reloads
...
This will speed up sort changes, as well as simple reloads,
at the cost of an extra hash map from URIs to Cairo surface references.
It seems unnecessary to provide an explicit option to flush this cache,
as it may be cleared by changing either the directory or the current
thumbnail size.
2022-06-04 16:37:25 +02:00
bb97445a96
Attach mtime to the browser's rescaled thumbnails
2022-06-04 16:37:25 +02:00
e2adac72cc
Use the model's mtime for validating thumbnails
...
Saves a syscall, generalizes fiv_thumbnail_lookup(),
wastes a tiny bit of memory per entry.
2022-06-04 16:37:25 +02:00
3ddb0cf205
Expose the mtime of the model's entries
2022-06-04 14:50:56 +02:00
da507edd05
Prevent thumbnailing from disrupting mouse clicks
2022-02-24 21:52:25 +01:00
580b68789b
Turn the browser into a DnD source
...
The destination does all the work of handling file operations.
Also, add some missing logic for horizontal scrolling.
2022-02-22 15:44:38 +01:00
31f9feab7b
Use the X-GNOME-FullName desktop file key
2022-02-21 22:29:14 +01:00
41bd25e711
Avoid g_app_info_should_show() in context menus
...
We were hiding our own JPEG cropper.
2022-02-21 21:49:44 +01:00
68bb695054
Clean up
2022-02-20 21:29:34 +01:00
04ec292caf
Make thumbnailers pass back raw images
2022-02-20 21:14:33 +01:00
fbf26a7d66
Show application icons in context menu items
2022-02-20 12:07:40 +01:00
ef2544868d
Open items on mouse button release, not press
...
At least the left and middle mouse buttons seem to behave similarly
in other programs and systems.
Context menus are opened on button release on Windows and with some
GTK+ widgets (popovers in GtkPlacesSidebar).
2022-02-14 02:10:25 +01:00
0857a04a3a
Scroll to selection when returning from the viewer
2022-02-13 13:18:36 +01:00
4302ec71f2
Make changing the browser zoom launch thumbnailers
2022-02-13 13:18:36 +01:00
38670428da
Add keyboard shortcuts for thumbnail size
2022-01-23 06:44:50 +01:00
757bc9beaa
Fully support GNOME's inode/directory mechanism
2022-01-12 11:12:32 +01:00
05453718bb
Avoid blank browser space when resizing the window
2022-01-12 10:41:33 +01:00
f1e9e47e13
Implement browser keyboard navigation
2022-01-11 14:36:19 +01:00
764312652d
Support invoking a context menu from keyboard
2022-01-11 12:26:28 +01:00
e663f02754
Implement selection in the browser
...
Keyboard controls are missing so far.
2022-01-11 11:27:35 +01:00
1a190001fc
Make the browser implement its own scrollable
...
It's quite rough around the edges so far.
2022-01-10 11:53:15 +01:00
4f19a67da3
Add an unnecessarily fancy about dialog
2022-01-09 19:11:36 +01:00
35c1f2c8ba
Parallelize thumbnail production
2022-01-08 07:46:28 +01:00
0a6b06d1d0
Fix browsing the "resource" GVfs schema
2022-01-05 07:59:18 +01:00
685defa684
Rename the whole project shorter
...
There is no point in claiming speed, it turns out to be a strange focus
to have, considering the amount of available innovations to make.
The new name does not appear to be taken by anything important.
2022-01-05 04:45:46 +01:00
b935b0baf8
Use a unified filesystem model
...
This removes some duplication of effort.
So far, sorting adjustments are not exposed in the UI.
2022-01-05 03:48:22 +01:00
2ac918b7ab
A bunch of additional fixes
2021-12-31 03:43:51 +01:00
5f8dc88fa7
Minor URL-related fix-ups
2021-12-31 00:41:04 +01:00
380ddd540b
Convert all loading to use GFile
...
Now we're able to make use of GVfs, with some caveats.
2021-12-30 22:32:29 +01:00
c49e58a0ba
Fix thumbnailing cancellation
...
Everything's according to GAsyncResult documentation.
2021-12-28 23:49:35 +01:00
bf47782f0a
Move thumbnails into their own source file
...
And clean up identifiers.
2021-12-28 20:18:25 +01:00
720464327c
Clean up
2021-12-28 02:07:42 +01:00
ad1ff06aff
Avoid producing thumbnails of thumbnails
2021-12-28 02:07:42 +01:00
af2eb411d9
Try to regenerate low quality thumbnails
2021-12-28 02:07:42 +01:00
004919cbc5
Clean up
...
This makes the thumbnailer able to load at most one directory,
which we don't particularly mind.
2021-12-28 00:37:55 +01:00
336053f24d
Implement trivial wide thumbnail production
...
Also make libwebp a required dependency.
2021-12-27 21:51:01 +01:00
dfa1fed18b
Add a context menu to opened directories
...
So that they can be opened with, e.g., Thunar.
2021-12-20 10:15:46 +01:00
ada67f044a
Optimize thumbnail rendering
...
Massive responsivity gains have been achieved here.
Rescaling performance doesn't seem to be particularly affected.
2021-12-20 04:40:35 +01:00
b78010ccb1
Adopt shorter identifiers
...
Also, slightly reformat the source code according to clang-format.
2021-12-18 07:04:01 +01:00