Commit Graph

463 Commits

Author SHA1 Message Date
Přemysl Eric Janouch f74e7c34d5
Tell wrapped spng to give us a static library 2021-11-12 13:02:57 +01:00
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