diff --git a/src/widgets/edit_window.rs b/src/widgets/edit_window.rs index 6e60827..007b9b8 100644 --- a/src/widgets/edit_window.rs +++ b/src/widgets/edit_window.rs @@ -21,12 +21,11 @@ use adw::prelude::*; use adw::subclass::prelude::*; use super::edit::LpEditCrop; -use super::LpImage; +use super::{LpImage, LpWindow}; use crate::deps::*; -mod imp { +mod imp { use super::*; - use crate::widgets::LpImage; #[derive(Debug, Default, gtk::CompositeTemplate, glib::Properties)] #[properties(wrapper_type = super::LpEditWindow)] @@ -34,7 +33,11 @@ mod imp { pub struct LpEditWindow { #[template_child] toolbar_view: TemplateChild, + #[template_child] + cancel: TemplateChild, + #[property(get, construct_only)] + window: OnceCell, #[property(get, construct_only)] original_image: OnceCell, } @@ -63,6 +66,14 @@ mod imp { self.toolbar_view .set_content(Some(&LpEditCrop::new(obj.original_image()))); + + self.cancel.connect_clicked(glib::clone!( + #[weak] + obj, + move |_| { + obj.window().show_image(); + } + )); } } @@ -76,8 +87,9 @@ glib::wrapper! { } impl LpEditWindow { - pub fn new(image: LpImage) -> Self { + pub fn new(window: LpWindow, image: LpImage) -> Self { glib::Object::builder() + .property("window", window) .property("original_image", image) .build() } diff --git a/src/widgets/edit_window.ui b/src/widgets/edit_window.ui index 8b39376..0f99a6e 100644 --- a/src/widgets/edit_window.ui +++ b/src/widgets/edit_window.ui @@ -3,8 +3,18 @@