Commit graph

60 commits

Author SHA1 Message Date
e8761f8fcf
try to give ownership of the image to the Handle
this doesn't work without copying,
because RgbaImage is always an owned type

as such, it is likely not worth it
2026-07-31 11:01:51 -07:00
5a84b56025
build: use libdbus over zenity
I completely misunderstood the RFD doc comments,
thought that save file dialogs were not avaliable on linux outside of gtk

this helps avoid the wrapper, which is nice;
but I imagine it would fail if portals are unavaliable.
2026-07-31 09:55:08 -07:00
e98f268e59
refactor: do not format each ImageError
this makes the code much nicer,
but also it reduces the amount of extra fluff in the error messages.
2026-07-31 09:51:57 -07:00
973703726f
feat: guess format from magic numbers as well
this allows opening files with extensions that don't match the filetype
2026-07-31 09:16:38 -07:00
fca4577c0f
refactor(kra): factor out error mapping 2026-07-31 00:24:39 -07:00
57ad7dfb1e
build: reduce indirection slightly 2026-07-31 00:05:48 -07:00
b8b4d8698c
build: remove no-op wrapper argument 2026-07-31 00:03:35 -07:00
13976b91ea
fix: add .kra (krita) support to mimeTypes 2026-07-30 23:54:37 -07:00
101adc7a89
refactor: split kra (krita) logic into image hook
may further split this into its own crate;
seems quite useful! (albeit somewhat short and easy)

since there aren't any runtime dependancies,
it could even go into image-extras maybe
2026-07-30 23:40:14 -07:00
c96a1cbdd1
feat: default to FilterMethod::Nearest on small image
helps make pixelart sharp without the need to change it yourself
2026-07-30 22:54:56 -07:00
fc92ff60e0
feat: kra (krita) support 2026-07-30 22:41:17 -07:00
2e8a6c8546
feat: use single quotes in usage to reduce noise 2026-07-30 21:43:06 -07:00
50b5ed58b0
feat: add to usage reference 2026-07-30 21:40:14 -07:00
b1157474c9
feat: simplify theme 2026-07-30 20:35:45 -07:00
9bdd556c9d
refactor: use newer helper method in State::new
this should keep it from printing "no image to allocate"
each time when started without an argument
2026-07-30 20:27:34 -07:00
7ce87e2870
feat: optional infobar
literally the title; except on the bottom
2026-07-30 20:17:21 -07:00
97ce6754dd
feat: change scale limits
zooming in a lot is sometimes useful,
but zooming out is basically useless and annoying
(when you want to put it back to covering the full window)

if you really need to zoom out, you can always resize the window
2026-07-30 19:21:12 -07:00
f279c3aa15
feat: f to switch FilterMethod
useful to scale pixelart images nicely.

This makes me consider expanding the status bar to include info;
partially because I don't use window decorations usually
(so I don't see the info in the title)
2026-07-30 19:19:23 -07:00
e7e1400c3a
style: avoid toml curly braces
else it causes messy diffs and is generally less writable and readable
2026-07-29 16:11:48 -07:00
5a83fe39e9
feat: switch to pure-rust jxl decoder
this makes the logic drastically simpler;
as it comes with image crate integration.

however, images can no longer be saved as JXL with this version
(as jxl-oxide is decoder-only)
2026-07-29 16:11:35 -07:00
89b4639a69
chore: add license to Cargo.toml 2026-07-27 23:17:18 -07:00
f789271f9e
build: use avif-native
this allows it to open (more?) AVIFs
2026-07-27 22:09:25 -07:00
a91cc6b525
refactor: apply clippy lints 2026-07-27 21:42:52 -07:00
c4738ad2c8
feat: display image dimensions in title 2026-07-27 21:37:00 -07:00
e32c18e304
refactor: improve helper function sanity
pure(er) functions are so much easier to work with
(see the bug fix in the pior commit)

there's a bit of duplicate code introduced but it's worth it
2026-07-27 21:23:59 -07:00
60717d639c
fix: hidden error 2026-07-27 21:14:22 -07:00
ab24e5f10d
refactor: use Result with a unit type over Option
this helps convey intent, and makes it more consistent
2026-07-09 20:58:44 -07:00
dab5f8e09f
refactor: annotate State::allocate_image with must_use 2026-07-09 20:51:06 -07:00
d577fe2e76
refactor: move image logic to utils 2026-07-09 20:48:34 -07:00
c3a5919e87
feat: drag and drop (outside of wayland) 2026-07-09 20:16:56 -07:00
b11264dc4b
build: zenity consistency 2026-07-09 20:16:33 -07:00
ccc2efc21a
feat: display other image missing errors 2026-07-04 11:17:32 -07:00
32f5503ffc
fix: typos in error message 2026-07-04 11:04:10 -07:00
d91a894b6c
refactor: fix clippy lints 2026-07-03 15:51:55 -07:00
bba0ec5682
refactor: remove unused imports 2026-07-03 15:07:31 -07:00
8627ec026f
feat: set defaults for jxl encoding explicitly
at least while there's no way to select options;
this at least works for some usecases
2026-07-03 14:46:28 -07:00
9b9c04c470
feat: opening jxls 2026-07-03 14:28:46 -07:00
30b0662731
feat: saving as jxl 2026-07-03 14:28:28 -07:00
770bdc76d3
feat: start work on jxl support 2026-07-02 15:57:29 -07:00
02e470b317
fix: display any errors that occur on start 2026-07-02 15:15:26 -07:00
831def32a4
fix: use exif oreintation
https://alexwlchan.net/2025/create-thumbnail-is-exif-aware/
2026-07-02 15:14:10 -07:00
53f78d9588
refactor: deduplicate into fn load_image 2026-07-02 10:18:12 -07:00
549c478a8c
feat: capture errors into the field 2026-07-01 09:52:20 -07:00
ad0b37d0c3
refactor: add error field and display 2026-07-01 09:37:25 -07:00
c8810f3e86
fix: icon missing from source
cranelib minimizes the dependancy-only build itself anyway
2026-07-01 09:15:32 -07:00
ab8dc257e9
feat: usage info on start 2026-07-01 08:56:03 -07:00
f8ab334cd7
fix: executable path to wrap 2026-07-01 07:24:04 -07:00
0523c8e926
feat: add most appropriate MIME types
https://www.iana.org/assignments/media-types/media-types.xhtml#image
2026-07-01 07:22:44 -07:00
e703be030e
feat: use widget::image::Viewer to allow zooming and panning 2026-06-30 23:00:08 -07:00
e9fb349352
feat: "o" to open image 2026-06-30 22:53:14 -07:00