Commit Graph

212 Commits

Author SHA1 Message Date
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
972bd80fa5 Add a Meson wrap for spng 2021-11-12 11:49:12 +01:00
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
afc08df234 Fix GtkWidget::key-press-event callback prototype 2021-11-12 11:45:34 +01:00
062b5757da Update comments 2021-11-12 11:45:34 +01:00
f341c8f8c3 Make the 1 key reset the zoom 2021-11-11 22:59:31 +01:00
cfd2e5d9a5 README.adoc: fix dependency list 2021-11-11 22:51:59 +01:00
192698b7bd Add support for defaulting to gdk-pixbuf 2021-11-10 21:34:15 +01:00
405f975899 Use a checkerboard pattern on item background 2021-11-10 21:06:43 +01:00
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
77f0e142c2 Reflect that new list of files changes the layout 2021-11-10 03:20:41 +01:00
e9d0325c62 Add images to the list of recent files 2021-11-10 03:20:41 +01:00
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
ffda836a15 Also render SVGs with unspecified dimensions 2021-11-10 01:04:00 +01:00
7ef4a06def Improve librsvg integration
Let it load external <image>s and not rescale images.
2021-11-10 00:46:19 +01:00
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
1e380f695a Fix obsolete header includes 2021-11-09 18:15:41 +01:00
ed39a9b434 Add elementary scrolling support to the view 2021-11-09 06:57:02 +01:00
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
a0408abdf2 Don't render rows needlessly 2021-11-09 04:14:19 +01:00
4361fdd1be Clean up 2021-11-09 03:48:36 +01:00
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
155f57db20 meson.build: fix the io-benchmark target 2021-11-08 17:25:57 +01:00
7d640651cb Set a default window size 2021-11-08 08:00:48 +01:00
d2ef5c9c95 Pre-layout the browser
Now the widget is scrollable.
2021-11-06 23:56:44 +01:00
a346ff8d02 Don't needlessly call setlocale()
gtk_init_with_args() does it for us.
2021-11-04 20:19:30 +01:00
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
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
cdb8d852a6 Pre-scale loaded thumbnails, and only when needed 2021-11-03 14:15:34 +01:00
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
d6ac386dbd Bump wuffs
No great differences.
2021-11-02 04:53:33 +01:00
ce0500ef5c Clean up and fix key handling
Arrow keys now work.
2021-11-01 07:20:25 +01:00
e3b8fc9599 Update README 2021-11-01 05:17:27 +01:00
c8df325c70 Split out xdg.{c,h} 2021-11-01 05:17:26 +01:00
6eecee6b91 Incorporate most clang-format changes 2021-11-01 05:17:26 +01:00
810a1fee57 Add clang-format configuration 2021-11-01 05:17:26 +01:00
ab283d3988 Split out fastiv-io.h, move media types list 2021-11-01 05:17:26 +01:00
7ca53b031e tools: fix the Makefile 2021-11-01 05:17:25 +01:00
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
de9e91e9a5 Add a prototype of a directory view widget 2021-10-20 18:56:18 +02:00
dff4e316bb Don't try to open directories 2021-10-19 09:07:51 +02:00
e3dc2fecfa Make a FIXME about bindings more precise 2021-10-18 14:50:31 +02:00
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
fa7b1631f0 Round coordinates for image centring 2021-10-16 10:07:32 +02:00
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
cc29f80bb2 Zoom with the scroll wheel 2021-10-12 08:10:57 +02:00
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
58bbe1e2ff Enable directory browsing
Extracting the appropriate globs from the MIME database.
2021-10-04 23:17:34 +02:00
f21100fb02 clean-up-thumbnail-cache.sh: local file URIs only 2021-10-02 07:07:16 +02:00
25871839a2 Add thumbnail cache inspection tools 2021-10-01 17:04:39 +02:00