[Telepathy-commits] [telepathy-gabble/master] add gabble_olpc_gadget_manager_close_all_views
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Thu Oct 9 08:59:38 PDT 2008
---
src/olpc-gadget-manager.c | 23 +++++++++++++++++++++++
src/olpc-gadget-manager.h | 2 ++
2 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/src/olpc-gadget-manager.c b/src/olpc-gadget-manager.c
index 69be183..7cd71e6 100644
--- a/src/olpc-gadget-manager.c
+++ b/src/olpc-gadget-manager.c
@@ -629,3 +629,26 @@ gabble_olpc_gadget_manager_find_buddy_activities (GabbleOlpcGadgetManager *self,
return result;
}
+
+void
+gabble_olpc_gadget_manager_close_all_views (GabbleOlpcGadgetManager *self)
+{
+ GHashTableIter iter;
+ gpointer key, value;
+
+ g_hash_table_iter_init (&iter, self->priv->channels);
+ while (g_hash_table_iter_next (&iter, &key, &value))
+ {
+ GabbleOlpcView *view = GABBLE_OLPC_VIEW (value);
+
+ /* disconnect the signal as we can't modify the hash table
+ * while we are iterating over it */
+ g_signal_handlers_disconnect_by_func (view,
+ G_CALLBACK (olpc_gadget_channel_closed_cb), self);
+
+ gabble_olpc_view_close (view);
+
+ /* remove the channel from the hash table */
+ g_hash_table_iter_remove (&iter);
+ }
+}
diff --git a/src/olpc-gadget-manager.h b/src/olpc-gadget-manager.h
index 5e05b3d..846cde8 100644
--- a/src/olpc-gadget-manager.h
+++ b/src/olpc-gadget-manager.h
@@ -68,6 +68,8 @@ GabbleOlpcView * gabble_olpc_gadget_manager_get_view (
GPtrArray * gabble_olpc_gadget_manager_find_buddy_activities (
GabbleOlpcGadgetManager *self, TpHandle contact);
+void gabble_olpc_gadget_manager_close_all_views (GabbleOlpcGadgetManager *self);
+
G_END_DECLS
#endif
--
1.5.6.5
More information about the Telepathy-commits
mailing list