From 18ded7a66d2b4ee00d5d36ecc7154566c83dce69 Mon Sep 17 00:00:00 2001 From: Laurent Contzen Date: Wed, 4 Jul 2012 14:06:51 +0200 Subject: empathy-roster-model-manager: deal with members-changed signals empathy-roster-view: use empathy-roster-model-manager signals https://bugzilla.gnome.org/show_bug.cgi?id=680302 --- libempathy-gtk/empathy-roster-view.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) (limited to 'libempathy-gtk/empathy-roster-view.c') diff --git a/libempathy-gtk/empathy-roster-view.c b/libempathy-gtk/empathy-roster-view.c index fb157ac90..b54ebc100 100644 --- a/libempathy-gtk/empathy-roster-view.c +++ b/libempathy-gtk/empathy-roster-view.c @@ -521,28 +521,19 @@ individual_removed (EmpathyRosterView *self, } static void -members_changed_cb (EmpathyIndividualManager *manager, - const gchar *message, - GList *added, - GList *removed, - TpChannelGroupChangeReason reason, +individual_added_cb (EmpathyRosterModel *model, + FolksIndividual *individual, EmpathyRosterView *self) { - GList *l; - - for (l = added; l != NULL; l = g_list_next (l)) - { - FolksIndividual *individual = l->data; - - individual_added (self, individual); - } - - for (l = removed; l != NULL; l = g_list_next (l)) - { - FolksIndividual *individual = l->data; + individual_added (self, individual); +} - individual_removed (self, individual); - } +static void +individual_removed_cb (EmpathyRosterModel *model, + FolksIndividual *individual, + EmpathyRosterView *self) +{ + individual_removed (self, individual); } static gint @@ -1123,8 +1114,10 @@ empathy_roster_view_constructed (GObject *object) populate_view (self); - tp_g_signal_connect_object (self->priv->manager, "members-changed", - G_CALLBACK (members_changed_cb), self, 0); + tp_g_signal_connect_object (self->priv->model, "individual-added", + G_CALLBACK (individual_added_cb), self, 0); + tp_g_signal_connect_object (self->priv->model, "individual-removed", + G_CALLBACK (individual_removed_cb), self, 0); tp_g_signal_connect_object (self->priv->manager, "groups-changed", G_CALLBACK (groups_changed_cb), self, 0); tp_g_signal_connect_object (self->priv->manager, "notify::top-individuals", -- cgit v1.2.3