Commit Graph

500 Commits

Author SHA1 Message Date
Přemysl Eric Janouch bb4b895cb5
Extract some full-size raw previews without LibRaw
Not all image/x-nikon-nef will work like this,
so don't claim their MIME type.
2023-05-26 15:32:34 +02:00
Přemysl Eric Janouch 0f1c61ae33
Extract all raw subimages as pages
And add missing colour management.
2023-05-26 13:30:22 +02:00
Přemysl Eric Janouch 0359ddf99f
Add a tool to extract LibRaw file information 2023-05-26 13:30:22 +02:00
Přemysl Eric Janouch a93fc3f88d
Make TIFF and JPEG info extractors co-recursive 2023-05-24 06:18:14 +02:00
Přemysl Eric Janouch d70aedffa8
Slightly expand TIFF tables 2023-05-24 06:07:38 +02:00
Přemysl Eric Janouch dba728e0c4
Improve TIFF handling within tools
Nikon NEFs violate TIFF Tech Note 1, and it is easy to detect.

Also guard against more pointer overflows, and fix a temporary array
being used outside of its scope (found by a compiler).
2023-05-22 20:56:28 +02:00
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