Mercurial > pidgin.yaz
comparison pidgin/gtkaccount.c @ 18079:c885a9ccd301
propagate from branch 'im.pidgin.pidgin' (head 03da073664bc840f76d0cec53eea61517337c5a7)
to branch 'im.pidgin.pidgin.2.1.0' (head 2eee4d84a7977a4f51d95b9b57910625dc3e9085)
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Fri, 08 Jun 2007 13:25:28 +0000 |
parents | 84c7b697adcd 4ca97b26a8fb |
children | bb2e5f6ff2b4 |
comparison
equal
deleted
inserted
replaced
17788:ef3f817cac91 | 18079:c885a9ccd301 |
---|---|
478 l != NULL && l2 != NULL; | 478 l != NULL && l2 != NULL; |
479 l = l->prev, l2 = l2->prev) { | 479 l = l->prev, l2 = l2->prev) { |
480 | 480 |
481 GtkWidget *entry = l->data; | 481 GtkWidget *entry = l->data; |
482 PurpleAccountUserSplit *split = l2->data; | 482 PurpleAccountUserSplit *split = l2->data; |
483 const char *value = NULL, *protocol = NULL; | 483 const char *value = NULL; |
484 char *c; | 484 char *c; |
485 | 485 |
486 if (dialog->account != NULL) { | 486 if (dialog->account != NULL) { |
487 c = strrchr(username, | 487 if(purple_account_user_split_get_reverse(split)) |
488 c = strrchr(username, | |
489 purple_account_user_split_get_separator(split)); | |
490 else | |
491 c = strchr(username, | |
488 purple_account_user_split_get_separator(split)); | 492 purple_account_user_split_get_separator(split)); |
489 | 493 |
490 if (c != NULL) { | 494 if (c != NULL) { |
491 *c = '\0'; | 495 *c = '\0'; |
492 c++; | 496 c++; |
498 value = purple_account_user_split_get_default_value(split); | 502 value = purple_account_user_split_get_default_value(split); |
499 | 503 |
500 /* Google Talk default domain hackery! */ | 504 /* Google Talk default domain hackery! */ |
501 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu)); | 505 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu)); |
502 item = gtk_menu_get_active(GTK_MENU(menu)); | 506 item = gtk_menu_get_active(GTK_MENU(menu)); |
503 protocol = g_object_get_data(G_OBJECT(item), "protocol"); | 507 if (value == NULL && g_object_get_data(G_OBJECT(item), "fake") && |
504 if (value == NULL && protocol != NULL && !strcmp(protocol, "prpl-fake") && | 508 !strcmp(purple_account_user_split_get_text(split), _("Domain"))) |
505 !strcmp(purple_account_user_split_get_text(split), _("Domain"))) | |
506 value = "gmail.com"; | 509 value = "gmail.com"; |
507 | 510 |
508 if (value != NULL) | 511 if (value != NULL) |
509 gtk_entry_set_text(GTK_ENTRY(entry), value); | 512 gtk_entry_set_text(GTK_ENTRY(entry), value); |
510 } | 513 } |
701 GtkCellRenderer *renderer; | 704 GtkCellRenderer *renderer; |
702 PurpleKeyValuePair *kvp; | 705 PurpleKeyValuePair *kvp; |
703 GList *l; | 706 GList *l; |
704 char buf[1024]; | 707 char buf[1024]; |
705 char *title; | 708 char *title; |
706 const char *str_value, *protocol; | 709 const char *str_value; |
707 gboolean bool_value; | 710 gboolean bool_value; |
708 | 711 |
709 if (dialog->protocol_frame != NULL) { | 712 if (dialog->protocol_frame != NULL) { |
710 gtk_widget_destroy(dialog->protocol_frame); | 713 gtk_widget_destroy(dialog->protocol_frame); |
711 dialog->protocol_frame = NULL; | 714 dialog->protocol_frame = NULL; |
827 } | 830 } |
828 | 831 |
829 /* Google Talk default domain hackery! */ | 832 /* Google Talk default domain hackery! */ |
830 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu)); | 833 menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(dialog->protocol_menu)); |
831 item = gtk_menu_get_active(GTK_MENU(menu)); | 834 item = gtk_menu_get_active(GTK_MENU(menu)); |
832 protocol = g_object_get_data(G_OBJECT(item), "protocol"); | 835 if (str_value == NULL && g_object_get_data(G_OBJECT(item), "fake") && |
833 if (str_value == NULL && protocol != NULL && !strcmp(protocol, "prpl-fake") && | |
834 !strcmp(_("Connect server"), purple_account_option_get_text(option))) | 836 !strcmp(_("Connect server"), purple_account_option_get_text(option))) |
835 str_value = "talk.google.com"; | 837 str_value = "talk.google.com"; |
836 | 838 |
837 if (str_value != NULL) | 839 if (str_value != NULL) |
838 gtk_entry_set_text(GTK_ENTRY(entry), str_value); | 840 gtk_entry_set_text(GTK_ENTRY(entry), str_value); |
1465 } | 1467 } |
1466 | 1468 |
1467 if ((dialog->plugin = purple_find_prpl(dialog->protocol_id)) != NULL) | 1469 if ((dialog->plugin = purple_find_prpl(dialog->protocol_id)) != NULL) |
1468 dialog->prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(dialog->plugin); | 1470 dialog->prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(dialog->plugin); |
1469 | 1471 |
1470 | 1472 dialog->window = win = pidgin_create_window((type == PIDGIN_ADD_ACCOUNT_DIALOG) ? _("Add Account") : _("Modify Account"), |
1471 dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL); | 1473 PIDGIN_HIG_BORDER, "account", FALSE); |
1472 gtk_window_set_role(GTK_WINDOW(win), "account"); | |
1473 | |
1474 if (type == PIDGIN_ADD_ACCOUNT_DIALOG) | |
1475 gtk_window_set_title(GTK_WINDOW(win), _("Add Account")); | |
1476 else | |
1477 gtk_window_set_title(GTK_WINDOW(win), _("Modify Account")); | |
1478 | |
1479 gtk_window_set_resizable(GTK_WINDOW(win), FALSE); | |
1480 | |
1481 gtk_container_set_border_width(GTK_CONTAINER(win), PIDGIN_HIG_BORDER); | |
1482 | 1474 |
1483 g_signal_connect(G_OBJECT(win), "delete_event", | 1475 g_signal_connect(G_OBJECT(win), "delete_event", |
1484 G_CALLBACK(account_win_destroy_cb), dialog); | 1476 G_CALLBACK(account_win_destroy_cb), dialog); |
1485 | 1477 |
1486 /* Setup the vbox */ | 1478 /* Setup the vbox */ |
1591 if (accounts_window == NULL) | 1583 if (accounts_window == NULL) |
1592 return; | 1584 return; |
1593 | 1585 |
1594 account = purple_connection_get_account(gc); | 1586 account = purple_connection_get_account(gc); |
1595 model = GTK_TREE_MODEL(accounts_window->model); | 1587 model = GTK_TREE_MODEL(accounts_window->model); |
1596 index = g_list_index(purple_accounts_get_all(), account); | 1588 index = g_list_index((GList *)purple_accounts_get_all(), account); |
1597 | 1589 |
1598 if (gtk_tree_model_iter_nth_child(model, &iter, NULL, index)) | 1590 if (gtk_tree_model_iter_nth_child(model, &iter, NULL, index)) |
1599 { | 1591 { |
1600 gtk_tree_model_get(GTK_TREE_MODEL(accounts_window->model), &iter, | 1592 gtk_tree_model_get(GTK_TREE_MODEL(accounts_window->model), &iter, |
1601 COLUMN_PULSE_DATA, &pulse_data, -1); | 1593 COLUMN_PULSE_DATA, &pulse_data, -1); |
1794 switch (position) { | 1786 switch (position) { |
1795 case GTK_TREE_VIEW_DROP_AFTER: | 1787 case GTK_TREE_VIEW_DROP_AFTER: |
1796 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: | 1788 case GTK_TREE_VIEW_DROP_INTO_OR_AFTER: |
1797 move_account_after(dialog->model, &dialog->drag_iter, | 1789 move_account_after(dialog->model, &dialog->drag_iter, |
1798 &iter); | 1790 &iter); |
1799 dest_index = g_list_index(purple_accounts_get_all(), | 1791 dest_index = g_list_index((GList *)purple_accounts_get_all(), |
1800 account) + 1; | 1792 account) + 1; |
1801 break; | 1793 break; |
1802 | 1794 |
1803 case GTK_TREE_VIEW_DROP_BEFORE: | 1795 case GTK_TREE_VIEW_DROP_BEFORE: |
1804 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: | 1796 case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE: |
1805 dest_index = g_list_index(purple_accounts_get_all(), | 1797 dest_index = g_list_index((GList *)purple_accounts_get_all(), |
1806 account); | 1798 account); |
1807 | 1799 |
1808 move_account_before(dialog->model, &dialog->drag_iter, | 1800 move_account_before(dialog->model, &dialog->drag_iter, |
1809 &iter); | 1801 &iter); |
1810 break; | 1802 break; |
2099 } | 2091 } |
2100 | 2092 |
2101 static gboolean | 2093 static gboolean |
2102 populate_accounts_list(AccountsWindow *dialog) | 2094 populate_accounts_list(AccountsWindow *dialog) |
2103 { | 2095 { |
2104 GList *l; | 2096 const GList *l; |
2105 gboolean ret = FALSE; | 2097 gboolean ret = FALSE; |
2106 GdkPixbuf *global_buddyicon = NULL; | 2098 GdkPixbuf *global_buddyicon = NULL; |
2107 const char *path; | 2099 const char *path; |
2108 | 2100 |
2109 gtk_list_store_clear(dialog->model); | 2101 gtk_list_store_clear(dialog->model); |
2303 | 2295 |
2304 static void | 2296 static void |
2305 global_buddyicon_changed(const char *name, PurplePrefType type, | 2297 global_buddyicon_changed(const char *name, PurplePrefType type, |
2306 gconstpointer value, gpointer window) | 2298 gconstpointer value, gpointer window) |
2307 { | 2299 { |
2308 GList *list; | 2300 const GList *list; |
2309 for (list = purple_accounts_get_all(); list; list = list->next) { | 2301 for (list = purple_accounts_get_all(); list; list = list->next) { |
2310 account_modified_cb(list->data, window); | 2302 account_modified_cb(list->data, window); |
2311 } | 2303 } |
2312 } | 2304 } |
2313 | 2305 |
2320 GtkWidget *bbox; | 2312 GtkWidget *bbox; |
2321 GtkWidget *sw; | 2313 GtkWidget *sw; |
2322 GtkWidget *button; | 2314 GtkWidget *button; |
2323 int width, height; | 2315 int width, height; |
2324 | 2316 |
2325 | |
2326 if (accounts_window != NULL) { | 2317 if (accounts_window != NULL) { |
2327 gtk_window_present(GTK_WINDOW(accounts_window->window)); | 2318 gtk_window_present(GTK_WINDOW(accounts_window->window)); |
2328 return; | 2319 return; |
2329 } | 2320 } |
2330 | 2321 |
2331 accounts_window = dialog = g_new0(AccountsWindow, 1); | 2322 accounts_window = dialog = g_new0(AccountsWindow, 1); |
2332 | 2323 |
2333 width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width"); | 2324 width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/width"); |
2334 height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/height"); | 2325 height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/accounts/dialog/height"); |
2335 | 2326 |
2336 dialog->window = win = gtk_window_new(GTK_WINDOW_TOPLEVEL); | 2327 dialog->window = win = pidgin_create_window(_("Accounts"), PIDGIN_HIG_BORDER, "accounts", TRUE); |
2337 gtk_window_set_default_size(GTK_WINDOW(win), width, height); | 2328 gtk_window_set_default_size(GTK_WINDOW(win), width, height); |
2338 gtk_window_set_role(GTK_WINDOW(win), "accounts"); | |
2339 gtk_window_set_title(GTK_WINDOW(win), _("Accounts")); | |
2340 gtk_container_set_border_width(GTK_CONTAINER(win), PIDGIN_HIG_BORDER); | |
2341 | 2329 |
2342 g_signal_connect(G_OBJECT(win), "delete_event", | 2330 g_signal_connect(G_OBJECT(win), "delete_event", |
2343 G_CALLBACK(accedit_win_destroy_cb), accounts_window); | 2331 G_CALLBACK(accedit_win_destroy_cb), accounts_window); |
2344 g_signal_connect(G_OBJECT(win), "configure_event", | 2332 g_signal_connect(G_OBJECT(win), "configure_event", |
2345 G_CALLBACK(configure_cb), accounts_window); | 2333 G_CALLBACK(configure_cb), accounts_window); |
2438 static void | 2426 static void |
2439 add_user_cb(PidginAccountAddUserData *data) | 2427 add_user_cb(PidginAccountAddUserData *data) |
2440 { | 2428 { |
2441 PurpleConnection *gc = purple_account_get_connection(data->account); | 2429 PurpleConnection *gc = purple_account_get_connection(data->account); |
2442 | 2430 |
2443 if (g_list_find(purple_connections_get_all(), gc)) | 2431 if (g_list_find((GList *)purple_connections_get_all(), gc)) |
2444 { | 2432 { |
2445 purple_blist_request_add_buddy(data->account, data->username, | 2433 purple_blist_request_add_buddy(data->account, data->username, |
2446 NULL, data->alias); | 2434 NULL, data->alias); |
2447 } | 2435 } |
2448 | 2436 |