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