diff --git a/data/resources/ui/window.ui b/data/resources/ui/window.ui index 05c2cca..6c01608 100644 --- a/data/resources/ui/window.ui +++ b/data/resources/ui/window.ui @@ -45,7 +45,7 @@ True - win.add-account + win.add_account list-add-symbolic diff --git a/src/application.rs b/src/application.rs index c80c059..777faf3 100644 --- a/src/application.rs +++ b/src/application.rs @@ -211,7 +211,7 @@ mod imp { app.set_accels_for_action("app.preferences", &["comma"]); app.set_accels_for_action("win.show-help-overlay", &["question"]); app.set_accels_for_action("win.search", &["f"]); - app.set_accels_for_action("win.add-account", &["n"]); + app.set_accels_for_action("win.add_account", &["n"]); app.set_accels_for_action("add.scan-qr", &["t"]); app.set_locked(has_set_password); diff --git a/src/widgets/window.rs b/src/widgets/window.rs index 561c9e0..dcfa447 100644 --- a/src/widgets/window.rs +++ b/src/widgets/window.rs @@ -10,7 +10,7 @@ use glib::signal::Inhibit; use glib::subclass::prelude::*; use glib::{clone, glib_object_subclass, glib_wrapper}; use gtk::{prelude::*, CompositeTemplate}; -use gtk_macros::action; +use gtk_macros::{action, get_action}; use once_cell::sync::OnceCell; #[derive(PartialEq, Debug)] @@ -257,11 +257,14 @@ impl Window { action!( self, - "add-account", + "add_account", clone!(@weak self as win => move |_,_| { win.open_add_account(); }) ); + app.bind_property("locked", &get_action!(self, @add_account), "enabled") + .flags(glib::BindingFlags::INVERT_BOOLEAN | glib::BindingFlags::SYNC_CREATE) + .build(); let password_entry = self_.password_entry.get(); action!(