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 @@
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!(