diff options
author | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-02-07 10:41:40 +0800 |
---|---|---|
committer | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2011-02-09 10:03:57 +0800 |
commit | 61572ce5a33a31ec2d36ac676384a7a6d246d7b4 (patch) | |
tree | c889262633915c7ba8a2e9735701280d9f21d14e /libempathy/empathy-contact-manager.c | |
parent | e86fa5ff0136af2458971a4e8e309b862b35b11a (diff) | |
download | gsoc2013-empathy-61572ce5a33a31ec2d36ac676384a7a6d246d7b4.tar gsoc2013-empathy-61572ce5a33a31ec2d36ac676384a7a6d246d7b4.tar.gz gsoc2013-empathy-61572ce5a33a31ec2d36ac676384a7a6d246d7b4.tar.bz2 gsoc2013-empathy-61572ce5a33a31ec2d36ac676384a7a6d246d7b4.tar.lz gsoc2013-empathy-61572ce5a33a31ec2d36ac676384a7a6d246d7b4.tar.xz gsoc2013-empathy-61572ce5a33a31ec2d36ac676384a7a6d246d7b4.tar.zst gsoc2013-empathy-61572ce5a33a31ec2d36ac676384a7a6d246d7b4.zip |
Add contact blocking to EmpathyContactList and friends
Diffstat (limited to 'libempathy/empathy-contact-manager.c')
-rw-r--r-- | libempathy/empathy-contact-manager.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/libempathy/empathy-contact-manager.c b/libempathy/empathy-contact-manager.c index a900fa610..2242159b5 100644 --- a/libempathy/empathy-contact-manager.c +++ b/libempathy/empathy-contact-manager.c @@ -865,6 +865,45 @@ contact_manager_remove_group (EmpathyContactList *manager, } static void +contact_manager_set_blocked (EmpathyContactList *manager, + EmpathyContact *contact, + gboolean blocked) +{ + EmpathyContactManagerPriv *priv = GET_PRIV (manager); + EmpathyContactList *list; + TpConnection *connection; + + g_return_if_fail (EMPATHY_IS_CONTACT_MANAGER (manager)); + + connection = empathy_contact_get_connection (contact); + list = g_hash_table_lookup (priv->lists, connection); + + if (list != NULL) { + empathy_contact_list_set_blocked (list, contact, blocked); + } +} + +static gboolean +contact_manager_get_blocked (EmpathyContactList *manager, + EmpathyContact *contact) +{ + EmpathyContactManagerPriv *priv = GET_PRIV (manager); + EmpathyContactList *list; + TpConnection *connection; + + g_return_val_if_fail (EMPATHY_IS_CONTACT_MANAGER (manager), FALSE); + + connection = empathy_contact_get_connection (contact); + list = g_hash_table_lookup (priv->lists, connection); + + if (list != NULL) { + return empathy_contact_list_get_blocked (list, contact); + } else { + return FALSE; + } +} + +static void contact_manager_iface_init (EmpathyContactListIface *iface) { iface->add = contact_manager_add; @@ -880,6 +919,8 @@ contact_manager_iface_init (EmpathyContactListIface *iface) iface->is_favourite = contact_manager_is_favourite; iface->remove_favourite = contact_manager_remove_favourite; iface->add_favourite = contact_manager_add_favourite; + iface->set_blocked = contact_manager_set_blocked; + iface->get_blocked = contact_manager_get_blocked; } EmpathyContactListFlags |