[krb5-auth-dialog: 5/15] ka-pwdialog: Add GtkEntry via ui file




commit 12b227a11770c2d14cfcfe209d83598b8680242b
Author: Guido Günther <agx sigxcpu org>
Date:   Sat Feb 6 17:33:11 2021 +0100

    ka-pwdialog: Add GtkEntry via ui file
    
    No need to open code it.

 src/ka-pwdialog.c               | 19 ++-----------------
 src/resources/ui/ka-pwdialog.ui | 13 ++++++++++++-
 2 files changed, 14 insertions(+), 18 deletions(-)
---
diff --git a/src/ka-pwdialog.c b/src/ka-pwdialog.c
index 81f371b..606cbe5 100644
--- a/src/ka-pwdialog.c
+++ b/src/ka-pwdialog.c
@@ -42,7 +42,6 @@ struct _KaPwDialogPrivate {
     /* The password dialog */
     GtkWidget *status_label;    /* the wrong password/timeout label */
     GtkWidget *krb_label;       /* krb5 passwort prompt label */
-    GtkWidget *entry_hbox;      /* hbox for the pw entry */
     GtkWidget *pw_entry;        /* password entry field */
 
     gboolean persist;           /* don't hide the dialog when creds are still valid */
@@ -116,26 +115,13 @@ ka_pwdialog_class_init (KaPwDialogClass * klass)
 
     /* Bind class to template
      */
+    g_type_ensure (GCR_TYPE_SECURE_ENTRY_BUFFER);
     gtk_widget_class_set_template_from_resource (widget_class,
                                                  "/org/gnome/krb5-auth-dialog/ui/ka-pwdialog.ui");
 
     gtk_widget_class_bind_template_child_private (widget_class, KaPwDialog, status_label);
     gtk_widget_class_bind_template_child_private (widget_class, KaPwDialog, krb_label);
-    gtk_widget_class_bind_template_child_private (widget_class, KaPwDialog, entry_hbox);
-}
-
-
-static void add_password_entry (KaPwDialogPrivate *priv)
-{
-    g_autoptr (GtkEntryBuffer) buffer = gcr_secure_entry_buffer_new ();
-
-    priv->pw_entry =
-        GTK_WIDGET (gtk_entry_new_with_buffer (buffer));
-    gtk_entry_set_visibility (GTK_ENTRY (priv->pw_entry), FALSE);
-
-    gtk_container_add (GTK_CONTAINER (priv->entry_hbox), priv->pw_entry);
-    gtk_entry_set_activates_default (GTK_ENTRY (priv->pw_entry), TRUE);
-    gtk_widget_show (priv->pw_entry);
+    gtk_widget_class_bind_template_child_private (widget_class, KaPwDialog, pw_entry);
 }
 
 
@@ -163,7 +149,6 @@ ka_pwdialog_new (void)
     pwdialog = g_object_new (KA_TYPE_PWDIALOG, "use-header-bar", use_header, NULL);
 
     pwdialog->priv->error_dialog = ka_error_dialog_new ();
-    add_password_entry (pwdialog->priv);
     return pwdialog;
 }
 
diff --git a/src/resources/ui/ka-pwdialog.ui b/src/resources/ui/ka-pwdialog.ui
index 8b8a3a1..613d08c 100644
--- a/src/resources/ui/ka-pwdialog.ui
+++ b/src/resources/ui/ka-pwdialog.ui
@@ -94,7 +94,16 @@
                             <property name="can_focus">False</property>
                             <property name="spacing">3</property>
                             <child>
-                              <placeholder/>
+                              <object class="GtkEntry" id="pw_entry">
+                               <property name="visible">True</property>
+                               <property name="can_focus">True</property>
+                               <property name="activates-default">True</property>
+                               <property name="visibility">False</property>
+                               <property name="invisible-char">●</property>
+                               <property name="input-purpose">password</property>
+                               <property name="buffer">pw_entry_buffer</property>
+                               <property name="has-focus">True</property>
+                              </object>
                             </child>
                           </object>
                           <packing>
@@ -147,4 +156,6 @@
       <action-widget response="-5">krb5_renew_button</action-widget>
     </action-widgets>
   </template>
+
+  <object class="GcrSecureEntryBuffer" id="pw_entry_buffer"/>
 </interface>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]