Commit Graph

126 Commits

Author SHA1 Message Date
Přemysl Eric Janouch e835c889a1
Don't use a side buffer to load thumbnails
Undoing part of a recent commit.
2021-11-15 10:30:02 +01:00
Přemysl Eric Janouch 6f86911df6
Slightly optimize thumbnail loading
Now it translates to just x86 bswap and ror.
2021-11-15 09:47:00 +01:00
Přemysl Eric Janouch 37adaac965
Let modified wheel events scroll the view 2021-11-14 03:37:09 +01:00
Přemysl Eric Janouch 1dce2e079c
Fix a typo 2021-11-14 03:37:08 +01:00
Přemysl Eric Janouch c905f64d12
Expose view settings as GObject properties 2021-11-14 02:48:11 +01:00
Přemysl Eric Janouch 1f0d6b24d8
Cache the browser's GDK cursor object 2021-11-13 13:40:46 +01:00
Přemysl Eric Janouch 7d972e9334
Add scaling to fit, make this the default 2021-11-13 12:47:10 +01:00
Přemysl Eric Janouch b8cc43eb91
Bind the mouse back button on the view 2021-11-13 10:05:05 +01:00
Přemysl Eric Janouch a1db89d91c
Make scaling accessible from the keyboard 2021-11-13 09:51:16 +01:00
Přemysl Eric Janouch 73dd5bf1a0
Improve key handling
Iteration should be limited to the view.

g_signal_connect_after() did not work as I hoped it would.
2021-11-13 09:41:37 +01:00
Přemysl Eric Janouch 7dba21c6d8
Use the hand/pointer cursor in the browser
Also, fix the build.
2021-11-13 09:21:28 +01:00
Přemysl Eric Janouch d20c6469c0
Clean up 2021-11-13 09:06:01 +01:00
Přemysl Eric Janouch f7c1006053
Actually add gdk-pixbuf to dependencies 2021-11-12 13:42:59 +01:00
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