diff options
author | Travis Reitter <travis.reitter@collabora.co.uk> | 2011-04-30 04:33:04 +0800 |
---|---|---|
committer | Travis Reitter <travis.reitter@collabora.co.uk> | 2011-06-07 00:30:52 +0800 |
commit | 736b4f3d04f1e826dd8252fed88a7445b52ad461 (patch) | |
tree | e043a1787299eed54393477c1d540fe56710538c /libempathy-gtk/empathy-persona-store.c | |
parent | faa40483fd000099a0593c09d0e92b938beaaaa7 (diff) | |
download | gsoc2013-empathy-736b4f3d04f1e826dd8252fed88a7445b52ad461.tar gsoc2013-empathy-736b4f3d04f1e826dd8252fed88a7445b52ad461.tar.gz gsoc2013-empathy-736b4f3d04f1e826dd8252fed88a7445b52ad461.tar.bz2 gsoc2013-empathy-736b4f3d04f1e826dd8252fed88a7445b52ad461.tar.lz gsoc2013-empathy-736b4f3d04f1e826dd8252fed88a7445b52ad461.tar.xz gsoc2013-empathy-736b4f3d04f1e826dd8252fed88a7445b52ad461.tar.zst gsoc2013-empathy-736b4f3d04f1e826dd8252fed88a7445b52ad461.zip |
Adapt to API break in folks_individual_get_personas.
Helps: bgo#648822 - Port Empathy to Folks 0.5.1
Diffstat (limited to 'libempathy-gtk/empathy-persona-store.c')
-rw-r--r-- | libempathy-gtk/empathy-persona-store.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/libempathy-gtk/empathy-persona-store.c b/libempathy-gtk/empathy-persona-store.c index 75827c572..aea205932 100644 --- a/libempathy-gtk/empathy-persona-store.c +++ b/libempathy-gtk/empathy-persona-store.c @@ -995,15 +995,22 @@ empathy_persona_store_set_individual (EmpathyPersonaStore *self, /* Remove the old individual */ if (priv->individual != NULL) { - GList *personas, *l; + GeeSet *personas; + GeeIterator *iter; g_signal_handlers_disconnect_by_func (priv->individual, (GCallback) individual_personas_changed_cb, self); /* Disconnect from and remove all personas belonging to this individual */ personas = folks_individual_get_personas (priv->individual); - for (l = personas; l != NULL; l = l->next) - remove_persona_and_disconnect (self, FOLKS_PERSONA (l->data)); + iter = gee_iterable_iterator (GEE_ITERABLE (personas)); + while (gee_iterator_next (iter)) + { + FolksPersona *persona = gee_iterator_get (iter); + remove_persona_and_disconnect (self, persona); + g_clear_object (&persona); + } + g_clear_object (&iter); g_object_unref (priv->individual); } @@ -1013,7 +1020,8 @@ empathy_persona_store_set_individual (EmpathyPersonaStore *self, /* Add the new individual */ if (individual != NULL) { - GList *personas, *l; + GeeSet *personas; + GeeIterator *iter; g_object_ref (individual); @@ -1021,9 +1029,16 @@ empathy_persona_store_set_individual (EmpathyPersonaStore *self, (GCallback) individual_personas_changed_cb, self); /* Add pre-existing Personas */ + personas = folks_individual_get_personas (individual); - for (l = personas; l != NULL; l = l->next) - add_persona_and_connect (self, FOLKS_PERSONA (l->data)); + iter = gee_iterable_iterator (GEE_ITERABLE (personas)); + while (gee_iterator_next (iter)) + { + FolksPersona *persona = gee_iterator_get (iter); + add_persona_and_connect (self, persona); + g_clear_object (&persona); + } + g_clear_object (&iter); } g_object_notify (G_OBJECT (self), "individual"); |