namespace Reclaim { [GtkTemplate (ui = "/reclaim/EditAccountsModal.ui")] public class EditAccountsModal : Adw.Window { public unowned MainWindow main_window = null; public AccountsViewModel accounts_view_model { get; set; } [GtkChild] public unowned Gtk.Entry account_name_entry; [GtkChild] public unowned Gtk.Button account_add_button; public EditAccountsModal (MainWindow main_window, AccountsViewModel accounts_view_model) { Object ( accounts_view_model: accounts_view_model ); this.main_window = main_window; set_modal (true); set_transient_for (main_window); account_name_entry.notify["text"].connect (() => { account_add_button.sensitive = account_name_entry.get_text () != ""; }); } [GtkCallback] void on_new_account_requested () { var account = new Account (); account.name = account_name_entry.text; accounts_view_model.create_new_account (account); account_name_entry.text = ""; } } }