mirror of
https://gitlab.gnome.org/World/Authenticator.git
synced 2025-03-04 08:44:40 +01:00
use gtk-macros
This commit is contained in:
parent
a16205cf91
commit
7db25ac562
5 changed files with 51 additions and 90 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -8,4 +8,4 @@ src/config.rs
|
|||
src/static_resources.rs
|
||||
*.*.in~
|
||||
*.*~
|
||||
|
||||
builddir/
|
||||
|
|
|
@ -15,12 +15,10 @@ pub struct AddAccountDialog {
|
|||
impl AddAccountDialog {
|
||||
pub fn new(sender: Sender<Action>) -> Rc<Self> {
|
||||
let builder = gtk::Builder::from_resource("/com/belmoussaoui/Authenticator/add_account.ui");
|
||||
let widget: libhandy::Window = builder
|
||||
.get_object("add_dialog")
|
||||
.expect("Failed to retrieve AddAccountDialog");
|
||||
get_widget!(builder, libhandy::Window, add_dialog);
|
||||
|
||||
let add_account_dialog = Rc::new(Self {
|
||||
widget,
|
||||
widget: add_dialog,
|
||||
builder,
|
||||
sender,
|
||||
});
|
||||
|
@ -36,14 +34,6 @@ impl AddAccountDialog {
|
|||
account.insert()
|
||||
}
|
||||
|
||||
fn notify_err(&self, error_msg: &str) {
|
||||
get_widget!(self.builder, gtk::Revealer, notification);
|
||||
get_widget!(self.builder, gtk::Label, notification_msg);
|
||||
|
||||
notification_msg.set_text(error_msg);
|
||||
notification.set_reveal_child(true); // Display the notification
|
||||
}
|
||||
|
||||
fn setup_signals(&self) {
|
||||
get_widget!(self.builder, gtk::Entry, username_entry);
|
||||
get_widget!(self.builder, gtk::Entry, token_entry);
|
||||
|
@ -65,19 +55,15 @@ impl AddAccountDialog {
|
|||
|
||||
fn setup_actions(&self, s: Rc<Self>) {
|
||||
let actions = gio::SimpleActionGroup::new();
|
||||
let back = gio::SimpleAction::new("back", None);
|
||||
let sender = self.sender.clone();
|
||||
|
||||
let weak_dialog = self.widget.downgrade();
|
||||
back.connect_activate(move |_, _| {
|
||||
if let Some(dialog) = weak_dialog.upgrade() {
|
||||
action!(
|
||||
actions,
|
||||
"back",
|
||||
clone!(@weak self.widget as dialog => move |_, _| {
|
||||
dialog.destroy();
|
||||
}
|
||||
});
|
||||
actions.add_action(&back);
|
||||
})
|
||||
);
|
||||
|
||||
let save = gio::SimpleAction::new("save", None);
|
||||
|
||||
save.connect_activate(clone!(@strong self.builder as builder => move |_, _| {
|
||||
get_widget!(builder, gtk::Entry, username_entry);
|
||||
get_widget!(builder, gtk::Entry, token_entry);
|
||||
|
@ -86,12 +72,6 @@ impl AddAccountDialog {
|
|||
// get_widget!(builder, gtk::Entry, period_entry);
|
||||
// get_widget!(builder, gtk::Entry, algorithm_model);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
let new_account = NewAccount {
|
||||
username: username_entry.get_text().unwrap().to_string(),
|
||||
|
@ -109,12 +89,14 @@ impl AddAccountDialog {
|
|||
save.set_enabled(false);
|
||||
actions.add_action(&save);
|
||||
|
||||
let scan_qr = gio::SimpleAction::new("scan-qr", None);
|
||||
let sender = self.sender.clone();
|
||||
scan_qr.connect_activate(move |_, _| {
|
||||
action!(
|
||||
actions,
|
||||
"sqcan-qr",
|
||||
clone!(@strong self.sender as sender => move |_, _| {
|
||||
// sender.send(Action::OpenAddAccountDialog).unwrap();
|
||||
});
|
||||
actions.add_action(&scan_qr);
|
||||
|
||||
})
|
||||
);
|
||||
self.widget.insert_action_group("add", Some(&actions));
|
||||
}
|
||||
|
||||
|
|
|
@ -21,48 +21,40 @@ impl<'a> AccountsList<'a> {
|
|||
pub fn new(model: &'a AccountsModel, provider: &'a Provider, sender: Sender<Action>) -> Self {
|
||||
let builder =
|
||||
gtk::Builder::from_resource("/com/belmoussaoui/Authenticator/accounts_list.ui");
|
||||
let widget: gtk::Box = builder
|
||||
.get_object("accounts_list")
|
||||
.expect("Failed to retrieve accounts_list");
|
||||
let accounts_list = Self {
|
||||
widget,
|
||||
get_widget!(builder, gtk::Box, accounts_list);
|
||||
|
||||
let accounts = Self {
|
||||
widget: accounts_list,
|
||||
builder,
|
||||
sender,
|
||||
model,
|
||||
provider,
|
||||
};
|
||||
accounts_list.init();
|
||||
accounts_list
|
||||
accounts.init();
|
||||
accounts
|
||||
}
|
||||
|
||||
fn init(&self) {
|
||||
let provider_name: gtk::Label = self
|
||||
.builder
|
||||
.get_object("provider_name")
|
||||
.expect("Failed to retrieve provider_name");
|
||||
get_widget!(self.builder, gtk::Label, provider_name);
|
||||
provider_name.set_text(&self.provider.name);
|
||||
|
||||
let listbox: gtk::ListBox = self
|
||||
.builder
|
||||
.get_object("listbox")
|
||||
.expect("Failed to retrieve listbox");
|
||||
let sender = self.sender.clone();
|
||||
|
||||
get_widget!(self.builder, gtk::ListBox, listbox);
|
||||
listbox.bind_model(
|
||||
Some(&self.model.model),
|
||||
Some(Box::new(move |account: &glib::Object| {
|
||||
Some(Box::new(
|
||||
clone!(@strong self.sender as sender => move |account: &glib::Object| {
|
||||
let account: Account = account
|
||||
.downcast_ref::<ObjectWrapper>()
|
||||
.unwrap()
|
||||
.deserialize();
|
||||
let row = AccountRow::new(account, sender.clone());
|
||||
let sender = sender.clone();
|
||||
/*row.set_on_click_callback(move |_, _| {
|
||||
// sender.send(Action::LoadChapter(chapter.clone())).unwrap();
|
||||
Inhibit(false)
|
||||
});*/
|
||||
row.widget.upcast::<gtk::Widget>()
|
||||
})),
|
||||
}),
|
||||
)),
|
||||
);
|
||||
|
||||
listbox.set_header_func(Some(Box::new(
|
||||
|
@ -70,7 +62,6 @@ impl<'a> AccountsList<'a> {
|
|||
if let Some(row_before) = row2 {
|
||||
let separator = gtk::Separator::new(gtk::Orientation::Horizontal);
|
||||
row1.set_header(Some(&separator));
|
||||
separator.show();
|
||||
}
|
||||
},
|
||||
)));
|
||||
|
|
|
@ -13,26 +13,20 @@ pub struct AccountRow {
|
|||
impl AccountRow {
|
||||
pub fn new(account: Account, sender: Sender<Action>) -> Self {
|
||||
let builder = gtk::Builder::from_resource("/com/belmoussaoui/Authenticator/account_row.ui");
|
||||
let widget: gtk::ListBoxRow = builder
|
||||
.get_object("account_row")
|
||||
.expect("Failed to load library_row object");
|
||||
get_widget!(builder, gtk::ListBoxRow, account_row);
|
||||
|
||||
let account_row = Self {
|
||||
widget,
|
||||
let row = Self {
|
||||
widget: account_row,
|
||||
builder,
|
||||
sender,
|
||||
account,
|
||||
};
|
||||
account_row.init();
|
||||
account_row
|
||||
row.init();
|
||||
row
|
||||
}
|
||||
|
||||
fn init(&self) {
|
||||
let username_label: gtk::Label = self
|
||||
.builder
|
||||
.get_object("username_label")
|
||||
.expect("Failed to retrieve username_label");
|
||||
|
||||
get_widget!(self.builder, gtk::Label, username_label);
|
||||
username_label.set_text(&self.account.username);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,27 +17,21 @@ impl ProvidersList {
|
|||
pub fn new(sender: Sender<Action>) -> Self {
|
||||
let builder =
|
||||
gtk::Builder::from_resource("/com/belmoussaoui/Authenticator/providers_list.ui");
|
||||
let widget: gtk::Box = builder
|
||||
.get_object("providers_list")
|
||||
.expect("Failed to retrieve providers_list");
|
||||
|
||||
get_widget!(builder, gtk::Box, providers_list);
|
||||
let model = RefCell::new(ProvidersModel::new());
|
||||
|
||||
let providers_list = Self {
|
||||
widget,
|
||||
let list = Self {
|
||||
widget: providers_list,
|
||||
builder,
|
||||
sender,
|
||||
model,
|
||||
};
|
||||
providers_list.init();
|
||||
providers_list
|
||||
list.init();
|
||||
list
|
||||
}
|
||||
|
||||
fn init(&self) {
|
||||
let providers_container: gtk::Box = self
|
||||
.builder
|
||||
.get_object("providers_container")
|
||||
.expect("Failed to retrieve providers_container");
|
||||
get_widget!(self.builder, gtk::Box, providers_container);
|
||||
|
||||
for (provider, accounts_model) in &self.model.borrow().model {
|
||||
if accounts_model.get_count() != 0 {
|
||||
|
|
Loading…
Add table
Reference in a new issue