Commit Graph

494 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 544722f8e0
Try not to thumbnail FIFOs
Unless there is a writer, this may block forever.

And if there is one, we're somewhat likely to break something.
2023-05-21 23:31:41 +02:00
Přemysl Eric Janouch 00110a639a
Avoid use of NULL picture data pointers
The sanitizer would scream, and LibRaw would rather confusingly
return I/O errors.
2023-05-21 23:31:41 +02:00
Přemysl Eric Janouch 5af36f4954
Fix raw image thumbnailing speed regression
LibRaw started returning the largest possible thumbnail,
which in the case of NEFs may be a nearly full-scale image.
2023-05-21 23:31:34 +02:00
Přemysl Eric Janouch ac72a72afc
Mildly optimize raw image handling
Don't claim an alpha channel when we don't use it.
2023-05-21 22:56:29 +02:00
Přemysl Eric Janouch a6560509d9
Revise documentation and help output
Split out clearly internal options.
2023-04-17 07:20:07 +02:00
Přemysl Eric Janouch 44c28f00d6
Make supported media type listing output unique 2023-04-17 07:19:37 +02:00
Přemysl Eric Janouch cce2b6ba51
Fix history behaviour
When starting in A/B, then manually going up to A,
and back down to A/B, going back in history to A was impossible,
because it would actually end up being a /forward/ entry.
2023-04-16 15:08:36 +02:00
Přemysl Eric Janouch 43363ea4bf
Cleanup 2023-04-16 11:50:15 +02:00
Přemysl Eric Janouch 00fa76cb69
Avoid needless data duplication
And turn the initial load hack into somewhat clean-looking.
2023-04-15 05:20:35 +02:00
Přemysl Eric Janouch 5e10f0ba54
Fix a logic error 2023-04-14 07:53:21 +02:00
Přemysl Eric Janouch eb44b6fb91
Fix a memory leak on image loading 2023-04-14 07:34:26 +02:00
Přemysl Eric Janouch a012011631
Deduplicate file information structures 2023-04-14 07:31:03 +02:00
Přemysl Eric Janouch 05ac3a0651
Check filesize when retrieving thumbnails
In particular, this handles screenshots from Rigol oscilloscopes,
which reuse the same name series with the same file modification time.
2023-04-14 05:24:57 +02:00
Přemysl Eric Janouch 4317c7e581
Remove a comment
Upon closer thought, I don't know how to implement the idea reasonably.
2023-04-14 05:24:57 +02:00
Přemysl Eric Janouch 8da5f807cf
Move and extend the browser toolbar
This makes the user interface more cohesive, and easier to use.

Both toolbars should ideally be made configurable.
2023-04-11 06:33:22 +02:00
Přemysl Eric Janouch 1b50a834a5
Add optional browser filename labels 2023-04-11 06:04:27 +02:00
Přemysl Eric Janouch 38c19edc8b
Bump Wuffs 2023-04-07 16:23:31 +02:00
Přemysl Eric Janouch c646864805
Add directory tree traversal functionality
Thus far merely bound to the [ and ] keys in the browser.
2023-04-05 00:09:53 +02:00
Přemysl Eric Janouch c2196df141
Bump copyright years 2023-03-30 20:46:08 +02:00
Přemysl Eric Janouch 44f2f5d4f5
Make the mirror command intuitive 2023-03-25 11:52:33 +01:00
Přemysl Eric Janouch 25c91f5a77
Add a note about default applications 2023-03-15 05:52:32 +01:00
Přemysl Eric Janouch 796b05c9a5
Integrate online reverse image search
This makes use of our image processing capabilities in order to
turn arbitrary image files into normalized thumbnails,
upload them to a temporary host, and pass the resulting URI
to a search provider.

In future, fiv should ideally run the upload itself,
so that its status and any errors are obvious to the user,
as well as to get rid of the script's dependency on jq.
2023-03-15 05:52:32 +01:00
Přemysl Eric Janouch 9286858573
Bump Wuffs 2023-03-07 20:26:04 +01:00
Přemysl Eric Janouch 95bc91e020
Find system libraries using proper names
Fixes Meson warnings.
2023-03-03 12:14:06 +01:00
Přemysl Eric Janouch 1754bbcf45
Bump Wuffs to a regular release 2023-01-28 12:43:08 +01:00
Přemysl Eric Janouch 62d82f38c8
Fix LibRaw 0.21.0 build 2022-12-23 17:17:33 +01:00
Přemysl Eric Janouch c063d93dc7
Fix LibRaw 0.21.0 build 2022-12-23 17:04:15 +01:00
Přemysl Eric Janouch 0317b88c87
Don't require asciidoctor or a2x, import liberty 2022-10-09 01:24:03 +02:00
Přemysl Eric Janouch 1431188e27
Update a comment 2022-10-04 00:54:14 +02:00
Přemysl Eric Janouch 9cdc641b0a
Center view rotations/flips 2022-10-03 23:00:16 +02:00
Přemysl Eric Janouch 7b88e89489
Allow dragging with the middle mouse button 2022-09-03 16:17:21 +02:00
Přemysl Eric Janouch 9c2d659d89
Update .gitignore 2022-08-24 05:24:00 +02:00
Přemysl Eric Janouch 9fb90607ad
Add a traditional manual page for fiv 2022-08-24 05:23:34 +02:00
Přemysl Eric Janouch dd09af34b7
Make binaries say what git commit they come from
The manual skipping of the initial "v" from tag names is unfortunate,
but still a bit better than further cluttering up the build system.
2022-08-13 12:42:21 +02:00
Přemysl Eric Janouch dcbc8a90b4
meson.build: add a bunch of validating tests 2022-08-12 15:49:57 +02:00
Přemysl Eric Janouch 7cbd24dd2f
Bundle a fuller installation of Perl/ExifTool
wperl is necessary to get rid of the console window,
which is merely one of several issues with the PAR Packer-based
ExifTool bundle used in the last commit.

