Mercurial > pidgin.yaz
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), |