Add /occupants color command

`/occupants color on|off` to enable or disable XEP-0392 also for the
MUC occupants.

Regards
https://github.com/profanity-im/profanity/issues/1191
This commit is contained in:
Michael Vetter
2019-12-19 19:14:59 +01:00
parent 6d82020a66
commit 808850c6f5
7 changed files with 45 additions and 6 deletions

View File

@@ -1991,9 +1991,15 @@ cons_color_setting(void)
prefs_free_string(color_pref);
if (prefs_get_boolean(PREF_ROSTER_COLOR_NICK)) {
cons_show("Consistent color generation in roster (/roster) : ON");
cons_show("Consistent color generation in roster (/roster) : ON");
} else {
cons_show("Consistent color generation in roster (/roster) : OFF");
cons_show("Consistent color generation in roster (/roster) : OFF");
}
if (prefs_get_boolean(PREF_OCCUPANTS_COLOR_NICK)) {
cons_show("Consistent color generation for occupants (/occupants) : ON");
} else {
cons_show("Consistent color generation for occupants (/occupants) : OFF");
}
}

View File

@@ -44,9 +44,19 @@
static void
_occuptantswin_occupant(ProfLayoutSplit *layout, Occupant *occupant, gboolean showjid)
{
const char *presence_str = string_from_resource_presence(occupant->presence);
theme_item_t presence_colour = theme_main_presence_attrs(presence_str);
wattron(layout->subwin, theme_attrs(presence_colour));
int colour;
theme_item_t presence_colour;
if (prefs_get_boolean(PREF_OCCUPANTS_COLOR_NICK)) {
colour = theme_hash_attrs(occupant->nick);
wattron(layout->subwin, colour);
} else {
const char *presence_str = string_from_resource_presence(occupant->presence);
presence_colour = theme_main_presence_attrs(presence_str);
wattron(layout->subwin, theme_attrs(presence_colour));
}
GString *spaces = g_string_new(" ");
@@ -86,7 +96,11 @@ _occuptantswin_occupant(ProfLayoutSplit *layout, Occupant *occupant, gboolean sh
g_string_free(spaces, TRUE);
wattroff(layout->subwin, theme_attrs(presence_colour));
if (prefs_get_boolean(PREF_OCCUPANTS_COLOR_NICK)) {
wattroff(layout->subwin, colour);
} else {
wattroff(layout->subwin, theme_attrs(presence_colour));
}
}
void