pidgin/gtkblist.c

changeset 30039
9cd7672bae4f
parent 29935
d28b5dcc7554
child 30267
ba6674f1cff1
equal deleted inserted replaced
30038:301a6e08a5a5 30039:9cd7672bae4f
7459 PidginBuddyList *pidgin_blist_get_default_gtk_blist() 7459 PidginBuddyList *pidgin_blist_get_default_gtk_blist()
7460 { 7460 {
7461 return gtkblist; 7461 return gtkblist;
7462 } 7462 }
7463 7463
7464 static void account_signon_cb(PurpleConnection *gc, gpointer z) 7464 static gboolean autojoin_cb(PurpleConnection *gc, gpointer data)
7465 { 7465 {
7466 PurpleAccount *account = purple_connection_get_account(gc); 7466 PurpleAccount *account = purple_connection_get_account(gc);
7467 PurpleBlistNode *gnode, *cnode; 7467 PurpleBlistNode *gnode, *cnode;
7468 for(gnode = purple_get_blist()->root; gnode; gnode = gnode->next) 7468 for(gnode = purple_get_blist()->root; gnode; gnode = gnode->next)
7469 { 7469 {
7485 (purple_blist_node_get_string((PurpleBlistNode*)chat, 7485 (purple_blist_node_get_string((PurpleBlistNode*)chat,
7486 "gtk-autojoin") != NULL)) 7486 "gtk-autojoin") != NULL))
7487 serv_join_chat(gc, chat->components); 7487 serv_join_chat(gc, chat->components);
7488 } 7488 }
7489 } 7489 }
7490
7491 /* Stop processing; we handled the autojoins. */
7492 return TRUE;
7490 } 7493 }
7491 7494
7492 void * 7495 void *
7493 pidgin_blist_get_handle() { 7496 pidgin_blist_get_handle() {
7494 static int handle; 7497 static int handle;
7560 void pidgin_blist_init(void) 7563 void pidgin_blist_init(void)
7561 { 7564 {
7562 void *gtk_blist_handle = pidgin_blist_get_handle(); 7565 void *gtk_blist_handle = pidgin_blist_get_handle();
7563 7566
7564 cached_emblems = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); 7567 cached_emblems = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
7565
7566 purple_signal_connect(purple_connections_get_handle(), "signed-on",
7567 gtk_blist_handle, PURPLE_CALLBACK(account_signon_cb),
7568 NULL);
7569 7568
7570 /* Initialize prefs */ 7569 /* Initialize prefs */
7571 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/blist"); 7570 purple_prefs_add_none(PIDGIN_PREFS_ROOT "/blist");
7572 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons", TRUE); 7571 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_buddy_icons", TRUE);
7573 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups", FALSE); 7572 purple_prefs_add_bool(PIDGIN_PREFS_ROOT "/blist/show_empty_groups", FALSE);
7623 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", 7622 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off",
7624 gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL); 7623 gtk_blist_handle, PURPLE_CALLBACK(buddy_signonoff_cb), NULL);
7625 purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed", 7624 purple_signal_connect(purple_blist_get_handle(), "buddy-privacy-changed",
7626 gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL); 7625 gtk_blist_handle, PURPLE_CALLBACK(pidgin_blist_update_privacy_cb), NULL);
7627 7626
7627 purple_signal_connect_priority(purple_connections_get_handle(), "autojoin",
7628 gtk_blist_handle, PURPLE_CALLBACK(autojoin_cb),
7629 NULL, PURPLE_SIGNAL_PRIORITY_HIGHEST);
7628 } 7630 }
7629 7631
7630 void 7632 void
7631 pidgin_blist_uninit(void) { 7633 pidgin_blist_uninit(void) {
7632 g_hash_table_destroy(cached_emblems); 7634 g_hash_table_destroy(cached_emblems);
7737 my_name = purple_chat_get_name((PurpleChat*)node); 7739 my_name = purple_chat_get_name((PurpleChat*)node);
7738 } else { 7740 } else {
7739 sort_method_none(node, blist, groupiter, cur, iter); 7741 sort_method_none(node, blist, groupiter, cur, iter);
7740 return; 7742 return;
7741 } 7743 }
7742
7743 7744
7744 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) { 7745 if (!gtk_tree_model_iter_children(GTK_TREE_MODEL(gtkblist->treemodel), &more_z, &groupiter)) {
7745 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0); 7746 gtk_tree_store_insert(gtkblist->treemodel, iter, &groupiter, 0);
7746 return; 7747 return;
7747 } 7748 }

mercurial