Add occupants wrap option

Wrapping for the occupants panel like already exists for the roster
panel. See `/occupants wrap on`.

Regards https://github.com/boothj5/profanity/issues/690
This commit is contained in:
Michael Vetter
2019-04-23 16:54:40 +02:00
parent 637dfca6dd
commit 125ca2f0d2
7 changed files with 33 additions and 2 deletions

View File

@@ -1232,6 +1232,11 @@ cons_occupants_setting(void)
else
cons_show("Occupant jids (/occupants) : hide");
if (prefs_get_boolean(PREF_OCCUPANTS_WRAP))
cons_show("Occupants wrap (/occupants) : ON");
else
cons_show("Occupants wrap (/occupants) : OFF");
gint occupant_indent = prefs_get_occupants_indent();
cons_show("Occupant indent (/occupants) : %d", occupant_indent);

View File

@@ -49,7 +49,9 @@ _occuptantswin_occupant(ProfLayoutSplit *layout, Occupant *occupant, gboolean sh
GString *spaces = g_string_new(" ");
int indent = prefs_get_occupants_indent();
int current_indent = 0;
if (indent > 0) {
current_indent += indent;
while (indent > 0) {
g_string_append(spaces, " ");
indent--;
@@ -59,8 +61,10 @@ _occuptantswin_occupant(ProfLayoutSplit *layout, Occupant *occupant, gboolean sh
GString *msg = g_string_new("");
g_string_append(msg, spaces->str);
gboolean wrap = prefs_get_boolean(PREF_OCCUPANTS_WRAP);
g_string_append(msg, occupant->nick);
win_sub_print(layout->subwin, msg->str, TRUE, FALSE, 0);
win_sub_print(layout->subwin, msg->str, TRUE, wrap, current_indent);
g_string_free(msg, TRUE);
if (showjid && occupant->jid) {
@@ -69,7 +73,7 @@ _occuptantswin_occupant(ProfLayoutSplit *layout, Occupant *occupant, gboolean sh
g_string_append(msg, " ");
g_string_append(msg, occupant->jid);
win_sub_print(layout->subwin, msg->str, TRUE, FALSE, 0);
win_sub_print(layout->subwin, msg->str, TRUE, wrap, current_indent);
g_string_free(msg, TRUE);
}