[geary] Clean up the password dialog
- From: Charles Lindsay <clindsay src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [geary] Clean up the password dialog
- Date: Mon, 13 Jan 2014 21:59:44 +0000 (UTC)
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]