diff options
author | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2010-03-22 13:19:14 +0800 |
---|---|---|
committer | Danielle Madeley <danielle.madeley@collabora.co.uk> | 2010-03-24 16:42:04 +0800 |
commit | 505b19ef1cd82dd94c701c3229cbab6626855167 (patch) | |
tree | 084d74536d29a4b579e3633e58767793a67cec62 | |
parent | d47742d59d3635d1dc78cc298244baaeede9f67d (diff) | |
download | gsoc2013-empathy-505b19ef1cd82dd94c701c3229cbab6626855167.tar gsoc2013-empathy-505b19ef1cd82dd94c701c3229cbab6626855167.tar.gz gsoc2013-empathy-505b19ef1cd82dd94c701c3229cbab6626855167.tar.bz2 gsoc2013-empathy-505b19ef1cd82dd94c701c3229cbab6626855167.tar.lz gsoc2013-empathy-505b19ef1cd82dd94c701c3229cbab6626855167.tar.xz gsoc2013-empathy-505b19ef1cd82dd94c701c3229cbab6626855167.tar.zst gsoc2013-empathy-505b19ef1cd82dd94c701c3229cbab6626855167.zip |
Make People Nearby into a Fake Group like Ungrouped and Favourites
-rw-r--r-- | libempathy-gtk/empathy-contact-list-store.c | 18 | ||||
-rw-r--r-- | libempathy-gtk/empathy-contact-list-store.h | 1 | ||||
-rw-r--r-- | libempathy/empathy-tp-contact-list.c | 19 |
3 files changed, 17 insertions, 21 deletions
diff --git a/libempathy-gtk/empathy-contact-list-store.c b/libempathy-gtk/empathy-contact-list-store.c index 9feb4461f..25a2e7ad2 100644 --- a/libempathy-gtk/empathy-contact-list-store.c +++ b/libempathy-gtk/empathy-contact-list-store.c @@ -1037,6 +1037,7 @@ contact_list_store_add_contact (EmpathyContactListStore *store, GList *groups = NULL, *l; TpConnection *connection; EmpathyContactListFlags flags = 0; + char *protocol_name; priv = GET_PRIV (store); @@ -1054,12 +1055,23 @@ contact_list_store_add_contact (EmpathyContactListStore *store, flags = empathy_contact_manager_get_flags_for_connection ( EMPATHY_CONTACT_MANAGER (priv->list), connection); } + + tp_connection_parse_object_path (connection, &protocol_name, NULL); + if (!groups) { #if HAVE_FAVOURITE_CONTACTS GtkTreeIter iter_group; - contact_list_store_get_group (store, EMPATHY_CONTACT_LIST_STORE_UNGROUPED, - &iter_group, NULL, NULL, TRUE); + if (!tp_strdiff (protocol_name, "local-xmpp")) { + /* these are People Nearby */ + contact_list_store_get_group (store, + EMPATHY_CONTACT_LIST_STORE_PEOPLE_NEARBY, + &iter_group, NULL, NULL, TRUE); + } else { + contact_list_store_get_group (store, + EMPATHY_CONTACT_LIST_STORE_UNGROUPED, + &iter_group, NULL, NULL, TRUE); + } gtk_tree_store_insert_after (GTK_TREE_STORE (store), &iter, &iter_group, NULL); @@ -1089,6 +1101,8 @@ contact_list_store_add_contact (EmpathyContactListStore *store, add_contact_to_store (GTK_TREE_STORE (store), &iter, contact, flags); } + g_free (protocol_name); + /* Else add to each group. */ for (l = groups; l; l = l->next) { GtkTreeIter iter_group; diff --git a/libempathy-gtk/empathy-contact-list-store.h b/libempathy-gtk/empathy-contact-list-store.h index 1b36ea651..7fa400e3d 100644 --- a/libempathy-gtk/empathy-contact-list-store.h +++ b/libempathy-gtk/empathy-contact-list-store.h @@ -69,6 +69,7 @@ typedef enum { #define EMPATHY_CONTACT_LIST_STORE_UNGROUPED _("Ungrouped") #define EMPATHY_CONTACT_LIST_STORE_FAVORITE _("Favorite People") +#define EMPATHY_CONTACT_LIST_STORE_PEOPLE_NEARBY _("People Nearby") struct _EmpathyContactListStore { GtkTreeStore parent; diff --git a/libempathy/empathy-tp-contact-list.c b/libempathy/empathy-tp-contact-list.c index b273ad20e..49168cdb1 100644 --- a/libempathy/empathy-tp-contact-list.c +++ b/libempathy/empathy-tp-contact-list.c @@ -43,7 +43,6 @@ typedef struct { EmpathyTpContactFactory *factory; TpConnection *connection; - const gchar *protocol_group; TpChannel *publish; TpChannel *subscribe; @@ -783,7 +782,6 @@ static void tp_contact_list_constructed (GObject *list) { EmpathyTpContactListPriv *priv = GET_PRIV (list); - gchar *protocol_name = NULL; priv->factory = empathy_tp_contact_factory_dup_singleton (priv->connection); @@ -825,15 +823,6 @@ tp_contact_list_constructed (GObject *list) tp_contact_list_new_channel_cb, NULL, NULL, list, NULL); - - /* Check for protocols that does not support contact groups. We can - * put all contacts into a special group in that case. - * FIXME: Default group should be an information in the profile */ - tp_connection_parse_object_path (priv->connection, &protocol_name, NULL); - if (!tp_strdiff (protocol_name, "local-xmpp")) { - priv->protocol_group = _("People nearby"); - } - g_free (protocol_name); } static void @@ -1035,10 +1024,6 @@ tp_contact_list_get_all_groups (EmpathyContactList *list) l->data = g_strdup (l->data); } - if (priv->protocol_group) { - ret = g_list_prepend (ret, g_strdup (priv->protocol_group)); - } - return ret; } @@ -1064,10 +1049,6 @@ tp_contact_list_get_groups (EmpathyContactList *list, } } - if (priv->protocol_group) { - ret = g_list_prepend (ret, g_strdup (priv->protocol_group)); - } - return ret; } |