Commit Graph

53 Commits

Author SHA1 Message Date
Přemysl Eric Janouch a1f6ffd226
Make scripts capable of 32-bit Windows builds
Now binaries can be (cross-)built using GCC for 32- and 64-bit Windows.

Additional improvements:
 - Within MSYS2, try to install the required dependencies automatically.
 - Within MSYS2, fix passing libdir paths to pkg-config.
 - Prune documentation from extracted package files,
   addressing the incredible slowness of Windows filesystem operations.
 - Fix the script name in README.adoc instructions.
2023-06-22 18:33:31 +02:00
Přemysl Eric Janouch 1eee1831a5
Windows seems to be mostly working fine 2023-06-22 11:05:04 +02:00
Přemysl Eric Janouch 86622e0c31
Make cross-compilation scripts work from MSYS2
This is weird and runs very slowly.

Meson can also find libraries outside the subroot,
in particular the fast float plugin.
2023-06-22 04:06:38 +02:00
Přemysl Eric Janouch cc59e537da
Update meson invocation to avoid warnings 2023-06-04 17:15:37 +02:00
Přemysl Eric Janouch 338ae69121
Add support for the Little CMS fast float plugin
On a sample of JPEGs, it improved loading speed from ~0.26s to ~0.15s.

Unfortunately, it isn't normally installed.
2023-06-04 16:16:52 +02:00
Přemysl Eric Janouch 6a7c86a41b
Remove a macOS rendering bug workaround
Most important Cairo bugs seem to have been fixed recently.
2023-06-04 12:10:35 +02:00
Přemysl Eric Janouch 8f0576d6bc
Update runtime dependencies 2023-06-03 21:36:45 +02: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 0317b88c87
Don't require asciidoctor or a2x, import liberty 2022-10-09 01:24:03 +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 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 dcc5b6c719
Use GSettings for a new native window toggle
Also, redo desktop files handling.
2022-07-25 19:05:27 +02:00
Přemysl Eric Janouch 4fcc506d84
Update README.adoc 2022-07-22 20:49:54 +02:00
Přemysl Eric Janouch bd2e929b77
Add ability to keep zoom/position when browsing 2022-07-17 13:04:29 +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 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 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 f2eb7621b4
Bump Wuffs, add TGA support through it 2022-01-22 21:02:56 +01:00
Přemysl Eric Janouch 25dcc3b136
Handle view bindings through an action signal
This makes them adjustable.
2022-01-09 07:48:44 +01:00
Přemysl Eric Janouch 7160a915e2
Update README 2022-01-07 12:16:19 +01:00
Přemysl Eric Janouch b0de0e09bd
Add a screenshot to the README 2022-01-06 12:43:27 +01:00
Přemysl Eric Janouch 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
Přemysl Eric Janouch 336053f24d
Implement trivial wide thumbnail production
Also make libwebp a required dependency.
2021-12-27 21:51:01 +01:00
Přemysl Eric Janouch e5b1a1861c
Avoid double CM in saved WebPs 2021-12-26 02:02:57 +01:00
Přemysl Eric Janouch ccf15bc8ae
Almost fully colour-managed Wuffs (BMP, GIF, PNG) 2021-12-25 21:53:39 +01:00
Přemysl Eric Janouch 7a4b5cd065
Colour manage opaque, up to 8-bit images 2021-12-25 18:28:37 +01:00
Přemysl Eric Janouch 9899a26635
Add a file information dialog based on ExifTool
Right now, it isn't very pleasing to use.
2021-12-21 13:05:11 +01:00
Přemysl Eric Janouch b78010ccb1
Adopt shorter identifiers
Also, slightly reformat the source code according to clang-format.
2021-12-18 07:04:01 +01:00
Přemysl Eric Janouch caca14036c
Add preliminary direct support for WebP 2021-12-12 19:15:34 +01:00
Přemysl Eric Janouch ac70c7724b
Add preliminary HEIF/AVIF support
The gdk-pixbuf plugin does not work here, for whatever reason.

Moreover, close integration exposes higher bit depths, metadata,
and auxiliary images.

The library is awful and copylefted, but it's the only reasonable
thing that works.
2021-12-11 16:11:25 +01:00
Přemysl Eric Janouch a31b08a2d1
RAW -> raw photos 2021-12-02 13:01:31 +01:00
Přemysl Eric Janouch 666bfc0759
Support using libtiff directly
Multiple directories are read as multiple pages.

The error handling is mildly questionable, as is libtiff.
2021-11-28 02:20:23 +01:00
Přemysl Eric Janouch c597e7bc2c
Update README 2021-11-23 20:50:01 +01:00
Přemysl Eric Janouch e6ad6c6302
Update README 2021-11-22 20:52:12 +01:00
Přemysl Eric Janouch 8efd11d4e5
Update README 2021-11-22 16:35:57 +01:00
Přemysl Eric Janouch f4b727589b
Update README
I've noticed people often desire editing capabilities,
which is an unreasonable expectation.
2021-11-21 15:45:35 +01:00
Přemysl Eric Janouch db7a28b187
Add support for opening Xcursor files
Sadly, they don't have a canonical extension, and they don't show up
in the browser.  We might want to employ some level of sniffing.
The first 16 bytes are enough to identify a lot.
2021-11-17 13:49:15 +01:00
Přemysl Eric Janouch 9bebb0a3fe
Make this work at all in macOS/Homebrew 2021-11-16 08:51:29 +01:00
Přemysl Eric Janouch 21b110a7d6
Use spng to load thumbnails
Speed matters here, and this makes us about 20 percent faster
at loading large directories.

Moreover, libpng's PNG_ALPHA_BROKEN is indeed broken.

Thumbnails have a fairly fixed format, so there are very few practical
corner cases that could have been missed.
2021-11-12 11:45:34 +01:00
Přemysl Eric Janouch cfd2e5d9a5
README.adoc: fix dependency list 2021-11-11 22:51:59 +01:00
Přemysl Eric Janouch 192698b7bd
Add support for defaulting to gdk-pixbuf 2021-11-10 21:34:15 +01:00
Přemysl Eric Janouch 1c5cc50939
Add very basic SVG support
We need to refactor, so that SVGs are pre-rendered on each change
of scaling by librsvg directly, because some elements may be rasterized.

It would be best to also support building against resvg.
2021-11-10 00:23:19 +01:00
Přemysl Eric Janouch dbc500ae9f
Improve thumbnail scaling and alignment
Stretch thumbnails by up to half a pixel so that they align nicely.

Make use of pixman's sRGB mode.
2021-11-03 14:03:28 +01:00
Přemysl Eric Janouch e3b8fc9599
Update README 2021-11-01 05:17:27 +01:00
Přemysl Eric Janouch f24885db54
Add a thumbnail loader
So far not used, we'll need another widget to make use of it.
2021-10-04 23:17:34 +02:00
Přemysl Eric Janouch 58bbe1e2ff
Enable directory browsing
Extracting the appropriate globs from the MIME database.
2021-10-04 23:17:34 +02:00
Přemysl Eric Janouch a6982bcc3b
Make <q> and <Escape> quit, update README 2021-09-16 19:43:36 +02:00