Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
7c271f8be9 |
|||
|
3f994e6184 |
|||
|
97dfa89a4a |
1 changed files with 11 additions and 10 deletions
21
src/main.rs
21
src/main.rs
|
|
@ -88,10 +88,12 @@ impl State {
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|error| widget::text(error).style(widget::text::danger));
|
.map(|error| widget::text(error).style(widget::text::danger));
|
||||||
|
|
||||||
let info = (self.infobar_shown && self.info.is_some()).then(|| {
|
let info = self.infobar_shown.then_some(()).and_then(|()| {
|
||||||
widget::container(widget::text(self.title()))
|
self.info.as_ref().map(|info| {
|
||||||
.align_x(Alignment::End)
|
widget::container(widget::text(info))
|
||||||
.width(Length::Fill)
|
.align_x(Alignment::End)
|
||||||
|
.width(Length::Fill)
|
||||||
|
})
|
||||||
});
|
});
|
||||||
|
|
||||||
widget::column![main, widget::row![error, info]]
|
widget::column![main, widget::row![error, info]]
|
||||||
|
|
@ -112,7 +114,6 @@ impl State {
|
||||||
}
|
}
|
||||||
Message::SavePathPicked(result) => {
|
Message::SavePathPicked(result) => {
|
||||||
self.error = result
|
self.error = result
|
||||||
.map_err(Cow::from)
|
|
||||||
.and_then(|path| {
|
.and_then(|path| {
|
||||||
self.image.as_ref().map_or_else(
|
self.image.as_ref().map_or_else(
|
||||||
|| Err("no image to save".into()),
|
|| Err("no image to save".into()),
|
||||||
|
|
@ -167,7 +168,7 @@ impl State {
|
||||||
|
|
||||||
Message::Yank => {
|
Message::Yank => {
|
||||||
if let Some(image) = self.image.as_ref() {
|
if let Some(image) = self.image.as_ref() {
|
||||||
return clipboard::write(utils::clipboard_image_from_rgbaimage(&image))
|
return clipboard::write(utils::clipboard_image_from_rgbaimage(image))
|
||||||
.map(Message::ImageYanked);
|
.map(Message::ImageYanked);
|
||||||
} else {
|
} else {
|
||||||
self.error = Some("no image to yank".into());
|
self.error = Some("no image to yank".into());
|
||||||
|
|
@ -182,7 +183,7 @@ impl State {
|
||||||
self.error = result.as_ref().err().map(|e| format!("{e:?}").into());
|
self.error = result.as_ref().err().map(|e| format!("{e:?}").into());
|
||||||
|
|
||||||
if let Ok(image) = result {
|
if let Ok(image) = result {
|
||||||
self.info = Some(format!("{}x{}", image.size.width, image.size.height,));
|
self.info = Some(format!("{}x{}", image.size.width, image.size.height));
|
||||||
if (image.size.width, image.size.height) < (100, 100) {
|
if (image.size.width, image.size.height) < (100, 100) {
|
||||||
self.image_filter = widget::image::FilterMethod::Nearest;
|
self.image_filter = widget::image::FilterMethod::Nearest;
|
||||||
}
|
}
|
||||||
|
|
@ -220,7 +221,7 @@ impl State {
|
||||||
image.width(),
|
image.width(),
|
||||||
image.height(),
|
image.height(),
|
||||||
));
|
));
|
||||||
if image.dimensions() < (100, 100) {
|
if image.dimensions() < (192, 192) {
|
||||||
self.image_filter = widget::image::FilterMethod::Nearest;
|
self.image_filter = widget::image::FilterMethod::Nearest;
|
||||||
}
|
}
|
||||||
self.image = Some(image);
|
self.image = Some(image);
|
||||||
|
|
@ -272,8 +273,8 @@ impl State {
|
||||||
Key::Character("s") => Some(Message::Save),
|
Key::Character("s") => Some(Message::Save),
|
||||||
Key::Character("q") => Some(Message::Quit),
|
Key::Character("q") => Some(Message::Quit),
|
||||||
|
|
||||||
Key::Character("y") | Key::Character("c") => Some(Message::Yank),
|
Key::Character("y" | "c") => Some(Message::Yank),
|
||||||
Key::Character("p") | Key::Character("v") => Some(Message::Put),
|
Key::Character("p" | "v") => Some(Message::Put),
|
||||||
|
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue