[fractal/get-widgets-from-ui-struct: 4/5] Make ui::AccountSettings build its own gtk::Builder
- From: Alejandro Domínguez <aledomu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal/get-widgets-from-ui-struct: 4/5] Make ui::AccountSettings build its own gtk::Builder
- Date: Thu, 31 Dec 2020 13:26:10 +0000 (UTC)
commit 95e4772e9a4ac879b199432dfeecb3790255fb8c
Author: Alejandro Domínguez <adomu net-c com>
Date: Mon Dec 7 21:19:30 2020 +0100
Make ui::AccountSettings build its own gtk::Builder
fractal-gtk/src/ui/account.rs | 82 ++++++++++++++++++++++---------------------
fractal-gtk/src/ui/mod.rs | 5 +--
2 files changed, 43 insertions(+), 44 deletions(-)
---
diff --git a/fractal-gtk/src/ui/account.rs b/fractal-gtk/src/ui/account.rs
index 9c5fa6dd..b9daf109 100644
--- a/fractal-gtk/src/ui/account.rs
+++ b/fractal-gtk/src/ui/account.rs
@@ -38,7 +38,9 @@ pub struct AccountSettings {
}
impl AccountSettings {
- pub fn new(builder: >k::Builder) -> Self {
+ pub fn new() -> Self {
+ let builder = gtk::Builder::from_resource("/org/gnome/Fractal/ui/account_settings.ui");
+
Self {
root: builder
.get_object("account_settings_box")
@@ -180,45 +182,6 @@ impl AccountSettings {
app_runtime.update_state_with(|state| state.update_username_account_settings());
}));
- fn validate_password_input(builder: >k::Builder) {
- let hint = builder
- .get_object::<gtk::Label>("password-dialog-verify-hint")
- .expect("Can't find password-dialog-verify-hint in ui file.");
- let confirm_password = builder
- .get_object::<gtk::Button>("password-dialog-apply")
- .expect("Can't find password-dialog-apply in ui file.");
- let old = builder
- .get_object::<gtk::Entry>("password-dialog-old-entry")
- .expect("Can't find password-dialog-old-entry in ui file.");
- let new = builder
- .get_object::<gtk::Entry>("password-dialog-entry")
- .expect("Can't find password-dialog-entry in ui file.");
- let verify = builder
- .get_object::<gtk::Entry>("password-dialog-verify-entry")
- .expect("Can't find password-dialog-verify-entry in ui file.");
-
- let mut empty = true;
- let mut matching = true;
- let old_p = old.get_text();
- let new_p = new.get_text();
- let verify_p = verify.get_text();
-
- if new_p != verify_p {
- matching = false;
- }
- if !new_p.is_empty() && !verify_p.is_empty() && !old_p.is_empty() {
- empty = false;
- }
-
- if matching {
- hint.hide();
- } else {
- hint.show();
- }
-
- confirm_password.set_sensitive(matching && !empty);
- }
-
// Password dialog
self.password
.connect_clicked(clone!(@strong app_runtime => move |_| {
@@ -500,3 +463,42 @@ impl AccountSettings {
dialog.hide();
}
}
+
+fn validate_password_input(builder: >k::Builder) {
+ let hint = builder
+ .get_object::<gtk::Label>("password-dialog-verify-hint")
+ .expect("Can't find password-dialog-verify-hint in ui file.");
+ let confirm_password = builder
+ .get_object::<gtk::Button>("password-dialog-apply")
+ .expect("Can't find password-dialog-apply in ui file.");
+ let old = builder
+ .get_object::<gtk::Entry>("password-dialog-old-entry")
+ .expect("Can't find password-dialog-old-entry in ui file.");
+ let new = builder
+ .get_object::<gtk::Entry>("password-dialog-entry")
+ .expect("Can't find password-dialog-entry in ui file.");
+ let verify = builder
+ .get_object::<gtk::Entry>("password-dialog-verify-entry")
+ .expect("Can't find password-dialog-verify-entry in ui file.");
+
+ let mut empty = true;
+ let mut matching = true;
+ let old_p = old.get_text();
+ let new_p = new.get_text();
+ let verify_p = verify.get_text();
+
+ if new_p != verify_p {
+ matching = false;
+ }
+ if !new_p.is_empty() && !verify_p.is_empty() && !old_p.is_empty() {
+ empty = false;
+ }
+
+ if matching {
+ hint.hide();
+ } else {
+ hint.show();
+ }
+
+ confirm_password.set_sensitive(matching && !empty);
+}
diff --git a/fractal-gtk/src/ui/mod.rs b/fractal-gtk/src/ui/mod.rs
index 7f5e678b..3a8d9219 100644
--- a/fractal-gtk/src/ui/mod.rs
+++ b/fractal-gtk/src/ui/mod.rs
@@ -110,9 +110,7 @@ impl UI {
builder
.add_from_resource("/org/gnome/Fractal/ui/password_dialog.ui")
.expect("Can't load ui file: password_dialog.ui");
- builder
- .add_from_resource("/org/gnome/Fractal/ui/account_settings.ui")
- .expect("Can't load ui file: account_settings.ui");
+ let account_settings = account::AccountSettings::new();
let main_window: libhandy::ApplicationWindow = builder
.get_object("main_window")
@@ -126,7 +124,6 @@ impl UI {
let deck = builder
.get_object::<libhandy::Deck>("main_deck")
.expect("Couldn't find main_deck in ui file");
- let account_settings = account::AccountSettings::new(&builder);
UI {
builder,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]