Přemysl Eric Janouch
60a8ee7a80
Build tools with Meson as well
2022-06-10 02:08:56 +02:00
Přemysl Eric Janouch
84f8c9436f
Downscale embedded thumbnails within minions
...
Otherwise the UI would become unresponsive during loading.
2022-06-08 02:51:55 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
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
Přemysl Eric Janouch
930744e165
Add flags to the serialization protocol
...
It still needs no versioning, as it's not really used by anyone.
An alternative method of passing a "low-quality" flag would be
perusing fiv_thumbnail_key_lq from fiv-thumbnail.c, which would
create a circular dependency, unless fiv_io_{de,}serialize*()
were moved to fiv-thumbnail.c.
2022-06-08 02:51:54 +02:00
Přemysl Eric Janouch
4ca8825e02
Clean up
...
Use gchar when memory is allocated through GLib.
2022-06-05 13:30:53 +02:00
Přemysl Eric Janouch
024b5117b4
Get rid of our spng dependency
...
Thumbnails can be properly loaded using Wuffs now.
2022-06-04 23:14:15 +02:00
Přemysl Eric Janouch
ac6b606ccc
Bump Wuffs, support partial PNGs through it
2022-06-04 19:19:16 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
bb97445a96
Attach mtime to the browser's rescaled thumbnails
2022-06-04 16:37:25 +02:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
3ddb0cf205
Expose the mtime of the model's entries
2022-06-04 14:50:56 +02:00
Přemysl Eric Janouch
efc13db66e
Plug two memory leaks
2022-06-04 01:28:44 +02:00
Přemysl Eric Janouch
b6315482b7
Fix sort changes taking way too much time
...
All thumbnails were reloaded five times on each change.
GTK+/GObject's behaviour doesn't make a lot of sense, but such is life.
2022-06-02 11:46:16 +02:00
Přemysl Eric Janouch
51ea785d83
Bump spng wrap
2022-04-20 03:03:30 +02:00
Přemysl Eric Janouch
5c34a6846a
Fix loading huge JPEGs
...
They fell back to gdk-pixbuf, then misrendered in the thumbnailer,
and crashed the program when loaded directly.
The second best we can do is scale them down, right after tiling,
which is a complex feature to add.
2022-03-09 18:04:36 +01:00
Přemysl Eric Janouch
da507edd05
Prevent thumbnailing from disrupting mouse clicks
2022-02-24 21:52:25 +01:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
31f9feab7b
Use the X-GNOME-FullName desktop file key
2022-02-21 22:29:14 +01:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
d9435c988c
Clean up
2022-02-21 21:20:16 +01:00
Přemysl Eric Janouch
919a55c90b
Try to thumbnail everything we can
2022-02-21 00:02:15 +01:00
Přemysl Eric Janouch
68bb695054
Clean up
2022-02-20 21:29:34 +01:00
Přemysl Eric Janouch
04ec292caf
Make thumbnailers pass back raw images
2022-02-20 21:14:33 +01:00
Přemysl Eric Janouch
a28fbf25bc
Implement wide thumbnail cache invalidation
2022-02-20 15:44:42 +01:00
Přemysl Eric Janouch
6c748439ed
Use natural sort order
...
This is exposed in GLib through collate key construction.
2022-02-20 12:07:41 +01:00
Přemysl Eric Janouch
fbf26a7d66
Show application icons in context menu items
2022-02-20 12:07:40 +01:00
Přemysl Eric Janouch
1a8c461af2
Simplify sidebar DnD
2022-02-19 23:13:35 +01:00
Přemysl Eric Janouch
2a73e46315
fiv-jpegcrop: avoid negatively sized crop regions
2022-02-19 23:04:12 +01:00
Přemysl Eric Janouch
a68a73cf5c
Don't mention gdk-pixbuf as a direct dependency
...
It's a similar case to Cairo.
2022-02-19 22:02:22 +01:00
Přemysl Eric Janouch
433ede4bf1
Add a lossless JPEG cropper
...
This is more of an MVP, as metadata probably need adjustments.
2022-02-19 20:48:38 +01:00
Přemysl Eric Janouch
3ae8be8348
Add a TODO comment
...
WebP can't save all JPEGs, because WEBP_MAX_DIMENSION is only 16383.
2022-02-18 19:54:05 +01:00
Přemysl Eric Janouch
5d019e20b5
Make the view a drop target
2022-02-17 10:57:05 +01:00
Přemysl Eric Janouch
03d1798e23
Add a missing header file include
2022-02-14 06:55:37 +01:00
Přemysl Eric Janouch
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
Přemysl Eric Janouch
0857a04a3a
Scroll to selection when returning from the viewer
2022-02-13 13:18:36 +01:00
Přemysl Eric Janouch
4302ec71f2
Make changing the browser zoom launch thumbnailers
2022-02-13 13:18:36 +01:00
Přemysl Eric Janouch
ee5f63e50b
Adjust keyboard shortcuts
2022-01-26 04:44:00 +01:00
Přemysl Eric Janouch
6e26dc13b4
Only show the info bar when appropriate
...
The late, global gtk_widget_show_all() made it always start visible,
in particular when the program was launched directly on an image file,
and not in browsing mode.
2022-01-25 06:15:05 +01:00
Přemysl Eric Janouch
5c725d1968
Fix some user guide formatting
2022-01-25 05:59:05 +01:00
Přemysl Eric Janouch
ee71fb0dd0
Start a basic user guide
...
Move some information out there from the README.
2022-01-25 05:54:00 +01:00
Přemysl Eric Janouch
381e5f57c7
Add TGA to the list of supported media types
2022-01-25 05:16:31 +01:00
Přemysl Eric Janouch
788485d81e
Redirect warnings to the info bar
...
And speed up thumbnailing of animated images while at it.
Also, fix thumbnailing SVGs with external links.
2022-01-24 05:48:13 +01:00
Přemysl Eric Janouch
991e74b99b
Redirect image open failure messages
...
Pop-up dialogs are quite annoying, as is not being able to
iterate over broken images.
This will also be useful for warnings and asynchronous loading.
2022-01-24 02:48:38 +01:00
Přemysl Eric Janouch
38670428da
Add keyboard shortcuts for thumbnail size
2022-01-23 06:44:50 +01:00
Přemysl Eric Janouch
a7e638207f
Fix Meson
...
The disabler, for some reason, bubbles up to its target.
2022-01-23 04:44:41 +01:00
Přemysl Eric Janouch
098895bfd9
Remove SVG debugging tools
...
I already know how librsvg over Cairo behaves.
2022-01-23 04:15:48 +01:00
Přemysl Eric Janouch
235b14dc11
Fix a case in orientation mirroring
2022-01-23 04:15:48 +01:00
Přemysl Eric Janouch
6ce5c7c2b6
Scale SVGs accurately in the viewing widget
2022-01-23 04:15:48 +01:00
Přemysl Eric Janouch
07e7d39ea2
Produce properly scaled SVG thumbnails
2022-01-23 04:12:11 +01:00