Commit Graph

562 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 3299cbf825
Parallelize thumbnail loading
GLib makes this easy.

They should all be local, and fast to access, so the CPU is the limit.
2021-11-12 12:22:36 +01:00
Přemysl Eric Janouch 972bd80fa5
Add a Meson wrap for spng 2021-11-12 11:49:12 +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 afc08df234
Fix GtkWidget::key-press-event callback prototype 2021-11-12 11:45:34 +01:00
Přemysl Eric Janouch 062b5757da
Update comments 2021-11-12 11:45:34 +01:00
Přemysl Eric Janouch f341c8f8c3
Make the 1 key reset the zoom 2021-11-11 22:59:31 +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 405f975899
Use a checkerboard pattern on item background 2021-11-10 21:06:43 +01:00
Přemysl Eric Janouch fc4eb97218
Improve browser item rendition, use CSS
It's not fully hardcoded anymore, and the border is better adjustable.

Item spacing and the fade constant can't be /meaningfully/ put in CSS.
2021-11-10 21:06:43 +01:00
Přemysl Eric Janouch 77f0e142c2
Reflect that new list of files changes the layout 2021-11-10 03:20:41 +01:00
Přemysl Eric Janouch e9d0325c62
Add images to the list of recent files 2021-11-10 03:20:41 +01:00
Přemysl Eric Janouch 0cda41732f
Add C-n to open a new instance in the directory
Also, improve error messages when opening a file fails.
2021-11-10 03:20:40 +01:00
Přemysl Eric Janouch ffda836a15
Also render SVGs with unspecified dimensions 2021-11-10 01:04:00 +01:00
Přemysl Eric Janouch 7ef4a06def
Improve librsvg integration
Let it load external <image>s and not rescale images.
2021-11-10 00:46:19 +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 1e380f695a
Fix obsolete header includes 2021-11-09 18:15:41 +01:00
Přemysl Eric Janouch ed39a9b434
Add elementary scrolling support to the view 2021-11-09 06:57:02 +01:00
Přemysl Eric Janouch a135d6f332
Enable opening images from the browser
Also, make it possible to go back, in a roughly implemented manner.
2021-11-09 06:03:02 +01:00
Přemysl Eric Janouch a0408abdf2
Don't render rows needlessly 2021-11-09 04:14:19 +01:00
Přemysl Eric Janouch 4361fdd1be
Clean up 2021-11-09 03:48:36 +01:00
Přemysl Eric Janouch 527a081f54
Add glowing borders around browser items
The styling is mostly hardcoded for now, need to figure it out.
2021-11-09 02:48:40 +01:00
Přemysl Eric Janouch 155f57db20
meson.build: fix the io-benchmark target 2021-11-08 17:25:57 +01:00
Přemysl Eric Janouch 7d640651cb
Set a default window size 2021-11-08 08:00:48 +01:00
Přemysl Eric Janouch d2ef5c9c95
Pre-layout the browser
Now the widget is scrollable.
2021-11-06 23:56:44 +01:00
Přemysl Eric Janouch a346ff8d02
Don't needlessly call setlocale()
gtk_init_with_args() does it for us.
2021-11-04 20:19:30 +01:00
Přemysl Eric Janouch 9045898fb6
Don't rescale thumbnails in sRGB
pixman is too slow at this, maybe do it later, and optionally.
2021-11-04 19:52:14 +01:00
Přemysl Eric Janouch 45df774cc9
Fix scaling in the view, as in the browser
The source pattern needs to be padded.
2021-11-04 19:42:22 +01:00
Přemysl Eric Janouch cdb8d852a6
Pre-scale loaded thumbnails, and only when needed 2021-11-03 14:15:34 +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 d6ac386dbd
Bump wuffs
No great differences.
2021-11-02 04:53:33 +01:00
Přemysl Eric Janouch ce0500ef5c
Clean up and fix key handling
Arrow keys now work.
2021-11-01 07:20:25 +01:00
Přemysl Eric Janouch e3b8fc9599
Update README 2021-11-01 05:17:27 +01:00
Přemysl Eric Janouch c8df325c70
Split out xdg.{c,h} 2021-11-01 05:17:26 +01:00
Přemysl Eric Janouch 6eecee6b91
Incorporate most clang-format changes 2021-11-01 05:17:26 +01:00
Přemysl Eric Janouch 810a1fee57
Add clang-format configuration 2021-11-01 05:17:26 +01:00
Přemysl Eric Janouch ab283d3988
Split out fastiv-io.h, move media types list 2021-11-01 05:17:26 +01:00
Přemysl Eric Janouch 7ca53b031e
tools: fix the Makefile 2021-11-01 05:17:25 +01:00
Přemysl Eric Janouch befa7df481
Add file type filters to the file open dialog
FWIW, since I've had to do this in another project already.
2021-10-23 23:57:43 +02:00
Přemysl Eric Janouch de9e91e9a5
Add a prototype of a directory view widget 2021-10-20 18:56:18 +02:00
Přemysl Eric Janouch dff4e316bb
Don't try to open directories 2021-10-19 09:07:51 +02:00
Přemysl Eric Janouch e3dc2fecfa
Make a FIXME about bindings more precise 2021-10-18 14:50:31 +02:00
Přemysl Eric Janouch a6972e4c6e
Don't hardcode the background colour
It can be now overriden in the user's gtk.css.
2021-10-17 12:48:15 +02:00
Přemysl Eric Janouch fa7b1631f0
Round coordinates for image centring 2021-10-16 10:07:32 +02:00
Přemysl Eric Janouch 70a4729f36
Use bilinear filtering
It could be both faster and more accurate,
though currently it's a good compromise.
2021-10-16 10:04:50 +02:00
Přemysl Eric Janouch cc29f80bb2
Zoom with the scroll wheel 2021-10-12 08:10:57 +02: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 f21100fb02
clean-up-thumbnail-cache.sh: local file URIs only 2021-10-02 07:07:16 +02:00
Přemysl Eric Janouch 25871839a2
Add thumbnail cache inspection tools 2021-10-01 17:04:39 +02:00