Mercurial > pidgin.yaz
comparison pidgin/gtkblist.c @ 22436:df336908dd15
Make "Show when offline" work on group nodes too, which sets the flag for
all group members. Fixes #5141.
author | Stu Tomlinson <stu@nosnilmot.com> |
---|---|
date | Sun, 09 Mar 2008 16:46:04 +0000 |
parents | 42724bd41274 |
children | 8802eddbfedc |
comparison
equal
deleted
inserted
replaced
22435:5c72a6c071db | 22436:df336908dd15 |
---|---|
703 | 703 |
704 purple_blist_node_set_bool(node, "show_offline", setting); | 704 purple_blist_node_set_bool(node, "show_offline", setting); |
705 for (bnode = node->child; bnode != NULL; bnode = bnode->next) { | 705 for (bnode = node->child; bnode != NULL; bnode = bnode->next) { |
706 purple_blist_node_set_bool(bnode, "show_offline", setting); | 706 purple_blist_node_set_bool(bnode, "show_offline", setting); |
707 } | 707 } |
708 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { | |
709 PurpleBlistNode *cnode, *bnode; | |
710 gboolean setting = !purple_blist_node_get_bool(node, "show_offline"); | |
711 | |
712 purple_blist_node_set_bool(node, "show_offline", setting); | |
713 for (cnode = node->child; cnode != NULL; cnode = cnode->next) { | |
714 purple_blist_node_set_bool(cnode, "show_offline", setting); | |
715 for (bnode = cnode->child; bnode != NULL; bnode = bnode->next) { | |
716 purple_blist_node_set_bool(bnode, "show_offline", setting); | |
717 } | |
718 } | |
708 } | 719 } |
709 pidgin_blist_update(purple_get_blist(), node); | 720 pidgin_blist_update(purple_get_blist(), node); |
710 } | 721 } |
711 | 722 |
712 static void gtk_blist_show_systemlog_cb(void) | 723 static void gtk_blist_show_systemlog_cb(void) |
1457 gtk_widget_set_sensitive(item, pidgin_blist_joinchat_is_showable()); | 1468 gtk_widget_set_sensitive(item, pidgin_blist_joinchat_is_showable()); |
1458 pidgin_new_item_from_stock(menu, _("_Delete Group"), GTK_STOCK_REMOVE, | 1469 pidgin_new_item_from_stock(menu, _("_Delete Group"), GTK_STOCK_REMOVE, |
1459 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL); | 1470 G_CALLBACK(pidgin_blist_remove_cb), node, 0, 0, NULL); |
1460 pidgin_new_item_from_stock(menu, _("_Rename"), NULL, | 1471 pidgin_new_item_from_stock(menu, _("_Rename"), NULL, |
1461 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL); | 1472 G_CALLBACK(gtk_blist_menu_alias_cb), node, 0, 0, NULL); |
1473 if (!(purple_blist_node_get_flags(node) & PURPLE_BLIST_NODE_FLAG_NO_SAVE)) { | |
1474 gboolean show_offline = purple_blist_node_get_bool(node, "show_offline"); | |
1475 pidgin_new_item_from_stock(menu, show_offline ? _("Hide when offline") : _("Show when offline"), | |
1476 NULL, G_CALLBACK(gtk_blist_menu_showoffline_cb), node, 0, 0, NULL); | |
1477 } | |
1462 | 1478 |
1463 pidgin_append_blist_node_extended_menu(menu, node); | 1479 pidgin_append_blist_node_extended_menu(menu, node); |
1464 | 1480 |
1465 return menu; | 1481 return menu; |
1466 } | 1482 } |