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