finch/gntblist.c

changeset 22312
dae4ed366fcb
parent 22303
cab9f3452d72
child 22314
850c1c5e24b9
equal deleted inserted replaced
22311:f3b63d7c4601 22312:dae4ed366fcb
297 297
298 static FinchBlistManager default_manager = 298 static FinchBlistManager default_manager =
299 { 299 {
300 "default", 300 "default",
301 N_("Default"), 301 N_("Default"),
302 NULL,
303 NULL,
302 default_can_add_node, 304 default_can_add_node,
303 default_find_parent, 305 default_find_parent,
304 default_create_tooltip, 306 default_create_tooltip,
305 {NULL, NULL, NULL, NULL} 307 {NULL, NULL, NULL, NULL}
306 }; 308 };
1825 populate_buddylist(void) 1827 populate_buddylist(void)
1826 { 1828 {
1827 PurpleBlistNode *node; 1829 PurpleBlistNode *node;
1828 PurpleBuddyList *list; 1830 PurpleBuddyList *list;
1829 1831
1832 if (ggblist->manager->init)
1833 ggblist->manager->init();
1834
1830 if (strcmp(purple_prefs_get_string(PREF_ROOT "/sort_type"), "text") == 0) { 1835 if (strcmp(purple_prefs_get_string(PREF_ROOT "/sort_type"), "text") == 0) {
1831 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree), 1836 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
1832 (GCompareFunc)blist_node_compare_text); 1837 (GCompareFunc)blist_node_compare_text);
1833 } else if (strcmp(purple_prefs_get_string(PREF_ROOT "/sort_type"), "status") == 0) { 1838 } else if (strcmp(purple_prefs_get_string(PREF_ROOT "/sort_type"), "status") == 0) {
1834 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree), 1839 gnt_tree_set_compare_func(GNT_TREE(ggblist->tree),
1921 1926
1922 manager = finch_blist_manager_find(purple_prefs_get_string(PREF_ROOT "/grouping")); 1927 manager = finch_blist_manager_find(purple_prefs_get_string(PREF_ROOT "/grouping"));
1923 if (manager == NULL) 1928 if (manager == NULL)
1924 manager = &default_manager; 1929 manager = &default_manager;
1925 if (ggblist->manager != manager) { 1930 if (ggblist->manager != manager) {
1931 if (ggblist->manager->uninit)
1932 ggblist->manager->uninit();
1933
1926 ggblist->manager = manager; 1934 ggblist->manager = manager;
1927 if (manager->can_add_node == NULL) 1935 if (manager->can_add_node == NULL)
1928 manager->can_add_node = default_can_add_node; 1936 manager->can_add_node = default_can_add_node;
1929 if (manager->find_parent == NULL) 1937 if (manager->find_parent == NULL)
1930 manager->find_parent = default_find_parent; 1938 manager->find_parent = default_find_parent;
1935 if (ggblist->window == NULL) 1943 if (ggblist->window == NULL)
1936 return; 1944 return;
1937 1945
1938 sel = gnt_tree_get_selection_data(GNT_TREE(ggblist->tree)); 1946 sel = gnt_tree_get_selection_data(GNT_TREE(ggblist->tree));
1939 gnt_tree_remove_all(GNT_TREE(ggblist->tree)); 1947 gnt_tree_remove_all(GNT_TREE(ggblist->tree));
1948
1940 node = purple_blist_get_root(); 1949 node = purple_blist_get_root();
1941 for (; node; node = purple_blist_node_next(node, TRUE)) 1950 for (; node; node = purple_blist_node_next(node, TRUE))
1942 reset_blist_node_ui_data(node); 1951 reset_blist_node_ui_data(node);
1943 populate_buddylist(); 1952 populate_buddylist();
1944 gnt_tree_set_selected(GNT_TREE(ggblist->tree), sel); 1953 gnt_tree_set_selected(GNT_TREE(ggblist->tree), sel);

mercurial