Mercurial > pidgin
changeset 30685:dd430f788bdc
Allow setting the name of the current location. The default is still Pidgin
because I have no idea how to determine the "Computer Description" that the
official client uses by default (and I'm not even sure it exists on all
platforms).
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Tue, 15 Dec 2009 03:58:03 +0000 |
parents | b4dc2d27f24e |
children | c1e44e9a1110 |
files | libpurple/protocols/msn/msn.c libpurple/protocols/msn/notification.c |
diffstat | 2 files changed, 48 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/msn/msn.c Tue Dec 15 03:53:11 2009 +0000 +++ b/libpurple/protocols/msn/msn.c Tue Dec 15 03:58:03 2009 +0000 @@ -359,6 +359,42 @@ } static void +set_endpoint_cb(PurpleConnection *pc, const char *entry) +{ + MsnSession *session; + PurpleAccount *account; + + session = purple_connection_get_protocol_data(pc); + account = purple_connection_get_account(pc); + + /* Empty endpoint names are not allowed */ + if (!entry || !*entry) + return; + + purple_account_set_string(account, "endpoint-name", entry); + msn_notification_send_uux_private_endpointdata(session); +} + +static void +msn_show_set_endpoint_name(PurplePluginAction *action) +{ + PurpleConnection *pc; + PurpleAccount *account; + + pc = (PurpleConnection *)action->context; + account = purple_connection_get_account(pc); + + purple_request_input(pc, NULL, _("Set your location name."), + _("This is the name that identifies this location."), + purple_account_get_string(account, "endpoint-name", NULL), + FALSE, FALSE, NULL, + _("OK"), G_CALLBACK(set_endpoint_cb), + _("Cancel"), NULL, + account, NULL, NULL, + pc); +} + +static void msn_show_set_home_phone(PurplePluginAction *action) { PurpleConnection *gc; @@ -931,6 +967,11 @@ m = g_list_append(m, act); m = g_list_append(m, NULL); + act = purple_plugin_action_new(_("Set Location Name..."), + msn_show_set_endpoint_name); + m = g_list_append(m, act); + m = g_list_append(m, NULL); + act = purple_plugin_action_new(_("Set Home Phone Number..."), msn_show_set_home_phone); m = g_list_append(m, act); @@ -1065,6 +1106,10 @@ username = purple_account_get_string(account, "display-name", NULL); purple_connection_set_display_name(gc, username); + if (purple_account_get_string(account, "endpoint-name", NULL) == NULL) { + purple_account_set_string(account, "endpoint-name", "Pidgin"); + } + if (!msn_session_connect(session, host, port, http_method)) purple_connection_error_reason(gc, PURPLE_CONNECTION_ERROR_NETWORK_ERROR,
--- a/libpurple/protocols/msn/notification.c Tue Dec 15 03:53:11 2009 +0000 +++ b/libpurple/protocols/msn/notification.c Tue Dec 15 03:58:03 2009 +0000 @@ -1844,6 +1844,7 @@ void msn_notification_send_uux_private_endpointdata(MsnSession *session) { xmlnode *private; + const char *name; xmlnode *epname; xmlnode *idle; xmlnode *client_type; @@ -1853,9 +1854,9 @@ private = xmlnode_new("PrivateEndpointData"); - /* TODO: "Pidgin" is a temp EndPointName.. we must use hostid or some.*/ + name = purple_account_get_string(session->account, "endpoint-name", NULL); epname = xmlnode_new_child(private, "EpName"); - xmlnode_insert_data(epname, "Pidgin", -1); + xmlnode_insert_data(epname, name, -1); idle = xmlnode_new_child(private, "Idle"); xmlnode_insert_data(idle, "false", -1);