Mercurial > pidgin
changeset 23160:e0e57b83b359
propagate from branch 'im.pidgin.pidgin' (head a9b83251335ed42daf54164bf8c5120166f0e589)
to branch 'im.pidgin.pidgin.next.minor' (head d98aba6eab4b0cb6e15e1a1dc7ca8163c6d03f52)
author | Evan Schoenberg <evan.s@dreskin.net> |
---|---|
date | Wed, 21 May 2008 12:29:27 +0000 |
parents | 02ef6c5c6650 (diff) 25161f5ea347 (current diff) |
children | 99ef50c8da91 |
files | |
diffstat | 2 files changed, 29 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/finch/gntaccount.c Wed May 21 02:09:00 2008 +0000 +++ b/finch/gntaccount.c Wed May 21 12:29:27 2008 +0000 @@ -43,6 +43,7 @@ #include <notify.h> #include <plugin.h> #include <request.h> +#include <savedstatuses.h> #include "gntaccount.h" #include "gntblist.h" @@ -67,7 +68,7 @@ GntWidget *screenname; GntWidget *password; GntWidget *alias; - + GntWidget *splits; GList *split_entries; @@ -76,6 +77,7 @@ GntWidget *newmail; GntWidget *remember; + GntWidget *regserver; } AccountEditDialog; /* This is necessary to close an edit-dialog when an account is deleted */ @@ -125,7 +127,7 @@ _("Username of an account must be non-empty.")); return; } - + username = g_string_new(value); if (prplinfo != NULL) @@ -183,7 +185,7 @@ if (prplinfo) { GList *iter, *entries; - + for (iter = prplinfo->protocol_options, entries = dialog->prpl_entries; iter && entries; iter = iter->next, entries = entries->next) { @@ -228,6 +230,20 @@ gnt_box_give_focus_to_child(GNT_BOX(accounts.window), accounts.tree); } + if (prplinfo && prplinfo->register_user && + gnt_check_box_get_checked(GNT_CHECK_BOX(dialog->regserver))) { + purple_account_register(account); + } else if (dialog->account == NULL) { + /* This is a new account. Set it to the current status. */ + /* Xerox from gtkaccount.c :D */ + const PurpleSavedStatus *saved_status; + saved_status = purple_savedstatus_get_current(); + if (saved_status != NULL) { + purple_savedstatus_activate_for_account(saved_status, account); + purple_account_set_enabled(account, FINCH_UI, TRUE); + } + } + gnt_widget_destroy(dialog->window); } @@ -419,6 +435,11 @@ } } } + + /* Show the registration checkbox only in a new account dialog, + * and when the selected prpl has the support for it. */ + gnt_widget_set_visible(dialog->regserver, account == NULL && + prplinfo->register_user != NULL); } static void @@ -559,6 +580,10 @@ gnt_box_add_widget(GNT_BOX(window), dialog->remember); gnt_box_add_widget(GNT_BOX(window), dialog->newmail); + /* Register checkbox */ + dialog->regserver = gnt_check_box_new(_("Create this account on the server")); + gnt_box_add_widget(GNT_BOX(window), dialog->regserver); + gnt_box_add_widget(GNT_BOX(window), gnt_line_new(FALSE)); /* The advanced box */
--- a/libpurple/protocols/jabber/message.c Wed May 21 02:09:00 2008 +0000 +++ b/libpurple/protocols/jabber/message.c Wed May 21 12:29:27 2008 +0000 @@ -416,7 +416,7 @@ if(!jm->error) jm->error = g_strdup_printf("%s%s%s", text ? text : "", - text && code_text ? " " : "", + text && code_txt ? " " : "", code_txt ? code_txt : ""); g_free(code_txt);