diff options
author | Laurent Contzen <lcontzen@gmail.com> | 2012-07-04 20:06:51 +0800 |
---|---|---|
committer | Laurent Contzen <lcontzen@gmail.com> | 2012-07-23 15:48:42 +0800 |
commit | 18ded7a66d2b4ee00d5d36ecc7154566c83dce69 (patch) | |
tree | 6453fd30fb64b58570a8d05020a8dc168ec742be /libempathy-gtk/empathy-roster-model-manager.c | |
parent | 87511314e60d6a9c67caaed5d5fd2e3f2f3657c8 (diff) | |
download | gsoc2013-empathy-18ded7a66d2b4ee00d5d36ecc7154566c83dce69.tar gsoc2013-empathy-18ded7a66d2b4ee00d5d36ecc7154566c83dce69.tar.gz gsoc2013-empathy-18ded7a66d2b4ee00d5d36ecc7154566c83dce69.tar.bz2 gsoc2013-empathy-18ded7a66d2b4ee00d5d36ecc7154566c83dce69.tar.lz gsoc2013-empathy-18ded7a66d2b4ee00d5d36ecc7154566c83dce69.tar.xz gsoc2013-empathy-18ded7a66d2b4ee00d5d36ecc7154566c83dce69.tar.zst gsoc2013-empathy-18ded7a66d2b4ee00d5d36ecc7154566c83dce69.zip |
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
Diffstat (limited to 'libempathy-gtk/empathy-roster-model-manager.c')
-rw-r--r-- | libempathy-gtk/empathy-roster-model-manager.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-roster-model-manager.c b/libempathy-gtk/empathy-roster-model-manager.c index b76a7a384..ed414aa85 100644 --- a/libempathy-gtk/empathy-roster-model-manager.c +++ b/libempathy-gtk/empathy-roster-model-manager.c @@ -55,6 +55,29 @@ struct _EmpathyRosterModelManagerPriv }; static void +members_changed_cb (EmpathyIndividualManager *manager, + const gchar *message, + GList *added, + GList *removed, + TpChannelGroupChangeReason reason, + EmpathyRosterModelManager *self) +{ + GList *l; + + for (l = added; l != NULL; l = g_list_next (l)) + { + empathy_roster_model_fire_individual_added (EMPATHY_ROSTER_MODEL (self), + l->data); + } + + for (l = removed; l != NULL; l = g_list_next (l)) + { + empathy_roster_model_fire_individual_removed (EMPATHY_ROSTER_MODEL (self), + l->data); + } +} + +static void empathy_roster_model_manager_get_property (GObject *object, guint property_id, GValue *value, @@ -104,6 +127,9 @@ empathy_roster_model_manager_constructed (GObject *object) chain_up (object); g_assert (EMPATHY_IS_INDIVIDUAL_MANAGER (self->priv->manager)); + + tp_g_signal_connect_object (self->priv->manager, "members-changed", + G_CALLBACK (members_changed_cb), self, 0); } static void |