diff pidgin/gtkaccount.c @ 18020:3c4811489e30

propagate from branch 'im.pidgin.rlaager.merging.for_2_1_0' (head 24ee3feb7b0e68036eebb50b90278e581fea942a) to branch 'im.pidgin.pidgin.2.1.0' (head 996b7212bd0ff741b6d317a46490f9e903bd624d)
author Richard Laager <rlaager@wiktel.com>
date Mon, 28 May 2007 08:06:28 +0000
parents 92c3c2eeba87 3e611b1b379c
children 92e27556160c
line wrap: on
line diff
--- a/pidgin/gtkaccount.c	Sun May 20 18:40:58 2007 +0000
+++ b/pidgin/gtkaccount.c	Mon May 28 08:06:28 2007 +0000
@@ -388,6 +388,8 @@
 	GtkWidget *hbox;
 	GtkWidget *vbox;
 	GtkWidget *entry;
+	GtkWidget *menu;
+	GtkWidget *item;
 	GList *user_splits;
 	GList *l, *l2;
 	char *username = NULL;
@@ -474,7 +476,7 @@
 
 		GtkWidget *entry = l->data;
 		PurpleAccountUserSplit *split = l2->data;
-		const char *value = NULL;
+		const char *value = NULL, *protocol = NULL;
 		char *c;
 
 		if (dialog->account != NULL) {
@@ -488,10 +490,17 @@
 				value = c;
 			}
 		}
-
 		if (value == NULL)
 			value = purple_account_user_split_get_default_value(split);
 
+		/* Google Talk default domain hackery! */
+		menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
+		item = gtk_menu_get_active(GTK_MENU(menu));
+		protocol = g_object_get_data(G_OBJECT(item), "protocol");
+		if (value == NULL && !strcmp(protocol, "prpl-fake") && 
+			!strcmp(purple_account_user_split_get_text(split), _("Domain")))
+			value = "gmail.com";
+
 		if (value != NULL)
 			gtk_entry_set_text(GTK_ENTRY(entry), value);
 	}
@@ -680,7 +689,7 @@
 {
 	PurpleAccountOption *option;
 	PurpleAccount *account;
-	GtkWidget *frame, *vbox, *check, *entry, *combo;
+	GtkWidget *frame, *vbox, *check, *entry, *combo, *menu, *item;
 	const GList *list, *node;
 	gint i, idx, int_value;
 	GtkListStore *model;
@@ -690,7 +699,7 @@
 	GList *l;
 	char buf[1024];
 	char *title;
-	const char *str_value;
+	const char *str_value, *protocol;
 	gboolean bool_value;
 
 	if (dialog->protocol_frame != NULL) {
@@ -813,6 +822,14 @@
 						gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR);
 				}
 
+				/* Google Talk default domain hackery! */
+				menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
+				item = gtk_menu_get_active(GTK_MENU(menu));
+				protocol = g_object_get_data(G_OBJECT(item), "protocol");
+				if (str_value == NULL && !strcmp(protocol, "prpl-fake") &&
+					!strcmp(_("Connect server"),  purple_account_option_get_text(option)))
+					str_value = "talk.google.com";	
+		
 				if (str_value != NULL)
 					gtk_entry_set_text(GTK_ENTRY(entry), str_value);