changeset 28313:8d413ce87e7e

propagate from branch 'im.pidgin.pidgin' (head d3334a023251e5d640dc061092a6aa2fbd14e629) to branch 'im.pidgin.cpw.darkrain42.2.6.1' (head 486137f1ff90dc17bde95423afccbbef2c1b6ad5)
author John Bailey <rekkanoryo@rekkanoryo.org>
date Sat, 18 Jul 2009 17:15:20 +0000
parents d5e2dbce5864 (diff) d6377ec7bcd8 (current diff)
children 975e213733e8
files libpurple/protocols/jabber/jabber.c
diffstat 4 files changed, 58 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/libpurple/ft.c	Sat Jul 18 16:17:32 2009 +0000
+++ b/libpurple/ft.c	Sat Jul 18 17:15:20 2009 +0000
@@ -1161,7 +1161,7 @@
 
 	if (purple_xfer_get_filename(xfer) != NULL)
 	{
-		msg = g_strdup_printf(_("You canceled the transfer of %s"),
+		msg = g_strdup_printf(_("You cancelled the transfer of %s"),
 							  purple_xfer_get_filename(xfer));
 	}
 	else
@@ -1224,12 +1224,12 @@
 
 	if (purple_xfer_get_filename(xfer) != NULL)
 	{
-		msg = g_strdup_printf(_("%s canceled the transfer of %s"),
+		msg = g_strdup_printf(_("%s cancelled the transfer of %s"),
 				buddy ? purple_buddy_get_alias(buddy) : xfer->who, purple_xfer_get_filename(xfer));
 	}
 	else
 	{
-		msg = g_strdup_printf(_("%s canceled the file transfer"),
+		msg = g_strdup_printf(_("%s cancelled the file transfer"),
 				buddy ? purple_buddy_get_alias(buddy) : xfer->who);
 	}
 	purple_xfer_conversation_write(xfer, msg, TRUE);
--- a/libpurple/protocols/jabber/jabber.c	Sat Jul 18 16:17:32 2009 +0000
+++ b/libpurple/protocols/jabber/jabber.c	Sat Jul 18 17:15:20 2009 +0000
@@ -887,7 +887,7 @@
 	if (ascii_domain == NULL) {
 		purple_connection_error_reason(gc,
 				PURPLE_CONNECTION_ERROR_INVALID_SETTINGS,
-				_("Invalid XMPP ID"));
+				_("Invalid XMPP ID. Domain is not properly internationalized."));
 		return;
 	}
 
--- a/libpurple/protocols/oscar/oscar.c	Sat Jul 18 16:17:32 2009 +0000
+++ b/libpurple/protocols/oscar/oscar.c	Sat Jul 18 17:15:20 2009 +0000
@@ -6335,6 +6335,44 @@
 }
 
 static void
+oscar_close_directim(gpointer object, gpointer ignored)
+{
+	PurpleBlistNode *node;
+	PurpleBuddy *buddy;
+	PurpleAccount *account;
+	PurpleConnection *gc;
+	PurpleConversation *conv;
+	OscarData *od;
+	PeerConnection *conn;
+	const char *name;
+
+	node = object;
+
+	g_return_if_fail(PURPLE_BLIST_NODE_IS_BUDDY(node));
+
+	buddy = (PurpleBuddy*)node;
+	name = purple_buddy_get_name(buddy);
+	account = purple_buddy_get_account(buddy);
+	gc = purple_account_get_connection(account);
+	od = gc->proto_data;
+	conn = peer_connection_find_by_type(od, name, OSCAR_CAPABILITY_DIRECTIM);
+
+	if (conn != NULL)
+	{
+		if (!conn->ready)
+			aim_im_sendch2_cancel(conn);
+
+		peer_connection_destroy(conn, OSCAR_DISCONNECT_LOCAL_CLOSED, NULL);
+
+		/* OSCAR_DISCONNECT_LOCAL_CLOSED doesn't write anything to the convo
+		 * window. Let the user know that we canceled the Direct IM. */
+		conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name);
+		purple_conversation_write(conv, NULL, _("You closed the connection."),
+		                          PURPLE_MESSAGE_SYSTEM, time(NULL));
+	}
+}
+
+static void
 oscar_get_aim_info_cb(PurpleBlistNode *node, gpointer ignore)
 {
 	PurpleBuddy *buddy;
@@ -6397,11 +6435,23 @@
 		oscar_util_name_compare(purple_account_get_username(account), bname) &&
 		PURPLE_BUDDY_IS_ONLINE(buddy))
 	{
+		PeerConnection *conn;
+		conn = peer_connection_find_by_type(od, bname, OSCAR_CAPABILITY_DIRECTIM);
+
 		if (userinfo->capabilities & OSCAR_CAPABILITY_DIRECTIM)
 		{
-			act = purple_menu_action_new(_("Direct IM"),
-			                           PURPLE_CALLBACK(oscar_ask_directim),
-			                           NULL, NULL);
+			if (conn)
+			{
+				act = purple_menu_action_new(_("Cancel Direct IM"),
+				                          PURPLE_CALLBACK(oscar_close_directim),
+				                          NULL, NULL);
+			}
+			else
+			{
+				act = purple_menu_action_new(_("Direct IM"),
+				                          PURPLE_CALLBACK(oscar_ask_directim),
+				                          NULL, NULL);
+			}
 			menu = g_list_prepend(menu, act);
 		}
 #if 0
--- a/libpurple/protocols/qq/send_file.c	Sat Jul 18 16:17:32 2009 +0000
+++ b/libpurple/protocols/qq/send_file.c	Sat Jul 18 17:15:20 2009 +0000
@@ -730,7 +730,7 @@
 	*/
 	filename = g_path_get_basename(purple_xfer_get_local_filename(qd->xfer));
 	msg = g_strdup_printf
-		(_("%d canceled the transfer of %s"),
+		(_("%d cancelled the transfer of %s"),
 		 sender_uid, filename);
 
 	purple_notify_warning (gc, _("File Send"), msg, NULL);