[empathy] Check CAN_ADD before returning an Add Contact... menu item
- From: Davyd Madeley <davyd src gnome org>
- To: svn-commits-list gnome org
- Subject: [empathy] Check CAN_ADD before returning an Add Contact... menu item
- Date: Wed, 15 Jul 2009 10:15:14 +0000 (UTC)
commit ce74b001af76af82c3bc448784ce7826b99d378f
Author: Davyd Madeley <davyd madeley id au>
Date: Tue Jul 14 11:47:47 2009 +0100
Check CAN_ADD before returning an Add Contact... menu item
libempathy-gtk/empathy-contact-menu.c | 16 ++++++++++++++++
1 files changed, 16 insertions(+), 0 deletions(-)
---
diff --git a/libempathy-gtk/empathy-contact-menu.c b/libempathy-gtk/empathy-contact-menu.c
index 3c4eb0b..b4d694b 100644
--- a/libempathy-gtk/empathy-contact-menu.c
+++ b/libempathy-gtk/empathy-contact-menu.c
@@ -146,12 +146,27 @@ empathy_contact_add_menu_item_new (EmpathyContact *contact)
GtkWidget *item;
GtkWidget *image;
EmpathyContactManager *manager;
+ TpConnection *connection;
GList *l, *members;
gboolean found = FALSE;
+ EmpathyContactListFlags flags;
g_return_val_if_fail (EMPATHY_IS_CONTACT (contact), NULL);
+ if (!empathy_contact_manager_initialized ()) {
+ return NULL;
+ }
+
manager = empathy_contact_manager_dup_singleton ();
+ connection = empathy_contact_get_connection (contact);
+
+ flags = empathy_contact_manager_get_flags_for_connection (manager,
+ connection);
+
+ if (!(flags & EMPATHY_CONTACT_LIST_CAN_ADD)) {
+ return NULL;
+ }
+
members = empathy_contact_list_get_members (EMPATHY_CONTACT_LIST (manager));
for (l = members; l; l = l->next) {
if (!found && empathy_contact_equal (l->data, contact)) {
@@ -163,6 +178,7 @@ empathy_contact_add_menu_item_new (EmpathyContact *contact)
g_object_unref (l->data);
}
g_list_free (members);
+ g_object_unref (manager);
if (found) {
return NULL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]