diff options
author | James Booth <boothj5@gmail.com> | 2014-01-11 18:06:46 +0000 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2014-01-11 18:06:46 +0000 |
commit | bf494b1b07654103cd0c0867e37326e618b58f4d (patch) | |
tree | c6c93f1838936d2140afb637cc13ee28668a7422 /src/ui/core.c | |
parent | d189f7ea43e0978b33ad0d4ed3dbcf95774c4598 (diff) | |
download | profani-tty-bf494b1b07654103cd0c0867e37326e618b58f4d.tar.gz |
Refactored setting window recipient
Diffstat (limited to 'src/ui/core.c')
-rw-r--r-- | src/ui/core.c | 57 |
1 files changed, 27 insertions, 30 deletions
diff --git a/src/ui/core.c b/src/ui/core.c index 4ff43ff1..622261b6 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -501,6 +501,24 @@ _ui_close_read_wins(void) return count; } +GString * +_get_recipient_string(ProfWin *window) +{ + GString *result = g_string_new(""); + PContact contact = roster_get_contact(window->from); + if (contact != NULL) { + if (p_contact_name(contact) != NULL) { + g_string_append(result, p_contact_name(contact)); + } else { + g_string_append(result, window->from); + } + } else { + g_string_append(result, window->from); + } + + return result; +} + static void _ui_switch_win(const int i) { @@ -517,16 +535,9 @@ _ui_switch_win(const int i) status_bar_current(1); status_bar_active(1); } else { - PContact contact = roster_get_contact(new_current->from); - if (contact != NULL) { - if (p_contact_name(contact) != NULL) { - title_bar_set_recipient(p_contact_name(contact)); - } else { - title_bar_set_recipient(new_current->from); - } - } else { - title_bar_set_recipient(new_current->from); - } + GString *recipient_str = _get_recipient_string(new_current); + title_bar_set_recipient(recipient_str->str); + g_string_free(recipient_str, TRUE); title_bar_draw(); status_bar_current(i); status_bar_active(i); @@ -551,16 +562,9 @@ _ui_next_win(void) status_bar_current(1); status_bar_active(1); } else { - PContact contact = roster_get_contact(new_current->from); - if (contact != NULL) { - if (p_contact_name(contact) != NULL) { - title_bar_set_recipient(p_contact_name(contact)); - } else { - title_bar_set_recipient(new_current->from); - } - } else { - title_bar_set_recipient(new_current->from); - } + GString *recipient_str = _get_recipient_string(new_current); + title_bar_set_recipient(recipient_str->str); + g_string_free(recipient_str, TRUE); title_bar_draw(); status_bar_current(i); status_bar_active(i); @@ -584,16 +588,9 @@ _ui_previous_win(void) status_bar_current(1); status_bar_active(1); } else { - PContact contact = roster_get_contact(new_current->from); - if (contact != NULL) { - if (p_contact_name(contact) != NULL) { - title_bar_set_recipient(p_contact_name(contact)); - } else { - title_bar_set_recipient(new_current->from); - } - } else { - title_bar_set_recipient(new_current->from); - } + GString *recipient_str = _get_recipient_string(new_current); + title_bar_set_recipient(recipient_str->str); + g_string_free(recipient_str, TRUE); title_bar_draw(); status_bar_current(i); status_bar_active(i); |