From 5b001b1130224ac3400dc8f3432cedf43eaf5d0c Mon Sep 17 00:00:00 2001 From: Davyd Madeley Date: Fri, 24 Apr 2009 14:47:31 +0800 Subject: Add a FLAGS column to EmpathyContactListStore --- libempathy-gtk/empathy-contact-list-store.c | 40 +++++++++++++++++++---------- 1 file changed, 27 insertions(+), 13 deletions(-) (limited to 'libempathy-gtk/empathy-contact-list-store.c') diff --git a/libempathy-gtk/empathy-contact-list-store.c b/libempathy-gtk/empathy-contact-list-store.c index 0e9372be1..33cccec01 100644 --- a/libempathy-gtk/empathy-contact-list-store.c +++ b/libempathy-gtk/empathy-contact-list-store.c @@ -33,6 +33,9 @@ #include #include +#include +#include + #include "empathy-contact-list-store.h" #include "empathy-ui-utils.h" #include "empathy-gtk-enum-types.h" @@ -725,19 +728,22 @@ static void contact_list_store_setup (EmpathyContactListStore *store) { EmpathyContactListStorePriv *priv; - GType types[] = {G_TYPE_STRING, /* Status icon-name */ - GDK_TYPE_PIXBUF, /* Avatar pixbuf */ - G_TYPE_BOOLEAN, /* Avatar pixbuf visible */ - G_TYPE_STRING, /* Name */ - G_TYPE_STRING, /* Status string */ - G_TYPE_BOOLEAN, /* Show status */ - EMPATHY_TYPE_CONTACT, /* Contact type */ - G_TYPE_BOOLEAN, /* Is group */ - G_TYPE_BOOLEAN, /* Is active */ - G_TYPE_BOOLEAN, /* Is online */ - G_TYPE_BOOLEAN, /* Is separator */ - G_TYPE_BOOLEAN, /* Can make audio calls */ - G_TYPE_BOOLEAN}; /* Can make video calls */ + GType types[] = { + G_TYPE_STRING, /* Status icon-name */ + GDK_TYPE_PIXBUF, /* Avatar pixbuf */ + G_TYPE_BOOLEAN, /* Avatar pixbuf visible */ + G_TYPE_STRING, /* Name */ + G_TYPE_STRING, /* Status string */ + G_TYPE_BOOLEAN, /* Show status */ + EMPATHY_TYPE_CONTACT, /* Contact type */ + G_TYPE_BOOLEAN, /* Is group */ + G_TYPE_BOOLEAN, /* Is active */ + G_TYPE_BOOLEAN, /* Is online */ + G_TYPE_BOOLEAN, /* Is separator */ + G_TYPE_BOOLEAN, /* Can make audio calls */ + G_TYPE_BOOLEAN, /* Can make video calls */ + EMPATHY_TYPE_CONTACT_LIST_FLAGS, /* Flags */ + }; priv = GET_PRIV (store); @@ -851,6 +857,8 @@ contact_list_store_add_contact (EmpathyContactListStore *store, EmpathyContactListStorePriv *priv; GtkTreeIter iter; GList *groups = NULL, *l; + TpConnection *connection; + EmpathyContactListFlags flags; priv = GET_PRIV (store); @@ -863,6 +871,10 @@ contact_list_store_add_contact (EmpathyContactListStore *store, groups = empathy_contact_list_get_groups (priv->list, contact); } + connection = empathy_contact_get_connection (contact); + flags = empathy_contact_manager_get_flags_for_connection ( + EMPATHY_CONTACT_MANAGER (priv->list), connection); + /* If no groups just add it at the top level. */ if (!groups) { gtk_tree_store_append (GTK_TREE_STORE (store), &iter, NULL); @@ -877,6 +889,7 @@ contact_list_store_add_contact (EmpathyContactListStore *store, EMPATHY_CONTACT_LIST_STORE_COL_CAN_VIDEO_CALL, empathy_contact_get_capabilities (contact) & EMPATHY_CAPABILITIES_VIDEO, + EMPATHY_CONTACT_LIST_STORE_COL_FLAGS, flags, -1); } @@ -899,6 +912,7 @@ contact_list_store_add_contact (EmpathyContactListStore *store, EMPATHY_CONTACT_LIST_STORE_COL_CAN_VIDEO_CALL, empathy_contact_get_capabilities (contact) & EMPATHY_CAPABILITIES_VIDEO, + EMPATHY_CONTACT_LIST_STORE_COL_FLAGS, flags, -1); g_free (l->data); } -- cgit v1.2.3