1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-09-22 19:45:54 -04:00

Offline contacts presence notifications now in contact list

Can send messages to offline contacts
This commit is contained in:
James Booth 2012-10-04 21:25:19 +01:00
parent cf211be221
commit 579594a8bf
2 changed files with 37 additions and 34 deletions

View File

@ -157,7 +157,7 @@ prof_handle_contact_online(char *contact, char *show, char *status)
void void
prof_handle_contact_offline(char *contact, char *show, char *status) prof_handle_contact_offline(char *contact, char *show, char *status)
{ {
gboolean result = contact_list_remove(contact); gboolean result = contact_list_add(contact, "offline", status);
if (result) { if (result) {
win_contact_offline(contact, show, status); win_contact_offline(contact, show, status);
} }

View File

@ -563,43 +563,46 @@ cons_show_online_contacts(GSList *list)
while(curr) { while(curr) {
PContact contact = curr->data; PContact contact = curr->data;
_win_show_time(_cons_win);
const char *show = p_contact_show(contact); const char *show = p_contact_show(contact);
if (strcmp(show, "offline") != 0) {
_win_show_time(_cons_win);
if (strcmp(show, "online") == 0) { if (strcmp(show, "online") == 0) {
wattron(_cons_win, COLOUR_ONLINE); wattron(_cons_win, COLOUR_ONLINE);
} else if (strcmp(show, "away") == 0) { } else if (strcmp(show, "away") == 0) {
wattron(_cons_win, COLOUR_AWAY); wattron(_cons_win, COLOUR_AWAY);
} else if (strcmp(show, "chat") == 0) { } else if (strcmp(show, "chat") == 0) {
wattron(_cons_win, COLOUR_CHAT); wattron(_cons_win, COLOUR_CHAT);
} else if (strcmp(show, "dnd") == 0) { } else if (strcmp(show, "dnd") == 0) {
wattron(_cons_win, COLOUR_DND); wattron(_cons_win, COLOUR_DND);
} else if (strcmp(show, "xa") == 0) { } else if (strcmp(show, "xa") == 0) {
wattron(_cons_win, COLOUR_XA); wattron(_cons_win, COLOUR_XA);
} else { } else {
wattron(_cons_win, COLOUR_OFFLINE); wattron(_cons_win, COLOUR_OFFLINE);
} }
wprintw(_cons_win, "%s", p_contact_name(contact)); wprintw(_cons_win, "%s", p_contact_name(contact));
wprintw(_cons_win, " is %s", show); wprintw(_cons_win, " is %s", show);
if (p_contact_status(contact)) if (p_contact_status(contact))
wprintw(_cons_win, ", \"%s\"", p_contact_status(contact)); wprintw(_cons_win, ", \"%s\"", p_contact_status(contact));
wprintw(_cons_win, "\n"); wprintw(_cons_win, "\n");
if (strcmp(show, "online") == 0) { if (strcmp(show, "online") == 0) {
wattroff(_cons_win, COLOUR_ONLINE); wattroff(_cons_win, COLOUR_ONLINE);
} else if (strcmp(show, "away") == 0) { } else if (strcmp(show, "away") == 0) {
wattroff(_cons_win, COLOUR_AWAY); wattroff(_cons_win, COLOUR_AWAY);
} else if (strcmp(show, "chat") == 0) { } else if (strcmp(show, "chat") == 0) {
wattroff(_cons_win, COLOUR_CHAT); wattroff(_cons_win, COLOUR_CHAT);
} else if (strcmp(show, "dnd") == 0) { } else if (strcmp(show, "dnd") == 0) {
wattroff(_cons_win, COLOUR_DND); wattroff(_cons_win, COLOUR_DND);
} else if (strcmp(show, "xa") == 0) { } else if (strcmp(show, "xa") == 0) {
wattroff(_cons_win, COLOUR_XA); wattroff(_cons_win, COLOUR_XA);
} else { } else {
wattroff(_cons_win, COLOUR_OFFLINE); wattroff(_cons_win, COLOUR_OFFLINE);
}
} }
curr = g_slist_next(curr); curr = g_slist_next(curr);