Commit Graph

494 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 216767d7ee
Add a customized sidebar widget
Slowly eliminating all potential uses of GTK+'s standalone
file open dialog, which is highly duplicitous.
2021-11-19 20:03:43 +01:00
Přemysl Eric Janouch 3bc07e00d9
Enable opening from sidebar in a new window 2021-11-18 22:08:45 +01:00
Přemysl Eric Janouch 9e45ba249e
Bind fullscreen switching
Also, move Tab/Enter bindings to the view's key press handler.
2021-11-18 22:08:45 +01:00
Přemysl Eric Janouch b23198f675
Try to use more screen real estate by default 2021-11-18 22:08:36 +01:00
Přemysl Eric Janouch 411f0b3e91
Bind F5 and r to refreshing the directory 2021-11-18 13:58:46 +01:00
Přemysl Eric Janouch f8526d486a
Do not lie as much in the desktop file 2021-11-18 13:41:58 +01:00
Přemysl Eric Janouch 06af1a3cc9
Add a command line option to list supported types
Make it work without a display connection.
2021-11-18 12:46:05 +01:00
Přemysl Eric Janouch 47293cfc10
Make the forward mouse button go back to the view
For symmetry.
2021-11-18 12:46:04 +01:00
Přemysl Eric Janouch d7a25ad894
Make the Open dialog useful
In the meantime.
2021-11-18 11:21:21 +01:00
Přemysl Eric Janouch 0433c1a027
Add a sidebar with places
It happens to fix an issue with scroll offset resets in the browser.

Otherwise, it's very much WIP.
2021-11-18 10:37:47 +01:00
Přemysl Eric Janouch e045a35437
Fix loading of opaque GIFs 2021-11-18 10:37:47 +01:00
Přemysl Eric Janouch 61225574d3
Actually fix adding to the list of recent files 2021-11-18 10:37:47 +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 e8754f43a6
Fix zooming in through the keyboard 2021-11-17 08:38:45 +01:00
Přemysl Eric Janouch 6eec8e7360
Fix adding images to the list of recent files 2021-11-16 14:57:02 +01:00
Přemysl Eric Janouch c4d58cb9ad
Prefer the dark theme variant 2021-11-16 14:57:02 +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 11b7969459
Support opaque 16-bit images as RGB30 with Wuffs
Do not check whether the window's visual can make use of them,
since they're arguably rare enough.

With transparent images, we're limited by Cairo's formats.
2021-11-15 14:21:22 +01:00
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