From bb8f274466fdbfe7a2fa1de312b84bd1def46a86 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 16 May 2008 15:39:16 +0000 Subject: Use tp_connection_call_when_ready svn path=/trunk/; revision=1102 --- libempathy/empathy-tp-contact-list.c | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/libempathy/empathy-tp-contact-list.c b/libempathy/empathy-tp-contact-list.c index 9fb5c0402..d5fa9c3e2 100644 --- a/libempathy/empathy-tp-contact-list.c +++ b/libempathy/empathy-tp-contact-list.c @@ -610,19 +610,34 @@ tp_contact_list_finalize (GObject *object) } static void -tp_contact_list_ready_cb (EmpathyTpContactList *list) +tp_contact_list_connection_ready (TpConnection *connection, + const GError *error, + gpointer list) { EmpathyTpContactListPriv *priv = GET_PRIV (list); + if (error) { + tp_contact_list_invalidated_cb (connection, + error->domain, + error->code, + error->message, + EMPATHY_TP_CONTACT_LIST (list)); + return; + } + + g_signal_connect (priv->connection, "invalidated", + G_CALLBACK (tp_contact_list_invalidated_cb), + list); + tp_cli_connection_call_list_channels (priv->connection, -1, tp_contact_list_list_channels_cb, NULL, NULL, - G_OBJECT (list)); + list); tp_cli_connection_connect_to_new_channel (priv->connection, tp_contact_list_new_channel_cb, NULL, NULL, - G_OBJECT (list), NULL); + list, NULL); } static void @@ -644,17 +659,9 @@ tp_contact_list_constructed (GObject *list) g_return_if_fail (priv->connection != NULL); g_object_unref (mc); - g_signal_connect (priv->connection, "invalidated", - G_CALLBACK (tp_contact_list_invalidated_cb), - list); - g_object_get (priv->connection, "connection-ready", &ready, NULL); - if (ready) { - tp_contact_list_ready_cb (EMPATHY_TP_CONTACT_LIST (list)); - } else { - g_signal_connect_swapped (priv->connection, "notify::connection-ready", - G_CALLBACK (tp_contact_list_ready_cb), - list); - } + tp_connection_call_when_ready (priv->connection, + tp_contact_list_connection_ready, + list); /* Check for protocols that does not support contact groups. We can * put all contacts into a special group in that case. -- cgit v1.2.3