From 4037b124d2a9dd21dccf2f30d2a5901c30c08e97 Mon Sep 17 00:00:00 2001 From: Sophie Herold Date: Thu, 20 Apr 2023 21:40:55 +0200 Subject: [PATCH] window: Properties button insensitive for no image Make the toggle button insensitve if no image is shown. Also close the properties if no image is shown anymore. Closes #60 Part-of: --- data/gtk/window.ui | 2 +- src/window.rs | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/data/gtk/window.ui b/data/gtk/window.ui index cfb9a8b..359fd71 100644 --- a/data/gtk/window.ui +++ b/data/gtk/window.ui @@ -87,7 +87,7 @@ - + open-menu-symbolic Main Menu True diff --git a/src/window.rs b/src/window.rs index acf46ff..0392f40 100644 --- a/src/window.rs +++ b/src/window.rs @@ -72,8 +72,6 @@ mod imp { #[template_child] pub(super) properties_button: TemplateChild, #[template_child] - pub(super) menu_button: TemplateChild, - #[template_child] pub(super) toast_overlay: TemplateChild, #[template_child] pub(super) stack: TemplateChild, @@ -238,7 +236,7 @@ mod imp { // and keeps the others usable gtk::WindowGroup::new().add_window(&*obj); - obj.set_actions_enabled(false); + obj.images_available(); let current_image_signals = self.image_view.current_image_signals(); // clone! is a macro from glib-rs that allows @@ -596,15 +594,18 @@ impl LpWindow { fn images_available(&self) { let imp = self.imp(); - if imp.image_view.current_page().is_some() { - imp.stack.set_visible_child(&*imp.image_view); - self.set_actions_enabled(true); - imp.image_view.grab_focus(); + let shows_image = imp.image_view.current_page().is_some(); + imp.properties_button.set_sensitive(shows_image); + self.set_actions_enabled(shows_image); + + if shows_image { + imp.stack.set_visible_child(&*imp.image_view); + imp.image_view.grab_focus(); self.queue_hide_controls(); } else { + imp.properties_button.set_active(false); imp.stack.set_visible_child(&*imp.status_page); - self.set_actions_enabled(false); imp.status_page.grab_focus(); } }