1
1
mirror of https://github.com/profanity-im/profanity.git synced 2025-02-02 15:08:15 -05:00

Added /roster indent resource

This commit is contained in:
James Booth 2015-11-21 21:49:12 +00:00
parent f54c2e8eca
commit ef0f093efd
6 changed files with 141 additions and 83 deletions

View File

@ -281,6 +281,7 @@ static struct cmd_t command_defs[] =
"/roster char header <char>|none", "/roster char header <char>|none",
"/roster char contact <char>|none", "/roster char contact <char>|none",
"/roster indent contact <indent>", "/roster indent contact <indent>",
"/roster indent resource <indent>",
"/roster size <percent>", "/roster size <percent>",
"/roster add <jid> [<nick>]", "/roster add <jid> [<nick>]",
"/roster remove <jid>", "/roster remove <jid>",
@ -318,6 +319,7 @@ static struct cmd_t command_defs[] =
{ "char contact <char>", "Prefix roster contacts with specificed character." }, { "char contact <char>", "Prefix roster contacts with specificed character." },
{ "char contact none", "Remove roster contact character prefix." }, { "char contact none", "Remove roster contact character prefix." },
{ "indent contact <indent>", "Indent contact line by <indent> spaces." }, { "indent contact <indent>", "Indent contact line by <indent> spaces." },
{ "indent resource <indent>", "Indent roster line by <indent> spaces." },
{ "size <precent>", "Percentage of the screen taken up by the roster (1-99)." }, { "size <precent>", "Percentage of the screen taken up by the roster (1-99)." },
{ "add <jid> [<nick>]", "Add a new item to the roster." }, { "add <jid> [<nick>]", "Add a new item to the roster." },
{ "remove <jid>", "Removes an item from the roster." }, { "remove <jid>", "Removes an item from the roster." },
@ -2047,6 +2049,7 @@ cmd_init(void)
roster_indent_ac = autocomplete_new(); roster_indent_ac = autocomplete_new();
autocomplete_add(roster_indent_ac, "contact"); autocomplete_add(roster_indent_ac, "contact");
autocomplete_add(roster_indent_ac, "resource");
roster_option_ac = autocomplete_new(); roster_option_ac = autocomplete_new();
autocomplete_add(roster_option_ac, "offline"); autocomplete_add(roster_option_ac, "offline");

View File

@ -1799,6 +1799,22 @@ cmd_roster(ProfWin *window, const char *const command, gchar **args)
free(err_msg); free(err_msg);
} }
} }
} else if (g_strcmp0(args[1], "resource") == 0) {
if (!args[2]) {
cons_bad_cmd_usage(command);
} else {
int intval = 0;
char *err_msg = NULL;
gboolean res = strtoi_range(args[2], &intval, 0, 10, &err_msg);
if (res) {
prefs_set_roster_resource_indent(intval);
cons_show("Roster resource indent set to: %d", intval);
rosterwin_roster();
} else {
cons_show(err_msg);
free(err_msg);
}
}
} else { } else {
cons_bad_cmd_usage(command); cons_bad_cmd_usage(command);
} }

View File

