| 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); |