# HG changeset patch # User Richard Laager # Date 1120108421 0 # Node ID a5c31b83063fe024a39bbb11a87100f379a59239 # Parent 84dd837a4445b68349651623685296876c377b59 [gaim-migrate @ 12954] Patch #1228093 from Sadrul Habib Chowdhury "This patch adds a checkbox `Save password' in the request-password dialog." -- sadrul committer: Tailor Script diff -r 84dd837a4445 -r a5c31b83063f src/account.c --- a/src/account.c Thu Jun 30 04:55:19 2005 +0000 +++ b/src/account.c Thu Jun 30 05:13:41 2005 +0000 @@ -756,29 +756,37 @@ } static void -request_password_ok_cb(GaimAccount *account, const char *entry) +request_password_ok_cb(GaimAccount *account, GaimRequestFields *fields) { + const char *entry; + gboolean remember; + + entry = gaim_request_fields_get_string(fields, "password"); + remember = gaim_request_fields_get_bool(fields, "remember"); + if (!entry || !*entry) { gaim_notify_error(account, NULL, _("Password is required to sign on."), NULL); return; } + if(remember) + gaim_account_set_remember_password(account, TRUE); + if (gaim_account_get_remember_password(account)) gaim_account_set_password(account, entry); gaim_connection_new(account, FALSE, entry); } -/* - * TODO: Make the entry box a required field, and add a - * "save password" checkbox. - */ static void request_password(GaimAccount *account) { gchar *primary; const gchar *username; + GaimRequestFieldGroup *group; + GaimRequestField *field; + GaimRequestFields *fields; /* Close any previous password request windows */ gaim_request_close_with_handle(account); @@ -786,10 +794,27 @@ username = gaim_account_get_username(account); primary = g_strdup_printf(_("Enter password for %s (%s)"), username, gaim_account_get_protocol_name(account)); - gaim_request_input(account, _("Enter Password"), primary, NULL, NULL, - FALSE, TRUE, NULL, - _("OK"), G_CALLBACK(request_password_ok_cb), - _("Cancel"), NULL, account); + + fields = gaim_request_fields_new(); + group = gaim_request_field_group_new(NULL); + gaim_request_fields_add_group(fields, group); + + field = gaim_request_field_string_new("password", _("Enter Password"), NULL, FALSE); + gaim_request_field_string_set_masked(field, TRUE); + gaim_request_field_set_required(field, TRUE); + gaim_request_field_group_add_field(group, field); + + field = gaim_request_field_bool_new("remember", _("Save password"), FALSE); + gaim_request_field_group_add_field(group, field); + + gaim_request_fields(account, + NULL, + primary, + NULL, + fields, + _("OK"), G_CALLBACK(request_password_ok_cb), + _("Cancel"), NULL, + account); g_free(primary); }