Compare commits

..
3 changed files with 9 additions and 32 deletions

11
Cargo.lock generated
View file

@ -1429,7 +1429,6 @@ dependencies = [
"rayon",
"rfd",
"size",
"tokio",
"zip",
]
@ -1746,7 +1745,6 @@ dependencies = [
"iced_core",
"log",
"rustc-hash 2.1.3",
"tokio",
"wasm-bindgen-futures",
"wasmtimer",
]
@ -4261,15 +4259,6 @@ version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed"
dependencies = [
"pin-project-lite",
]
[[package]]
name = "toml"
version = "1.1.4+spec-1.1.0"

View file

@ -10,12 +10,11 @@ kra-image-integration = "0.1.0"
rayon = "1.12.0"
rfd = "0.17.2"
size = "0.5.0"
tokio = "1.53.1"
zip = "8.6.0"
[dependencies.iced]
version = "0.14.0"
features = [ "image", "tokio" ]
features = [ "image" ]
[dependencies.image]
version = "0.25.10"

View file

@ -42,8 +42,6 @@ enum Message {
struct State {
images: BTreeMap<PathBuf, MaybeImage>,
filter: widget::image::FilterMethod,
columns: usize,
key: usize,
@ -55,8 +53,10 @@ impl State {
fn new() -> (Self, Task<Message>) {
(
Self {
images: BTreeMap::new(),
columns: 3,
..Default::default()
key: 0,
error: None,
},
Task::done(Message::OpenPath(Some(
env::args()
@ -75,13 +75,9 @@ impl State {
let size = 1000 / self.columns as u32;
let (task, handle) = Task::perform(
async move {
tokio::task::spawn_blocking(move || {
utils::load_thumbnail(&path, size)
.map(|img| (path, handle_from_image(img)))
.map_err(Arc::new)
})
.await
.unwrap()
utils::load_thumbnail(&path, size)
.map(|img| (path, handle_from_image(img)))
.map_err(Arc::new)
},
Message::ImageLoaded,
)
@ -178,13 +174,6 @@ impl State {
self.columns = (self.columns - 1).clamp(1, 10)
}
keyboard::Key::Character("f") => {
self.filter = match self.filter {
widget::image::FilterMethod::Linear => widget::image::FilterMethod::Nearest,
widget::image::FilterMethod::Nearest => widget::image::FilterMethod::Linear,
}
}
keyboard::Key::Character("q") => {
return window::latest().and_then(window::close);
}
@ -202,10 +191,10 @@ impl State {
widget::container(
widget::sensor(maybe_image.handle().map_or_else(
|| Element::from(widget::space()),
|handle| widget::image(handle).filter_method(self.filter).into(),
|handle| widget::image(handle).into(),
))
.key(self.key)
.anticipate(500)
.anticipate(2000)
.on_show(|_size| Message::LoadImage(path.clone()))
.on_hide(Message::UnloadImage(path.clone())),
)