finch/gntblist.c

changeset 40897
d7f0dd7ba01e
parent 40885
87f6241da196
child 40961
f2f397659f30
equal deleted inserted replaced
40896:031172d26bef 40897:d7f0dd7ba01e
23 #include NCURSES_HEADER 23 #include NCURSES_HEADER
24 24
25 #include <string.h> 25 #include <string.h>
26 26
27 #include <glib/gi18n-lib.h> 27 #include <glib/gi18n-lib.h>
28
29 #include <gplugin.h>
28 30
29 #include <purple.h> 31 #include <purple.h>
30 32
31 #include <gnt.h> 33 #include <gnt.h>
32 34
2448 build_plugin_actions(item, plugin); 2450 build_plugin_actions(item, plugin);
2449 } 2451 }
2450 } 2452 }
2451 2453
2452 static void 2454 static void
2455 reconstruct_plugins_menu_cb(GObject *plugin_manager, GPluginPlugin *plugin,
2456 gpointer data)
2457 {
2458 reconstruct_plugins_menu();
2459 }
2460
2461 static void
2453 reconstruct_accounts_menu(void) 2462 reconstruct_accounts_menu(void)
2454 { 2463 {
2455 GntWidget *sub; 2464 GntWidget *sub;
2456 GntMenuItem *acc, *item; 2465 GntMenuItem *acc, *item;
2457 GList *iter; 2466 GList *iter;
2933 } 2942 }
2934 2943
2935 static void 2944 static void
2936 blist_show(PurpleBuddyList *list) 2945 blist_show(PurpleBuddyList *list)
2937 { 2946 {
2947 GObject *plugin_manager = NULL;
2948
2938 if (ggblist->window) { 2949 if (ggblist->window) {
2939 gnt_window_present(ggblist->window); 2950 gnt_window_present(ggblist->window);
2940 return; 2951 return;
2941 } 2952 }
2942 2953
2972 purple_signal_connect(purple_blist_get_handle(), "buddy-status-changed", finch_blist_get_handle(), 2983 purple_signal_connect(purple_blist_get_handle(), "buddy-status-changed", finch_blist_get_handle(),
2973 PURPLE_CALLBACK(buddy_status_changed), ggblist); 2984 PURPLE_CALLBACK(buddy_status_changed), ggblist);
2974 purple_signal_connect(purple_blist_get_handle(), "buddy-idle-changed", finch_blist_get_handle(), 2985 purple_signal_connect(purple_blist_get_handle(), "buddy-idle-changed", finch_blist_get_handle(),
2975 PURPLE_CALLBACK(buddy_idle_changed), ggblist); 2986 PURPLE_CALLBACK(buddy_idle_changed), ggblist);
2976 2987
2977 purple_signal_connect(purple_plugins_get_handle(), "plugin-load", finch_blist_get_handle(), 2988 plugin_manager = gplugin_manager_get_instance();
2978 PURPLE_CALLBACK(reconstruct_plugins_menu), NULL); 2989 g_signal_connect_object(plugin_manager, "loaded-plugin",
2979 purple_signal_connect(purple_plugins_get_handle(), "plugin-unload", finch_blist_get_handle(), 2990 G_CALLBACK(reconstruct_plugins_menu_cb), ggblist, 0);
2980 PURPLE_CALLBACK(reconstruct_plugins_menu), NULL); 2991 g_signal_connect_object(plugin_manager, "unloaded-plugin",
2992 G_CALLBACK(reconstruct_plugins_menu_cb), ggblist, 0);
2981 2993
2982 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_blist_get_handle(), 2994 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", finch_blist_get_handle(),
2983 PURPLE_CALLBACK(buddy_signed_on_off), ggblist); 2995 PURPLE_CALLBACK(buddy_signed_on_off), ggblist);
2984 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_blist_get_handle(), 2996 purple_signal_connect(purple_blist_get_handle(), "buddy-signed-off", finch_blist_get_handle(),
2985 PURPLE_CALLBACK(buddy_signed_on_off), ggblist); 2997 PURPLE_CALLBACK(buddy_signed_on_off), ggblist);

mercurial