comparison finch/gntblist.c @ 16105:1983ecd15174

Remember the collapsed state of groups in the blist
author Richard Nelson <wabz@pidgin.im>
date Sat, 14 Apr 2007 12:39:33 +0000
parents f00f2e283ffb
children b73761ac005e
comparison
equal deleted inserted replaced
16104:f0f9d94928ee 16105:1983ecd15174
444 PurpleBlistNode *node = (PurpleBlistNode *)group; 444 PurpleBlistNode *node = (PurpleBlistNode *)group;
445 if (node->ui_data) 445 if (node->ui_data)
446 return; 446 return;
447 node->ui_data = gnt_tree_add_row_after(GNT_TREE(ggblist->tree), group, 447 node->ui_data = gnt_tree_add_row_after(GNT_TREE(ggblist->tree), group,
448 gnt_tree_create_row(GNT_TREE(ggblist->tree), get_display_name(node)), NULL, NULL); 448 gnt_tree_create_row(GNT_TREE(ggblist->tree), get_display_name(node)), NULL, NULL);
449 gnt_tree_set_expanded(GNT_TREE(ggblist->tree), node,
450 !purple_blist_node_get_bool(node, "collapsed"));
449 } 451 }
450 452
451 static const char * 453 static const char *
452 get_display_name(PurpleBlistNode *node) 454 get_display_name(PurpleBlistNode *node)
453 { 455 {
2103 { 2105 {
2104 blist_show(purple_get_blist()); 2106 blist_show(purple_get_blist());
2105 } 2107 }
2106 2108
2107 static void 2109 static void
2110 group_collapsed(GntWidget *widget, PurpleBlistNode *node, gboolean collapsed, gpointer null)
2111 {
2112 purple_blist_node_set_bool(node, "collapsed", collapsed);
2113 }
2114
2115 static void
2108 blist_show(PurpleBuddyList *list) 2116 blist_show(PurpleBuddyList *list)
2109 { 2117 {
2110 if (ggblist == NULL) 2118 if (ggblist == NULL)
2111 new_list(list); 2119 new_list(list);
2112 else if (ggblist->window) 2120 else if (ggblist->window)
2169 #endif 2177 #endif
2170 2178
2171 g_signal_connect(G_OBJECT(ggblist->tree), "selection_changed", G_CALLBACK(selection_changed), ggblist); 2179 g_signal_connect(G_OBJECT(ggblist->tree), "selection_changed", G_CALLBACK(selection_changed), ggblist);
2172 g_signal_connect(G_OBJECT(ggblist->tree), "key_pressed", G_CALLBACK(key_pressed), ggblist); 2180 g_signal_connect(G_OBJECT(ggblist->tree), "key_pressed", G_CALLBACK(key_pressed), ggblist);
2173 g_signal_connect(G_OBJECT(ggblist->tree), "context-menu", G_CALLBACK(context_menu), ggblist); 2181 g_signal_connect(G_OBJECT(ggblist->tree), "context-menu", G_CALLBACK(context_menu), ggblist);
2182 g_signal_connect(G_OBJECT(ggblist->tree), "collapse-toggled", G_CALLBACK(group_collapsed), NULL);
2174 g_signal_connect_after(G_OBJECT(ggblist->tree), "clicked", G_CALLBACK(blist_clicked), ggblist); 2183 g_signal_connect_after(G_OBJECT(ggblist->tree), "clicked", G_CALLBACK(blist_clicked), ggblist);
2175 g_signal_connect(G_OBJECT(ggblist->tree), "activate", G_CALLBACK(selection_activate), ggblist); 2184 g_signal_connect(G_OBJECT(ggblist->tree), "activate", G_CALLBACK(selection_activate), ggblist);
2176 g_signal_connect_data(G_OBJECT(ggblist->tree), "gained-focus", G_CALLBACK(draw_tooltip), 2185 g_signal_connect_data(G_OBJECT(ggblist->tree), "gained-focus", G_CALLBACK(draw_tooltip),
2177 ggblist, 0, G_CONNECT_AFTER | G_CONNECT_SWAPPED); 2186 ggblist, 0, G_CONNECT_AFTER | G_CONNECT_SWAPPED);
2178 g_signal_connect_data(G_OBJECT(ggblist->tree), "lost-focus", G_CALLBACK(remove_peripherals), 2187 g_signal_connect_data(G_OBJECT(ggblist->tree), "lost-focus", G_CALLBACK(remove_peripherals),