diff options
author | James Booth <boothj5@gmail.com> | 2013-06-02 00:20:22 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2013-06-02 00:20:22 +0100 |
commit | 65c09db19e663e2ba51f95e85e89f43840a0da1f (patch) | |
tree | 966231de5f2f7813e466de1c08659b7dcc931ac5 | |
parent | cf8d00185b7908607d1bee56a17bf7500d939326 (diff) | |
download | profani-tty-65c09db19e663e2ba51f95e85e89f43840a0da1f.tar.gz |
Added message in console on /roster add
-rw-r--r-- | src/profanity.c | 7 | ||||
-rw-r--r-- | src/profanity.h | 1 | ||||
-rw-r--r-- | src/ui/core.c | 10 | ||||
-rw-r--r-- | src/ui/ui.h | 1 | ||||
-rw-r--r-- | src/xmpp/roster.c | 11 | ||||
-rw-r--r-- | src/xmpp/xmpp.h | 3 |
6 files changed, 29 insertions, 4 deletions
diff --git a/src/profanity.c b/src/profanity.c index edec2fb3..84af8ab1 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -200,6 +200,13 @@ prof_handle_subscription(const char *from, jabber_subscr_t type) } void +prof_handle_roster_add(const char * const barejid, const char * const name) +{ + ui_roster_add(barejid, name); + ui_current_page_off(); +} + +void prof_handle_login_account_success(char *account_name) { ProfAccount *account = accounts_get_account(account_name); diff --git a/src/profanity.h b/src/profanity.h index 0f4699a7..7f96b04e 100644 --- a/src/profanity.h +++ b/src/profanity.h @@ -80,5 +80,6 @@ void prof_handle_disco_info(const char *from, GSList *identities, GSList *features); void prof_handle_duck_help(const char * const result); void prof_handle_duck_result(const char * const result); +void prof_handle_roster_add(const char * const barejid, const char * const name); #endif diff --git a/src/ui/core.c b/src/ui/core.c index 9f86332e..8cb8831b 100644 --- a/src/ui/core.c +++ b/src/ui/core.c @@ -440,6 +440,16 @@ ui_incoming_msg(const char * const from, const char * const message, } void +ui_roster_add(const char * const barejid, const char * const name) +{ + if (name != NULL) { + cons_show("Roster item added: %s (%s)", barejid, name); + } else { + cons_show("Roster item added: %s", barejid); + } +} + +void ui_contact_online(const char * const barejid, const char * const resource, const char * const show, const char * const status, GDateTime *last_activity) { diff --git a/src/ui/ui.h b/src/ui/ui.h index be57a0be..8f5610fc 100644 --- a/src/ui/ui.h +++ b/src/ui/ui.h @@ -112,6 +112,7 @@ void ui_room_member_nick_change(const char * const room, void ui_room_nick_change(const char * const room, const char * const nick); void ui_room_member_presence(const char * const room, const char * const nick, const char * const show, const char * const status); +void ui_roster_add(const char * const barejid, const char * const name); // contact status functions void ui_status_room(const char * const contact); diff --git a/src/xmpp/roster.c b/src/xmpp/roster.c index 18000cd4..b5e94f42 100644 --- a/src/xmpp/roster.c +++ b/src/xmpp/roster.c @@ -27,6 +27,7 @@ #include <strophe.h> #include "log.h" +#include "profanity.h" #include "tools/autocomplete.h" #include "xmpp/connection.h" #include "xmpp/roster.h" @@ -157,7 +158,7 @@ roster_remove(const char * const barejid) gboolean roster_add(const char * const barejid, const char * const name, GSList *groups, - const char * const subscription, gboolean pending_out) + const char * const subscription, gboolean pending_out, gboolean from_initial) { gboolean added = FALSE; PContact contact = g_hash_table_lookup(contacts, barejid); @@ -176,6 +177,10 @@ roster_add(const char * const barejid, const char * const name, GSList *groups, autocomplete_add(barejid_ac, strdup(barejid)); _add_name_and_barejid(name, barejid); + if (!from_initial) { + prof_handle_roster_add(barejid, name); + } + added = TRUE; } @@ -189,7 +194,7 @@ roster_update(const char * const barejid, const char * const name, PContact contact = g_hash_table_lookup(contacts, barejid); if (contact == NULL) { - roster_add(barejid, name, groups, subscription, pending_out); + roster_add(barejid, name, groups, subscription, pending_out, FALSE); } else { p_contact_set_subscription(contact, subscription); p_contact_set_pending_out(contact, pending_out); @@ -444,7 +449,7 @@ _roster_handle_result(xmpp_conn_t * const conn, xmpp_stanza_t * const stanza, GSList *groups = _get_groups_from_item(item); - gboolean added = roster_add(barejid, name, groups, sub, pending_out); + gboolean added = roster_add(barejid, name, groups, sub, pending_out, TRUE); if (!added) { log_warning("Attempt to add contact twice: %s", barejid); diff --git a/src/xmpp/xmpp.h b/src/xmpp/xmpp.h index 5469519b..345fa8f1 100644 --- a/src/xmpp/xmpp.h +++ b/src/xmpp/xmpp.h @@ -140,7 +140,8 @@ char * roster_find_contact(char *search_str); char * roster_find_jid(char *search_str); char * roster_find_resource(char *search_str); gboolean roster_add(const char * const barejid, const char * const name, - GSList *groups, const char * const subscription, gboolean pending_out); + GSList *groups, const char * const subscription, gboolean pending_out, + gboolean from_initial); void roster_change_name(const char * const barejid, const char * const new_name); char * roster_barejid_from_name(const char * const name); void roster_add_new(const char * const barejid, const char * const name); |