The Perl installation could be heavily trimmed down,
but it seems to require a very manual process.
2022-08-11 16:11:07 +02:00
Přemysl Eric Janouch 1a163bdb8b
Resolve a few issues with MSYS2 cross-builds
- Fix launching of subprocesses (missing gspawn helpers).
 - Discard unused GSettings schemas.
 - Make the program find its user guide.
 - Bundle a somewhat suboptimal version of ExifTool.
2022-08-11 16:10:04 +02:00
Přemysl Eric Janouch cf19f82875
Automate Windows builds, add icons to executables
Scripts have been ported from sdtui, and adjusted for Meson.

The port is broken through and through on WINE,
but sort-of works natively.
2022-08-11 00:19:59 +02:00
Přemysl Eric Janouch 9c9453172a
fiv-jpegcrop: add middle mouse button dragging
Parasitic gesture code previously discarded from fiv gets to live on.
2022-08-10 12:23:31 +02:00
Přemysl Eric Janouch 973c024abe
fiv-jpegcrop: without args, show an Open dialog
But let's keep it hidden from application lists for now.
2022-08-10 11:42:16 +02:00
Přemysl Eric Janouch dba2b9c982
Fix the argument list of a callback 2022-08-10 10:22:44 +02:00
Přemysl Eric Janouch b6e1dc4893
Overload the F9 keyboard shortcut
It doesn't make a lot of sense to be able to toggle invisible widgets,
so just make F9 toggle "the toolbar that can currently be seen".

The more permanent setting can be adjusted in GSettings.
2022-08-09 18:03:55 +02:00
Přemysl Eric Janouch f94550ec61
Improve XDG path handling on Windows 2022-08-09 17:29:42 +02:00
Přemysl Eric Janouch 69d45fea44
Use a GQueue for thumbnailing
It's mildly less awkward to use, and fixes one complexity issue.
2022-08-09 16:22:27 +02:00
Přemysl Eric Janouch 4697a56760
Use cleaner paths when looking up thumbnails 2022-08-09 13:55:17 +02:00
Přemysl Eric Janouch 4e11970a7e
Do produce thumbnails of thumbnails, but in memory 2022-08-09 13:22:11 +02:00
Přemysl Eric Janouch ae0b5506ab
Remove a stale comment 2022-08-09 08:31:51 +02:00
Přemysl Eric Janouch 701846ab39
Support opening collections of files
Implement a process-local VFS to enable grouping together arbitrary
URIs passed via program arguments, DnD, or the file open dialog.

This VFS contains FivCollectionFile objects, which act as "simple"
proxies over arbitrary GFiles.  Their true URIs may be retrieved
through the "standard::target-uri" attribute, in a similar way to
GVfs's "recent" and "trash" backends.

(The main reason we proxy rather than just hackishly return foreign
GFiles from the VFS is that loading them would switch the current
directory, and break iteration as a result.

We could also keep the collection outside of GVfs, but that would
result in considerable special-casing, and the author wouldn't gain
intimate knowledge of GIO.)

There is no perceived need to keep old collections when opening
new ones, so we simply change and reload the contents when needed.

Similarly, there is no intention to make the VFS writeable.

The process-locality of this and other URI schemes has proven to be
rather annoying when passing files to other applications,
however most of the resulting complexity appears to be essential
rather than accidental.

Note that the GTK+ file chooser widget is retarded, and doesn't
recognize URIs that lack the authority part in the location bar.
2022-08-08 18:06:50 +02:00
Přemysl Eric Janouch 4927c8c692
Don't crash on orphan URIs 2022-08-08 15:14:20 +02:00
Přemysl Eric Janouch e6341e59bb
Make Information easier to control from keyboard 2022-08-06 07:49:01 +02:00