comparison 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
comparison
equal deleted inserted replaced
18019:1e674c0886b1 18020:3c4811489e30
386 { 386 {
387 GtkWidget *frame; 387 GtkWidget *frame;
388 GtkWidget *hbox; 388 GtkWidget *hbox;
389 GtkWidget *vbox; 389 GtkWidget *vbox;
390 GtkWidget *entry; 390 GtkWidget *entry;
391 GtkWidget *menu;
392 GtkWidget *item;
391 GList *user_splits; 393 GList *user_splits;
392 GList *l, *l2; 394 GList *l, *l2;
393 char *username = NULL; 395 char *username = NULL;
394 396
395 if (dialog->protocol_menu != NULL) 397 if (dialog->protocol_menu != NULL)
472 l != NULL && l2 != NULL; 474 l != NULL && l2 != NULL;
473 l = l->prev, l2 = l2->prev) { 475 l = l->prev, l2 = l2->prev) {
474 476
475 GtkWidget *entry = l->data; 477 GtkWidget *entry = l->data;
476 PurpleAccountUserSplit *split = l2->data; 478 PurpleAccountUserSplit *split = l2->data;
477 const char *value = NULL; 479 const char *value = NULL, *protocol = NULL;
478 char *c; 480 char *c;
479 481
480 if (dialog->account != NULL) { 482 if (dialog->account != NULL) {
481 c = strrchr(username, 483 c = strrchr(username,
482 purple_account_user_split_get_separator(split)); 484 purple_account_user_split_get_separator(split));
486 c++; 488 c++;
487 489
488 value = c; 490 value = c;
489 } 491 }
490 } 492 }
491
492 if (value == NULL) 493 if (value == NULL)
493 value = purple_account_user_split_get_default_value(split); 494 value = purple_account_user_split_get_default_value(split);
495
496 /* Google Talk default domain hackery! */
497 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
498 item = gtk_menu_get_active(GTK_MENU(menu));
499 protocol = g_object_get_data(G_OBJECT(item), "protocol");
500 if (value == NULL && !strcmp(protocol, "prpl-fake") &&
501 !strcmp(purple_account_user_split_get_text(split), _("Domain")))
502 value = "gmail.com";
494 503
495 if (value != NULL) 504 if (value != NULL)
496 gtk_entry_set_text(GTK_ENTRY(entry), value); 505 gtk_entry_set_text(GTK_ENTRY(entry), value);
497 } 506 }
498 507
678 static void 687 static void
679 add_protocol_options(AccountPrefsDialog *dialog, GtkWidget *parent) 688 add_protocol_options(AccountPrefsDialog *dialog, GtkWidget *parent)
680 { 689 {
681 PurpleAccountOption *option; 690 PurpleAccountOption *option;
682 PurpleAccount *account; 691 PurpleAccount *account;
683 GtkWidget *frame, *vbox, *check, *entry, *combo; 692 GtkWidget *frame, *vbox, *check, *entry, *combo, *menu, *item;
684 const GList *list, *node; 693 const GList *list, *node;
685 gint i, idx, int_value; 694 gint i, idx, int_value;
686 GtkListStore *model; 695 GtkListStore *model;
687 GtkTreeIter iter; 696 GtkTreeIter iter;
688 GtkCellRenderer *renderer; 697 GtkCellRenderer *renderer;
689 PurpleKeyValuePair *kvp; 698 PurpleKeyValuePair *kvp;
690 GList *l; 699 GList *l;
691 char buf[1024]; 700 char buf[1024];
692 char *title; 701 char *title;
693 const char *str_value; 702 const char *str_value, *protocol;
694 gboolean bool_value; 703 gboolean bool_value;
695 704
696 if (dialog->protocol_frame != NULL) { 705 if (dialog->protocol_frame != NULL) {
697 gtk_widget_destroy(dialog->protocol_frame); 706 gtk_widget_destroy(dialog->protocol_frame);
698 dialog->protocol_frame = NULL; 707 dialog->protocol_frame = NULL;
811 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); 820 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE);
812 if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*') 821 if (gtk_entry_get_invisible_char(GTK_ENTRY(entry)) == '*')
813 gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR); 822 gtk_entry_set_invisible_char(GTK_ENTRY(entry), PIDGIN_INVISIBLE_CHAR);
814 } 823 }
815 824
825 /* Google Talk default domain hackery! */
826 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu));
827 item = gtk_menu_get_active(GTK_MENU(menu));
828 protocol = g_object_get_data(G_OBJECT(item), "protocol");
829 if (str_value == NULL && !strcmp(protocol, "prpl-fake") &&
830 !strcmp(_("Connect server"), purple_account_option_get_text(option)))
831 str_value = "talk.google.com";
832
816 if (str_value != NULL) 833 if (str_value != NULL)
817 gtk_entry_set_text(GTK_ENTRY(entry), str_value); 834 gtk_entry_set_text(GTK_ENTRY(entry), str_value);
818 835
819 title = g_strdup_printf("%s:", 836 title = g_strdup_printf("%s:",
820 purple_account_option_get_text(option)); 837 purple_account_option_get_text(option));