[geary] Clean up the password dialog



commit 657dce51fe1eb5c4fd1f84c4c632076af57eeebe
Author: William Jon McCann <william jon mccann gmail com>
Date:   Mon Jan 13 13:54:15 2014 -0800

    Clean up the password dialog
    
    * Remove details section
    * Fix plural problem
    * Remove unnecessary labels
    * Only allow to prompt for one password at a time, which was true in
      practice already, but the code is cleaner making that a requirement
    
    Closes: bgo #720779

 src/client/application/secret-mediator.vala |   25 +-
 src/client/dialogs/password-dialog.vala     |  113 ++------
 ui/password-dialog.glade                    |  432 +--------------------------
 3 files changed, 48 insertions(+), 522 deletions(-)
---
diff --git a/src/client/application/secret-mediator.vala b/src/client/application/secret-mediator.vala
index ef9f71c..5178f9b 100644
--- a/src/client/application/secret-mediator.vala
+++ b/src/client/application/secret-mediator.vala
@@ -65,12 +65,12 @@ public class SecretMediator : Geary.CredentialsMediator, Object {
         Geary.AccountInformation account_information,
         out string? imap_password, out string? smtp_password,
         out bool imap_remember_password, out bool smtp_remember_password) throws Error {
-        bool first_try = !account_information.imap_credentials.is_complete() ||
-            (account_information.smtp_credentials != null &&
-            !account_information.smtp_credentials.is_complete());
+        // Our dialog doesn't support asking for both at once, even though this
+        // API would indicate it does.  We need to revamp the API.
+        assert(!services.has_imap() || !services.has_smtp());
         
-        PasswordDialog password_dialog = new PasswordDialog(account_information, first_try,
-            services);
+        PasswordDialog password_dialog = new PasswordDialog(services.has_smtp(),
+            account_information, services);
         
         if (!password_dialog.run()) {
             imap_password = null;
@@ -82,10 +82,17 @@ public class SecretMediator : Geary.CredentialsMediator, Object {
         
         // password_dialog.password should never be null at this point. It will only be null when
         // password_dialog.run() returns false, in which case we have already returned.
-        imap_password = password_dialog.imap_password;
-        smtp_password = password_dialog.smtp_password;
-        imap_remember_password = password_dialog.remember_password;
-        smtp_remember_password = password_dialog.remember_password;
+        if (services.has_smtp()) {
+            imap_password = null;
+            imap_remember_password = false;
+            smtp_password = password_dialog.password;
+            smtp_remember_password = password_dialog.remember_password;
+        } else {
+            imap_password = password_dialog.password;
+            imap_remember_password = password_dialog.remember_password;
+            smtp_password = null;
+            smtp_remember_password = false;
+        }
         return true;
     }
 }
diff --git a/src/client/dialogs/password-dialog.vala b/src/client/dialogs/password-dialog.vala
index caf13d1..06ab588 100644
--- a/src/client/dialogs/password-dialog.vala
+++ b/src/client/dialogs/password-dialog.vala
@@ -13,90 +13,46 @@ public class PasswordDialog {
     // strings, and Glade doesn't support the "larger" size attribute. See this bug report for
     // details: https://bugzilla.gnome.org/show_bug.cgi?id=679006
     private const string PRIMARY_TEXT_MARKUP = "<span weight=\"bold\" size=\"larger\">%s</span>";
-    private const string PRIMARY_TEXT_FIRST_TRY = _("Please enter your email password");
-    private const string PRIMARY_TEXT_REPEATED_TRY = _("Unable to login to email server");
+    private const string PRIMARY_TEXT_FIRST_TRY = _("Please enter your password");
     
     private Gtk.Dialog dialog;
-    private Gtk.Entry entry_imap_password;
+    private Gtk.Entry entry_password;
     private Gtk.CheckButton check_remember_password;
-    private Gtk.Entry entry_smtp_password;
     private Gtk.Button ok_button;
-    private Gtk.Grid grid_imap;
-    private Gtk.Grid grid_smtp;
-    private Geary.CredentialsMediator.ServiceFlag password_flags;
     
-    public string imap_password { get; private set; default = ""; }
-    public string smtp_password { get; private set; default = ""; }
+    public string password { get; private set; default = ""; }
     public bool remember_password { get; private set; }
     
-    public PasswordDialog(Geary.AccountInformation account_information, bool first_try,
+    public PasswordDialog(bool smtp, Geary.AccountInformation account_information,
         Geary.CredentialsMediator.ServiceFlag password_flags) {
-        this.password_flags = password_flags;
         Gtk.Builder builder = GearyApplication.instance.create_builder("password-dialog.glade");
         
-        // Load dialog
         dialog = (Gtk.Dialog) builder.get_object("PasswordDialog");
         dialog.set_type_hint(Gdk.WindowTypeHint.DIALOG);
         dialog.set_default_response(Gtk.ResponseType.OK);
         
-        // Load editable widgets
-        entry_imap_password = (Gtk.Entry) builder.get_object("entry: imap password");
-        entry_smtp_password = (Gtk.Entry) builder.get_object("entry: smtp password");
+        entry_password = (Gtk.Entry) builder.get_object("entry: password");
         check_remember_password = (Gtk.CheckButton) builder.get_object("check: remember_password");
         
-        // Load non-editable widgets
-        Gtk.Label label_real_name = (Gtk.Label) builder.get_object("label: real_name");
-        Gtk.Label label_service = (Gtk.Label) builder.get_object("label: service");
-        
-        grid_imap = (Gtk.Grid) builder.get_object("grid: imap");
-        Gtk.Label label_imap_username = (Gtk.Label) builder.get_object("label: imap username");
-        Gtk.Label label_imap_server = (Gtk.Label) builder.get_object("label: imap server");
-        Gtk.Label label_imap_port = (Gtk.Label) builder.get_object("label: imap port");
-        Gtk.Label label_imap_encryption = (Gtk.Label) builder.get_object("label: imap encryption");
-        
-        grid_smtp = (Gtk.Grid) builder.get_object("grid: smtp");
-        Gtk.Label label_smtp_username = (Gtk.Label) builder.get_object("label: smtp username");
-        Gtk.Label label_smtp_server = (Gtk.Label) builder.get_object("label: smtp server");
-        Gtk.Label label_smtp_port = (Gtk.Label) builder.get_object("label: smtp port");
-        Gtk.Label label_smtp_encryption = (Gtk.Label) builder.get_object("label: smtp encryption");
+        Gtk.Label label_username = (Gtk.Label) builder.get_object("label: username");
+        Gtk.Label label_smtp = (Gtk.Label) builder.get_object("label: smtp");
         
         // Load translated text for labels with markup unsupported by glade.
         Gtk.Label primary_text_label = (Gtk.Label) builder.get_object("primary_text_label");
-        primary_text_label.set_markup(get_primary_text_markup(first_try));
-
-        // Find server configuration information
-        Geary.Endpoint imap_endpoint;
-        Geary.Endpoint smtp_endpoint;
-        imap_endpoint = account_information.get_imap_endpoint();
-        smtp_endpoint = account_information.get_smtp_endpoint();
+        primary_text_label.set_markup(PRIMARY_TEXT_MARKUP.printf(PRIMARY_TEXT_FIRST_TRY));
 
-        string imap_server_host = imap_endpoint.host_specifier;
-        uint16 imap_server_port = imap_endpoint.default_port;
-        string smtp_server_host = smtp_endpoint.host_specifier;
-        uint16 smtp_server_port = smtp_endpoint.default_port;
-        
-        // Load initial values
-        label_real_name.set_text(account_information.real_name ?? "");
-        label_service.set_text(account_information.service_provider.display_name() ?? "");
-        
-        label_imap_username.set_text(account_information.imap_credentials.user ?? "");
-        entry_imap_password.set_text(account_information.imap_credentials.pass ?? "");
-        label_imap_server.set_text(imap_server_host);
-        label_imap_port.set_text(imap_server_port.to_string());
-        label_imap_encryption.set_text(get_security_status(imap_endpoint.flags));
-        
-        if (account_information.smtp_credentials != null) {
-            label_smtp_username.set_text(account_information.smtp_credentials.user ?? "");
-            entry_smtp_password.set_text(account_information.smtp_credentials.pass ?? "");
+        if (smtp) {
+            label_username.set_text(account_information.smtp_credentials.user ?? "");
+            entry_password.set_text(account_information.smtp_credentials.pass ?? "");
+        } else {
+            label_username.set_text(account_information.imap_credentials.user ?? "");
+            entry_password.set_text(account_information.imap_credentials.pass ?? "");
         }
+        check_remember_password.active = (smtp ? account_information.smtp_remember_password
+            : account_information.imap_remember_password);
+        if (smtp)
+            label_smtp.show();
         
-        label_smtp_server.set_text(smtp_server_host);
-        label_smtp_port.set_text(smtp_server_port.to_string());
-        label_smtp_encryption.set_text(get_security_status(smtp_endpoint.flags));
-        
-        check_remember_password.active = account_information.imap_remember_password;
-        
-        // Add action buttons
         Gtk.Button cancel_button = new Gtk.Button.from_stock(Stock._CANCEL);
         ok_button = new Gtk.Button.from_stock(Stock._OK);
         ok_button.can_default = true;
@@ -104,48 +60,21 @@ public class PasswordDialog {
         dialog.add_action_widget(ok_button, Gtk.ResponseType.OK);
         dialog.set_default_response(Gtk.ResponseType.OK);
         
-        // Setup listeners
         refresh_ok_button_sensitivity();
-        entry_imap_password.changed.connect(refresh_ok_button_sensitivity);
-        entry_smtp_password.changed.connect(refresh_ok_button_sensitivity);
-    }
-    
-    private string get_primary_text_markup(bool first_try) {
-        return PRIMARY_TEXT_MARKUP.printf(first_try ? PRIMARY_TEXT_FIRST_TRY : PRIMARY_TEXT_REPEATED_TRY);
+        entry_password.changed.connect(refresh_ok_button_sensitivity);
     }
     
     private void refresh_ok_button_sensitivity() {
-        ok_button.sensitive = !Geary.String.is_empty_or_whitespace(entry_imap_password.get_text()) ||
-            !Geary.String.is_empty_or_whitespace(entry_smtp_password.get_text());
-    }
-    
-    private string get_security_status(Geary.Endpoint.Flags flags) {
-        if (flags.is_all_set(Geary.Endpoint.Flags.SSL))
-            return _("SSL");
-        else if (flags.is_all_set(Geary.Endpoint.Flags.STARTTLS))
-            return _("STARTTLS");
-        
-        return _("None");
+        ok_button.sensitive = !Geary.String.is_empty_or_whitespace(entry_password.get_text());
     }
     
     public bool run() {
         dialog.show();
         dialog.get_action_area().show_all();
         
-        if (!password_flags.has_imap()) {
-            grid_imap.hide();
-            entry_smtp_password.grab_focus();
-        }
-        
-        if (!password_flags.has_smtp()) {
-            grid_smtp.hide();
-            entry_imap_password.grab_focus();
-        }
-        
         Gtk.ResponseType response = (Gtk.ResponseType) dialog.run();
         if (response == Gtk.ResponseType.OK) {
-            imap_password = entry_imap_password.get_text();
-            smtp_password = entry_smtp_password.get_text();
+            password = entry_password.get_text();
             remember_password = check_remember_password.active;
         }
         
diff --git a/ui/password-dialog.glade b/ui/password-dialog.glade
index ae9b734..131f065 100644
--- a/ui/password-dialog.glade
+++ b/ui/password-dialog.glade
@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.0 on Thu Dec 19 17:05:59 2013 -->
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
   <object class="GtkDialog" id="PasswordDialog">
@@ -24,9 +25,9 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="yalign">0</property>
-                <property name="use_fallback">True</property>
                 <property name="icon_name">dialog-password-symbolic</property>
-                <property name="icon-size">6</property>
+                <property name="use_fallback">True</property>
+                <property name="icon_size">6</property>
               </object>
               <packing>
                 <property name="expand">False</property>
@@ -56,108 +57,14 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkGrid" id="grid: imap">
-                    <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="row_spacing">6</property>
-                    <property name="column_spacing">12</property>
-                    <child>
-                      <object class="GtkLabel" id="label for: imap username">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">6</property>
-                        <property name="label" translatable="yes">Username:</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label for: imap password">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">6</property>
-                        <property name="label" translatable="yes">_Password:</property>
-                        <property name="use_underline">True</property>
-                        <property name="mnemonic_widget">entry: imap password</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label: imap username">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="hexpand">True</property>
-                        <property name="xalign">0</property>
-                        <property name="xpad">2</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkEntry" id="entry: imap password">
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="hexpand">True</property>
-                        <property name="visibility">False</property>
-                        <property name="invisible_char">•</property>
-                        <property name="activates_default">True</property>
-                        <property name="invisible_char_set">True</property>
-                      </object>
-                      <packing>
-                        <property name="left_attach">1</property>
-                        <property name="top_attach">2</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLabel" id="label: imap">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
-                        <property name="label" translatable="yes">IMAP Credentials</property>
-                        <attributes>
-                          <attribute name="weight" value="bold"/>
-                        </attributes>
-                      </object>
-                      <packing>
-                        <property name="left_attach">0</property>
-                        <property name="top_attach">0</property>
-                        <property name="width">2</property>
-                        <property name="height">1</property>
-                      </packing>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">1</property>
-                  </packing>
-                </child>
-                <child>
-                  <object class="GtkGrid" id="grid: smtp">
+                  <object class="GtkGrid" id="grid">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="row_spacing">6</property>
                     <property name="column_spacing">12</property>
                     <child>
                       <object class="GtkLabel" id="label: smtp">
-                        <property name="visible">True</property>
+                        <property name="visible">False</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="label" translatable="yes">SMTP Credentials</property>
@@ -173,7 +80,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label for: smtp username">
+                      <object class="GtkLabel" id="label for: username">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
@@ -188,7 +95,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label for: smtp password">
+                      <object class="GtkLabel" id="label for: password">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
@@ -203,7 +110,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkLabel" id="label: smtp username">
+                      <object class="GtkLabel" id="label: username">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
@@ -217,7 +124,7 @@
                       </packing>
                     </child>
                     <child>
-                      <object class="GtkEntry" id="entry: smtp password">
+                      <object class="GtkEntry" id="entry: password">
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="hexpand">True</property>
@@ -240,325 +147,8 @@
                   </packing>
                 </child>
                 <child>
-                  <object class="GtkExpander" id="expander1">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="spacing">6</property>
-                    <child>
-                      <object class="GtkGrid" id="grid2">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="row_spacing">6</property>
-                        <property name="column_spacing">12</property>
-                        <child>
-                          <object class="GtkLabel" id="label for: service">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes">Service:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">1</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label for: real_name">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">13</property>
-                            <property name="label" translatable="yes">Real name:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">2</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: service">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">1</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: real_name">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">2</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: general">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="ypad">6</property>
-                            <property name="label" translatable="yes">General</property>
-                            <attributes>
-                              <attribute name="weight" value="bold"/>
-                            </attributes>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">0</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: imap settings">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="margin_top">6</property>
-                            <property name="xalign">0</property>
-                            <property name="ypad">6</property>
-                            <property name="label" translatable="yes">IMAP settings</property>
-                            <attributes>
-                              <attribute name="weight" value="bold"/>
-                            </attributes>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">3</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label for: imap server">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes">Server:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">4</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label for: imap port">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes">Port:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">5</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label for: imap encryption">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes">SSL/TLS encryption:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">6</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: imap server">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">4</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: imap port">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">5</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: imap encryption">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">6</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: smtp settings">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="margin_top">6</property>
-                            <property name="xalign">0</property>
-                            <property name="ypad">6</property>
-                            <property name="label" translatable="yes">SMTP settings</property>
-                            <attributes>
-                              <attribute name="weight" value="bold"/>
-                            </attributes>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">7</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label for: smtp server">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes">Server:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">8</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label for: smtp port">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes">Port:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">9</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label for: smtp encryption">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                            <property name="xpad">12</property>
-                            <property name="label" translatable="yes">SSL/TLS encryption:</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">0</property>
-                            <property name="top_attach">10</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: smtp server">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">8</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: smtp port">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">9</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <object class="GtkLabel" id="label: smtp encryption">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <property name="xalign">0</property>
-                          </object>
-                          <packing>
-                            <property name="left_attach">1</property>
-                            <property name="top_attach">10</property>
-                            <property name="width">1</property>
-                            <property name="height">1</property>
-                          </packing>
-                        </child>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <child>
-                          <placeholder/>
-                        </child>
-                        <child>
-                          <placeholder/>
-                        </child>
-                      </object>
-                    </child>
-                    <child type="label">
-                      <object class="GtkLabel" id="label: details">
-                        <property name="visible">True</property>
-                        <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">_Details</property>
-                        <property name="use_underline">True</property>
-                      </object>
-                    </child>
-                  </object>
-                  <packing>
-                    <property name="expand">False</property>
-                    <property name="fill">True</property>
-                    <property name="position">3</property>
-                  </packing>
-                </child>
-                <child>
                   <object class="GtkCheckButton" id="check: remember_password">
-                    <property name="label" translatable="yes">_Remember passwords</property>
+                    <property name="label" translatable="yes">_Remember password</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -570,7 +160,7 @@
                   <packing>
                     <property name="expand">False</property>
                     <property name="fill">True</property>
-                    <property name="position">4</property>
+                    <property name="position">3</property>
                   </packing>
                 </child>
               </object>



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