Compare commits

..

View file

@ -79,13 +79,9 @@ impl State {
} }
} }
Key::Character("o") => match self.pick_and_load_image() { Key::Character("o") => {
Ok(task) => { return self.pick_and_load_image();
self.error = None; }
return task;
}
Err(e) => self.error = Some(e),
},
Key::Character("r") => { Key::Character("r") => {
match self.image.as_ref() { match self.image.as_ref() {
@ -119,13 +115,9 @@ impl State {
}, },
Message::Event(iced::Event::Window(window_event)) => match window_event { Message::Event(iced::Event::Window(window_event)) => match window_event {
window::Event::FileDropped(file) => match self.load_image(file) { window::Event::FileDropped(file) => {
Ok(task) => { return self.load_image(file);
self.error = None; }
return task;
}
Err(e) => self.error = Some(e),
},
// ignore unused window events // ignore unused window events
_ => {} _ => {}
@ -138,14 +130,28 @@ impl State {
Task::none() Task::none()
} }
fn load_image(&mut self, path: impl AsRef<Path>) -> Result<Task<Message>, String> { #[must_use]
utils::load_image(path).and_then(|image| { fn load_image(&mut self, path: impl AsRef<Path>) -> Task<Message> {
self.image = Some(image); let task;
Ok(self.allocate_image()) (self.error, task) = match utils::load_image(path) {
}) Ok(image) => {
self.image = Some(image);
(None, self.allocate_image())
}
Err(e) => (Some(e), Task::none()),
};
task
} }
fn pick_and_load_image(&mut self) -> Result<Task<Message>, String> { #[must_use]
utils::pick_image().and_then(|path| self.load_image(path)) fn pick_and_load_image(&mut self) -> Task<Message> {
let task;
(self.error, task) = match utils::pick_image() {
Ok(path) => (None, self.load_image(path)),
Err(e) => (Some(e), Task::none()),
};
task
} }
fn save_image(&mut self) { fn save_image(&mut self) {
@ -170,18 +176,11 @@ impl State {
fn subscription(&self) -> Subscription<Message> { fn subscription(&self) -> Subscription<Message> {
event::listen().map(Message::Event) event::listen().map(Message::Event)
} }
fn title(&self) -> String {
match self.image.as_ref() {
Some(image) => format!("imagey {}x{}", image.width(), image.height()),
None => format!("imagey"),
}
}
} }
fn main() -> Result<(), iced::Error> { fn main() -> Result<(), iced::Error> {
iced::application(State::new, State::update, State::view) iced::application(State::new, State::update, State::view)
.subscription(State::subscription) .subscription(State::subscription)
.title(State::title)
.theme(Theme::custom( .theme(Theme::custom(
"custom", "custom",
theme::Palette { theme::Palette {