Compare commits
3 changed files with 9 additions and 32 deletions
11
Cargo.lock
generated
11
Cargo.lock
generated
|
|
@ -1429,7 +1429,6 @@ dependencies = [
|
||||||
"rayon",
|
"rayon",
|
||||||
"rfd",
|
"rfd",
|
||||||
"size",
|
"size",
|
||||||
"tokio",
|
|
||||||
"zip",
|
"zip",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
@ -1746,7 +1745,6 @@ dependencies = [
|
||||||
"iced_core",
|
"iced_core",
|
||||||
"log",
|
"log",
|
||||||
"rustc-hash 2.1.3",
|
"rustc-hash 2.1.3",
|
||||||
"tokio",
|
|
||||||
"wasm-bindgen-futures",
|
"wasm-bindgen-futures",
|
||||||
"wasmtimer",
|
"wasmtimer",
|
||||||
]
|
]
|
||||||
|
|
@ -4261,15 +4259,6 @@ version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
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]]
|
[[package]]
|
||||||
name = "toml"
|
name = "toml"
|
||||||
version = "1.1.4+spec-1.1.0"
|
version = "1.1.4+spec-1.1.0"
|
||||||
|
|
|
||||||
|
|
@ -10,12 +10,11 @@ kra-image-integration = "0.1.0"
|
||||||
rayon = "1.12.0"
|
rayon = "1.12.0"
|
||||||
rfd = "0.17.2"
|
rfd = "0.17.2"
|
||||||
size = "0.5.0"
|
size = "0.5.0"
|
||||||
tokio = "1.53.1"
|
|
||||||
zip = "8.6.0"
|
zip = "8.6.0"
|
||||||
|
|
||||||
[dependencies.iced]
|
[dependencies.iced]
|
||||||
version = "0.14.0"
|
version = "0.14.0"
|
||||||
features = [ "image", "tokio" ]
|
features = [ "image" ]
|
||||||
|
|
||||||
[dependencies.image]
|
[dependencies.image]
|
||||||
version = "0.25.10"
|
version = "0.25.10"
|
||||||
|
|
|
||||||
|
|
@ -42,8 +42,6 @@ enum Message {
|
||||||
struct State {
|
struct State {
|
||||||
images: BTreeMap<PathBuf, MaybeImage>,
|
images: BTreeMap<PathBuf, MaybeImage>,
|
||||||
|
|
||||||
filter: widget::image::FilterMethod,
|
|
||||||
|
|
||||||
columns: usize,
|
columns: usize,
|
||||||
|
|
||||||
key: usize,
|
key: usize,
|
||||||
|
|
@ -55,8 +53,10 @@ impl State {
|
||||||
fn new() -> (Self, Task<Message>) {
|
fn new() -> (Self, Task<Message>) {
|
||||||
(
|
(
|
||||||
Self {
|
Self {
|
||||||
|
images: BTreeMap::new(),
|
||||||
columns: 3,
|
columns: 3,
|
||||||
..Default::default()
|
key: 0,
|
||||||
|
error: None,
|
||||||
},
|
},
|
||||||
Task::done(Message::OpenPath(Some(
|
Task::done(Message::OpenPath(Some(
|
||||||
env::args()
|
env::args()
|
||||||
|
|
@ -75,13 +75,9 @@ impl State {
|
||||||
let size = 1000 / self.columns as u32;
|
let size = 1000 / self.columns as u32;
|
||||||
let (task, handle) = Task::perform(
|
let (task, handle) = Task::perform(
|
||||||
async move {
|
async move {
|
||||||
tokio::task::spawn_blocking(move || {
|
|
||||||
utils::load_thumbnail(&path, size)
|
utils::load_thumbnail(&path, size)
|
||||||
.map(|img| (path, handle_from_image(img)))
|
.map(|img| (path, handle_from_image(img)))
|
||||||
.map_err(Arc::new)
|
.map_err(Arc::new)
|
||||||
})
|
|
||||||
.await
|
|
||||||
.unwrap()
|
|
||||||
},
|
},
|
||||||
Message::ImageLoaded,
|
Message::ImageLoaded,
|
||||||
)
|
)
|
||||||
|
|
@ -178,13 +174,6 @@ impl State {
|
||||||
self.columns = (self.columns - 1).clamp(1, 10)
|
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") => {
|
keyboard::Key::Character("q") => {
|
||||||
return window::latest().and_then(window::close);
|
return window::latest().and_then(window::close);
|
||||||
}
|
}
|
||||||
|
|
@ -202,10 +191,10 @@ impl State {
|
||||||
widget::container(
|
widget::container(
|
||||||
widget::sensor(maybe_image.handle().map_or_else(
|
widget::sensor(maybe_image.handle().map_or_else(
|
||||||
|| Element::from(widget::space()),
|
|| Element::from(widget::space()),
|
||||||
|handle| widget::image(handle).filter_method(self.filter).into(),
|
|handle| widget::image(handle).into(),
|
||||||
))
|
))
|
||||||
.key(self.key)
|
.key(self.key)
|
||||||
.anticipate(500)
|
.anticipate(2000)
|
||||||
.on_show(|_size| Message::LoadImage(path.clone()))
|
.on_show(|_size| Message::LoadImage(path.clone()))
|
||||||
.on_hide(Message::UnloadImage(path.clone())),
|
.on_hide(Message::UnloadImage(path.clone())),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue