Allow hiding of empty presence groups: /roster {show,hide} empty (default is show)

This commit is contained in:
Daniel
2015-07-08 13:11:56 +02:00
parent 5e324e407f
commit 806afcc014
7 changed files with 36 additions and 4 deletions

View File

@@ -1039,6 +1039,11 @@ cons_roster_setting(void)
else
cons_show("Roster resource (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_EMPTY))
cons_show("Roster empty (/roster) : show");
else
cons_show("Roster empty (/roster) : hide");
char *by = prefs_get_string(PREF_ROSTER_BY);
cons_show("Roster by (/roster) : %s", by);
prefs_free_string(by);

View File

@@ -84,11 +84,15 @@ _rosterwin_contact(ProfLayoutSplit *layout, PContact contact)
static void
_rosterwin_contacts_by_presence(ProfLayoutSplit *layout, const char * const presence, char *title)
{
wattron(layout->subwin, theme_attrs(THEME_ROSTER_HEADER));
win_printline_nowrap(layout->subwin, title);
wattroff(layout->subwin, theme_attrs(THEME_ROSTER_HEADER));
GSList *contacts = roster_get_contacts_by_presence(presence);
// if this group has contacts, or if we want to show empty groups
if (contacts || prefs_get_boolean(PREF_ROSTER_EMPTY)) {
wattron(layout->subwin, theme_attrs(THEME_ROSTER_HEADER));
win_printline_nowrap(layout->subwin, title);
wattroff(layout->subwin, theme_attrs(THEME_ROSTER_HEADER));
}
if (contacts) {
GSList *curr_contact = contacts;
while (curr_contact) {