@ -528,6 +528,28 @@ prefs_set_roster_contact_indent(gint value)
_save_prefs(); _save_prefs();
} }
gint
prefs_get_roster_resource_indent(void)
{
if (!g_key_file_has_key(prefs, PREF_GROUP_UI, "roster.resource.indent", NULL)) {
return 2;
}
gint result = g_key_file_get_integer(prefs, PREF_GROUP_UI, "roster.resource.indent", NULL);
if (result < 0) {
result = 0;
}
return result;
}
void
prefs_set_roster_resource_indent(gint value)
{
g_key_file_set_integer(prefs, PREF_GROUP_UI, "roster.resource.indent", value);
_save_prefs();
}
gboolean gboolean
prefs_add_alias(const char *const name, const char *const value) prefs_add_alias(const char *const name, const char *const value)
{ {

View File

@ -174,6 +174,8 @@ void prefs_clear_roster_contact_char(void);
gint prefs_get_roster_contact_indent(void); gint prefs_get_roster_contact_indent(void);
void prefs_set_roster_contact_indent(gint value); void prefs_set_roster_contact_indent(gint value);
gint prefs_get_roster_resource_indent(void);
void prefs_set_roster_resource_indent(gint value);
void prefs_add_login(const char *jid); void prefs_add_login(const char *jid);

View File

@ -960,9 +960,9 @@ cons_theme_setting(void)
{ {
char *theme = prefs_get_string(PREF_THEME); char *theme = prefs_get_string(PREF_THEME);
if (theme == NULL) { if (theme == NULL) {
cons_show("Theme (/theme) : default"); cons_show("Theme (/theme) : default");
} else { } else {
cons_show("Theme (/theme) : %s", theme); cons_show("Theme (/theme) : %s", theme);
} }
prefs_free_string(theme); prefs_free_string(theme);
} }
@ -971,58 +971,58 @@ void
cons_privileges_setting(void) cons_privileges_setting(void)
{ {
if (prefs_get_boolean(PREF_MUC_PRIVILEGES)) if (prefs_get_boolean(PREF_MUC_PRIVILEGES))
cons_show("MUC privileges (/privileges) : ON"); cons_show("MUC privileges (/privileges) : ON");
else else
cons_show("MUC privileges (/privileges) : OFF"); cons_show("MUC privileges (/privileges) : OFF");
} }
void void
cons_beep_setting(void) cons_beep_setting(void)
{ {
if (prefs_get_boolean(PREF_BEEP)) if (prefs_get_boolean(PREF_BEEP))
cons_show("Terminal beep (/beep) : ON"); cons_show("Terminal beep (/beep) : ON");
else else
cons_show("Terminal beep (/beep) : OFF"); cons_show("Terminal beep (/beep) : OFF");
} }
void void
cons_resource_setting(void) cons_resource_setting(void)
{ {
if (prefs_get_boolean(PREF_RESOURCE_TITLE)) if (prefs_get_boolean(PREF_RESOURCE_TITLE))
cons_show("Resource title (/resource) : ON"); cons_show("Resource title (/resource) : ON");
else else
cons_show("Resource title (/resource) : OFF"); cons_show("Resource title (/resource) : OFF");
if (prefs_get_boolean(PREF_RESOURCE_MESSAGE)) if (prefs_get_boolean(PREF_RESOURCE_MESSAGE))
cons_show("Resource message (/resource) : ON"); cons_show("Resource message (/resource) : ON");
else else
cons_show("Resource message (/resource) : OFF"); cons_show("Resource message (/resource) : OFF");
} }
void void
cons_wrap_setting(void) cons_wrap_setting(void)
{ {
if (prefs_get_boolean(PREF_WRAP)) if (prefs_get_boolean(PREF_WRAP))
cons_show("Word wrap (/wrap) : ON"); cons_show("Word wrap (/wrap) : ON");
else else
cons_show("Word wrap (/wrap) : OFF"); cons_show("Word wrap (/wrap) : OFF");
} }
void void
cons_winstidy_setting(void) cons_winstidy_setting(void)
{ {
if (prefs_get_boolean(PREF_WINS_AUTO_TIDY)) if (prefs_get_boolean(PREF_WINS_AUTO_TIDY))
cons_show("Window Auto Tidy (/wins) : ON"); cons_show("Window Auto Tidy (/wins) : ON");
else else
cons_show("Window Auto Tidy (/wins) : OFF"); cons_show("Window Auto Tidy (/wins) : OFF");
} }
void void
cons_encwarn_setting(void) cons_encwarn_setting(void)
{ {
if (prefs_get_boolean(PREF_ENC_WARN)) { if (prefs_get_boolean(PREF_ENC_WARN)) {
cons_show("Warn unencrypted (/encwarn) : ON"); cons_show("Warn unencrypted (/encwarn) : ON");
} else { } else {
cons_show("Warn unencrypted (/encwarn) : OFF"); cons_show("Warn unencrypted (/encwarn) : OFF");
} }
} }
@ -1030,9 +1030,9 @@ void
cons_tlsshow_setting(void) cons_tlsshow_setting(void)
{ {
if (prefs_get_boolean(PREF_TLS_SHOW)) { if (prefs_get_boolean(PREF_TLS_SHOW)) {
cons_show("TLS show (/tls) : ON"); cons_show("TLS show (/tls) : ON");
} else { } else {
cons_show("TLS show (/tls) : OFF"); cons_show("TLS show (/tls) : OFF");
} }
} }
@ -1040,44 +1040,44 @@ void
cons_presence_setting(void) cons_presence_setting(void)
{ {
if (prefs_get_boolean(PREF_PRESENCE)) if (prefs_get_boolean(PREF_PRESENCE))
cons_show("Contact presence (/presence) : ON"); cons_show("Contact presence (/presence) : ON");
else else
cons_show("Contact presence (/presence) : OFF"); cons_show("Contact presence (/presence) : OFF");
} }
void void
cons_flash_setting(void) cons_flash_setting(void)
{ {
if (prefs_get_boolean(PREF_FLASH)) if (prefs_get_boolean(PREF_FLASH))
cons_show("Terminal flash (/flash) : ON"); cons_show("Terminal flash (/flash) : ON");
else else
cons_show("Terminal flash (/flash) : OFF"); cons_show("Terminal flash (/flash) : OFF");
} }
void void
cons_splash_setting(void) cons_splash_setting(void)
{ {
if (prefs_get_boolean(PREF_SPLASH)) if (prefs_get_boolean(PREF_SPLASH))
cons_show("Splash screen (/splash) : ON"); cons_show("Splash screen (/splash) : ON");
else else
cons_show("Splash screen (/splash) : OFF"); cons_show("Splash screen (/splash) : OFF");
} }
void void
cons_occupants_setting(void) cons_occupants_setting(void)
{ {
if (prefs_get_boolean(PREF_OCCUPANTS)) if (prefs_get_boolean(PREF_OCCUPANTS))
cons_show("Occupants (/occupants) : show"); cons_show("Occupants (/occupants) : show");
else else
cons_show("Occupants (/occupants) : hide"); cons_show("Occupants (/occupants) : hide");
if (prefs_get_boolean(PREF_OCCUPANTS_JID)) if (prefs_get_boolean(PREF_OCCUPANTS_JID))
cons_show("Occupant jids (/occupants) : show"); cons_show("Occupant jids (/occupants) : show");
else else
cons_show("Occupant jids (/occupants) : hide"); cons_show("Occupant jids (/occupants) : hide");
int size = prefs_get_occupants_size(); int size = prefs_get_occupants_size();
cons_show("Occupants size (/occupants) : %d", size); cons_show("Occupants size (/occupants) : %d", size);
} }
void void
@ -1097,55 +1097,55 @@ cons_time_setting(void)
{ {
char *pref_time_console = prefs_get_string(PREF_TIME_CONSOLE); char *pref_time_console = prefs_get_string(PREF_TIME_CONSOLE);
if (g_strcmp0(pref_time_console, "off") == 0) if (g_strcmp0(pref_time_console, "off") == 0)
cons_show("Time console (/time) : OFF"); cons_show("Time console (/time) : OFF");
else else
cons_show("Time console (/time) : %s", pref_time_console); cons_show("Time console (/time) : %s", pref_time_console);
prefs_free_string(pref_time_console); prefs_free_string(pref_time_console);
char *pref_time_chat = prefs_get_string(PREF_TIME_CHAT); char *pref_time_chat = prefs_get_string(PREF_TIME_CHAT);
if (g_strcmp0(pref_time_chat, "off") == 0) if (g_strcmp0(pref_time_chat, "off") == 0)
cons_show("Time chat (/time) : OFF"); cons_show("Time chat (/time) : OFF");
else else
cons_show("Time chat (/time) : %s", pref_time_chat); cons_show("Time chat (/time) : %s", pref_time_chat);
prefs_free_string(pref_time_chat); prefs_free_string(pref_time_chat);
char *pref_time_muc = prefs_get_string(PREF_TIME_MUC); char *pref_time_muc = prefs_get_string(PREF_TIME_MUC);
if (g_strcmp0(pref_time_muc, "off") == 0) if (g_strcmp0(pref_time_muc, "off") == 0)
cons_show("Time MUC (/time) : OFF"); cons_show("Time MUC (/time) : OFF");
else else
cons_show("Time MUC (/time) : %s", pref_time_muc); cons_show("Time MUC (/time) : %s", pref_time_muc);
prefs_free_string(pref_time_muc); prefs_free_string(pref_time_muc);
char *pref_time_mucconf = prefs_get_string(PREF_TIME_MUCCONFIG); char *pref_time_mucconf = prefs_get_string(PREF_TIME_MUCCONFIG);
if (g_strcmp0(pref_time_mucconf, "off") == 0) if (g_strcmp0(pref_time_mucconf, "off") == 0)
cons_show("Time MUC config (/time) : OFF"); cons_show("Time MUC config (/time) : OFF");
else else
cons_show("Time MUC config (/time) : %s", pref_time_mucconf); cons_show("Time MUC config (/time) : %s", pref_time_mucconf);
prefs_free_string(pref_time_mucconf); prefs_free_string(pref_time_mucconf);
char *pref_time_private = prefs_get_string(PREF_TIME_PRIVATE); char *pref_time_private = prefs_get_string(PREF_TIME_PRIVATE);
if (g_strcmp0(pref_time_private, "off") == 0) if (g_strcmp0(pref_time_private, "off") == 0)
cons_show("Time private (/time) : OFF"); cons_show("Time private (/time) : OFF");
else else
cons_show("Time private (/time) : %s", pref_time_private); cons_show("Time private (/time) : %s", pref_time_private);
prefs_free_string(pref_time_private); prefs_free_string(pref_time_private);
char *pref_time_xml = prefs_get_string(PREF_TIME_XMLCONSOLE); char *pref_time_xml = prefs_get_string(PREF_TIME_XMLCONSOLE);
if (g_strcmp0(pref_time_xml, "off") == 0) if (g_strcmp0(pref_time_xml, "off") == 0)
cons_show("Time XML Console (/time) : OFF"); cons_show("Time XML Console (/time) : OFF");
else else
cons_show("Time XML Console (/time) : %s", pref_time_xml); cons_show("Time XML Console (/time) : %s", pref_time_xml);
prefs_free_string(pref_time_xml); prefs_free_string(pref_time_xml);
char *pref_time_statusbar = prefs_get_string(PREF_TIME_STATUSBAR); char *pref_time_statusbar = prefs_get_string(PREF_TIME_STATUSBAR);
if (g_strcmp0(pref_time_statusbar, "off") == 0) if (g_strcmp0(pref_time_statusbar, "off") == 0)
cons_show("Time statusbar (/time) : OFF"); cons_show("Time statusbar (/time) : OFF");
else else
cons_show("Time statusbar (/time) : %s", pref_time_statusbar); cons_show("Time statusbar (/time) : %s", pref_time_statusbar);
prefs_free_string(pref_time_statusbar); prefs_free_string(pref_time_statusbar);
char *pref_time_lastactivity = prefs_get_string(PREF_TIME_LASTACTIVITY); char *pref_time_lastactivity = prefs_get_string(PREF_TIME_LASTACTIVITY);
cons_show("Time last activity (/time) : %s", pref_time_lastactivity); cons_show("Time last activity (/time) : %s", pref_time_lastactivity);
prefs_free_string(pref_time_lastactivity); prefs_free_string(pref_time_lastactivity);
} }
@ -1153,9 +1153,9 @@ void
cons_vercheck_setting(void) cons_vercheck_setting(void)
{ {
if (prefs_get_boolean(PREF_VERCHECK)) if (prefs_get_boolean(PREF_VERCHECK))
cons_show("Version checking (/vercheck) : ON"); cons_show("Version checking (/vercheck) : ON");
else else
cons_show("Version checking (/vercheck) : OFF"); cons_show("Version checking (/vercheck) : OFF");
} }
void void
@ -1165,9 +1165,9 @@ cons_statuses_setting(void)
char *chat = prefs_get_string(PREF_STATUSES_CHAT); char *chat = prefs_get_string(PREF_STATUSES_CHAT);
char *muc = prefs_get_string(PREF_STATUSES_MUC); char *muc = prefs_get_string(PREF_STATUSES_MUC);
cons_show("Console statuses (/statuses) : %s", console); cons_show("Console statuses (/statuses) : %s", console);
cons_show("Chat statuses (/statuses) : %s", chat); cons_show("Chat statuses (/statuses) : %s", chat);
cons_show("MUC statuses (/statuses) : %s", muc); cons_show("MUC statuses (/statuses) : %s", muc);
prefs_free_string(console); prefs_free_string(console);
prefs_free_string(chat); prefs_free_string(chat);
@ -1178,14 +1178,14 @@ void
cons_titlebar_setting(void) cons_titlebar_setting(void)
{ {
if (prefs_get_boolean(PREF_TITLEBAR_SHOW)) { if (prefs_get_boolean(PREF_TITLEBAR_SHOW)) {
cons_show("Titlebar show (/titlebar) : ON"); cons_show("Titlebar show (/titlebar) : ON");
} else { } else {
cons_show("Titlebar show (/titlebar) : OFF"); cons_show("Titlebar show (/titlebar) : OFF");
} }
if (prefs_get_boolean(PREF_TITLEBAR_GOODBYE)) { if (prefs_get_boolean(PREF_TITLEBAR_GOODBYE)) {
cons_show("Titlebar goodbye (/titlebar) : ON"); cons_show("Titlebar goodbye (/titlebar) : ON");
} else { } else {
cons_show("Titlebar goodbye (/titlebar) : OFF"); cons_show("Titlebar goodbye (/titlebar) : OFF");
} }
} }
@ -1193,70 +1193,73 @@ void
cons_roster_setting(void) cons_roster_setting(void)
{ {
if (prefs_get_boolean(PREF_ROSTER)) if (prefs_get_boolean(PREF_ROSTER))
cons_show("Roster (/roster) : show"); cons_show("Roster (/roster) : show");
else else
cons_show("Roster (/roster) : hide"); cons_show("Roster (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_OFFLINE)) if (prefs_get_boolean(PREF_ROSTER_OFFLINE))
cons_show("Roster offline (/roster) : show"); cons_show("Roster offline (/roster) : show");
else else
cons_show("Roster offline (/roster) : hide"); cons_show("Roster offline (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_RESOURCE)) if (prefs_get_boolean(PREF_ROSTER_RESOURCE))
cons_show("Roster resource (/roster) : show"); cons_show("Roster resource (/roster) : show");
else else
cons_show("Roster resource (/roster) : hide"); cons_show("Roster resource (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_PRESENCE)) if (prefs_get_boolean(PREF_ROSTER_PRESENCE))
cons_show("Roster presence (/roster) : show"); cons_show("Roster presence (/roster) : show");
else else
cons_show("Roster presence (/roster) : hide"); cons_show("Roster presence (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_STATUS)) if (prefs_get_boolean(PREF_ROSTER_STATUS))
cons_show("Roster status (/roster) : show"); cons_show("Roster status (/roster) : show");
else else
cons_show("Roster status (/roster) : hide"); cons_show("Roster status (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_EMPTY)) if (prefs_get_boolean(PREF_ROSTER_EMPTY))
cons_show("Roster empty (/roster) : show"); cons_show("Roster empty (/roster) : show");
else else
cons_show("Roster empty (/roster) : hide"); cons_show("Roster empty (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_COUNT)) if (prefs_get_boolean(PREF_ROSTER_COUNT))
cons_show("Roster count (/roster) : show"); cons_show("Roster count (/roster) : show");
else else
cons_show("Roster count (/roster) : hide"); cons_show("Roster count (/roster) : hide");
if (prefs_get_boolean(PREF_ROSTER_PRIORITY)) if (prefs_get_boolean(PREF_ROSTER_PRIORITY))
cons_show("Roster priority (/roster) : show"); cons_show("Roster priority (/roster) : show");
else else
cons_show("Roster priority (/roster) : hide"); cons_show("Roster priority (/roster) : hide");
char *by = prefs_get_string(PREF_ROSTER_BY); char *by = prefs_get_string(PREF_ROSTER_BY);
cons_show("Roster by (/roster) : %s", by); cons_show("Roster by (/roster) : %s", by);
prefs_free_string(by); prefs_free_string(by);
char *order = prefs_get_string(PREF_ROSTER_ORDER); char *order = prefs_get_string(PREF_ROSTER_ORDER);
cons_show("Roster order (/roster) : %s", order); cons_show("Roster order (/roster) : %s", order);
prefs_free_string(order); prefs_free_string(order);
int size = prefs_get_roster_size(); int size = prefs_get_roster_size();
cons_show("Roster size (/roster) : %d", size); cons_show("Roster size (/roster) : %d", size);
char header_ch = prefs_get_roster_header_char(); char header_ch = prefs_get_roster_header_char();
if (header_ch) if (header_ch)
cons_show("Roster header char (/roster) : %c", header_ch); cons_show("Roster header char (/roster) : %c", header_ch);
else else
cons_show("Roster header char (/roster) : none"); cons_show("Roster header char (/roster) : none");
char contact_ch = prefs_get_roster_contact_char(); char contact_ch = prefs_get_roster_contact_char();
if (contact_ch) if (contact_ch)
cons_show("Roster contact char (/roster) : %c", contact_ch); cons_show("Roster contact char (/roster) : %c", contact_ch);
else else
cons_show("Roster contact char (/roster) : none"); cons_show("Roster contact char (/roster) : none");
gint contact_indent = prefs_get_roster_contact_indent(); gint contact_indent = prefs_get_roster_contact_indent();
cons_show("Roster contact indent (/roster) : %d", contact_indent); cons_show("Roster contact indent (/roster) : %d", contact_indent);
gint resource_indent = prefs_get_roster_resource_indent();
cons_show("Roster resource indent (/roster) : %d", resource_indent);
} }
void void
@ -1460,11 +1463,11 @@ cons_show_chat_prefs(void)
void void
cons_inpblock_setting(void) cons_inpblock_setting(void)
{ {
cons_show("Input timeout (/inpblock) : %d milliseconds", prefs_get_inpblock()); cons_show("Input timeout (/inpblock) : %d milliseconds", prefs_get_inpblock());
if (prefs_get_boolean(PREF_INPBLOCK_DYNAMIC)) { if (prefs_get_boolean(PREF_INPBLOCK_DYNAMIC)) {
cons_show("Dynamic timeout (/inpblock) : ON"); cons_show("Dynamic timeout (/inpblock) : ON");
} else { } else {
cons_show("Dynamic timeout (/inpblock) : OFF"); cons_show("Dynamic timeout (/inpblock) : OFF");
} }
} }

View File

@ -93,10 +93,15 @@ _rosterwin_presence(ProfLayoutSplit *layout, int indent, theme_item_t colour, co
} }
static void static void
_rosterwin_resource(ProfLayoutSplit *layout, PContact contact) _rosterwin_resource(ProfLayoutSplit *layout, PContact contact, int current_indent)
{ {
GList *resources = p_contact_get_available_resources(contact); GList *resources = p_contact_get_available_resources(contact);
if (resources) { if (resources) {
int resource_indent = prefs_get_roster_resource_indent();
if (resource_indent > 0) {
current_indent += resource_indent;
}
GList *curr_resource = resources; GList *curr_resource = resources;
while (curr_resource) { while (curr_resource) {
Resource *resource = curr_resource->data; Resource *resource = curr_resource->data;
@ -104,7 +109,12 @@ _rosterwin_resource(ProfLayoutSplit *layout, PContact contact)
theme_item_t resource_presence_colour = theme_main_presence_attrs(resource_presence); theme_item_t resource_presence_colour = theme_main_presence_attrs(resource_presence);
wattron(layout->subwin, theme_attrs(resource_presence_colour)); wattron(layout->subwin, theme_attrs(resource_presence_colour));
GString *msg = g_string_new(" "); GString *msg = g_string_new(" ");
int this_indent = current_indent;
while (this_indent > 0) {
g_string_append(msg, " ");
this_indent--;
}
g_string_append(msg, resource->name); g_string_append(msg, resource->name);
if (prefs_get_boolean(PREF_ROSTER_PRIORITY)) { if (prefs_get_boolean(PREF_ROSTER_PRIORITY)) {
g_string_append_printf(msg, " [%d]", resource->priority); g_string_append_printf(msg, " [%d]", resource->priority);
@ -141,7 +151,9 @@ _rosterwin_contact(ProfLayoutSplit *layout, PContact contact)
wattron(layout->subwin, theme_attrs(presence_colour)); wattron(layout->subwin, theme_attrs(presence_colour));
GString *msg = g_string_new(" "); GString *msg = g_string_new(" ");
int indent = prefs_get_roster_contact_indent(); int indent = prefs_get_roster_contact_indent();
int current_indent = 0;
if (indent > 0) { if (indent > 0) {
current_indent += indent;
while (indent > 0) { while (indent > 0) {
g_string_append(msg, " "); g_string_append(msg, " ");
indent--; indent--;
@ -157,7 +169,7 @@ _rosterwin_contact(ProfLayoutSplit *layout, PContact contact)
wattroff(layout->subwin, theme_attrs(presence_colour)); wattroff(layout->subwin, theme_attrs(presence_colour));
if (prefs_get_boolean(PREF_ROSTER_RESOURCE)) { if (prefs_get_boolean(PREF_ROSTER_RESOURCE)) {
_rosterwin_resource(layout, contact); _rosterwin_resource(layout, contact, current_indent);
} else if (prefs_get_boolean(PREF_ROSTER_PRESENCE) || prefs_get_boolean(PREF_ROSTER_STATUS)) { } else if (prefs_get_boolean(PREF_ROSTER_PRESENCE) || prefs_get_boolean(PREF_ROSTER_STATUS)) {
_rosterwin_presence(layout, 4, presence_colour, presence, status); _rosterwin_presence(layout, 4, presence_colour, presence, status);
} }