[empathy] new-message-dialog: rely on the factory to prepare TP_CONNECTION_FEATURE_CAPABILITIES
- From: Guillaume Desmottes <gdesmott src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [empathy] new-message-dialog: rely on the factory to prepare TP_CONNECTION_FEATURE_CAPABILITIES
- Date: Fri, 19 Aug 2011 07:30:15 +0000 (UTC)
commit c9b5bba619706d6b1a45654f845e7722870a25df
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Thu Aug 18 17:17:49 2011 +0200
new-message-dialog: rely on the factory to prepare TP_CONNECTION_FEATURE_CAPABILITIES
https://bugzilla.gnome.org/show_bug.cgi?id=656831
libempathy-gtk/empathy-new-message-dialog.c | 55 +++++---------------------
1 files changed, 11 insertions(+), 44 deletions(-)
---
diff --git a/libempathy-gtk/empathy-new-message-dialog.c b/libempathy-gtk/empathy-new-message-dialog.c
index f3186cc..1c4bbaa 100644
--- a/libempathy-gtk/empathy-new-message-dialog.c
+++ b/libempathy-gtk/empathy-new-message-dialog.c
@@ -42,11 +42,6 @@
#include "empathy-new-message-dialog.h"
#include "empathy-account-chooser.h"
-typedef struct {
- EmpathyAccountChooserFilterResultCallback callback;
- gpointer user_data;
-} FilterCallbackData;
-
static EmpathyNewMessageDialog *dialog_singleton = NULL;
G_DEFINE_TYPE(EmpathyNewMessageDialog, empathy_new_message_dialog,
@@ -102,56 +97,28 @@ out:
}
static void
-conn_prepared_cb (GObject *conn,
- GAsyncResult *result,
- gpointer user_data)
-{
- FilterCallbackData *data = user_data;
- GError *myerr = NULL;
- TpCapabilities *caps;
-
- if (!tp_proxy_prepare_finish (conn, result, &myerr))
- {
- data->callback (FALSE, data->user_data);
- g_slice_free (FilterCallbackData, data);
- }
-
- caps = tp_connection_get_capabilities (TP_CONNECTION (conn));
- data->callback (tp_capabilities_supports_text_chats (caps),
- data->user_data);
-
- g_slice_free (FilterCallbackData, data);
-}
-
-static void
empathy_new_message_account_filter (EmpathyContactSelectorDialog *dialog,
EmpathyAccountChooserFilterResultCallback callback,
gpointer callback_data,
TpAccount *account)
{
TpConnection *connection;
- FilterCallbackData *cb_data;
- GQuark features[] = { TP_CONNECTION_FEATURE_CAPABILITIES, 0 };
-
- if (tp_account_get_connection_status (account, NULL) !=
- TP_CONNECTION_STATUS_CONNECTED)
- {
- callback (FALSE, callback_data);
- return;
- }
+ gboolean supported = FALSE;
+ TpCapabilities *caps;
/* check if CM supports 1-1 text chat */
connection = tp_account_get_connection (account);
if (connection == NULL)
- {
- callback (FALSE, callback_data);
- return;
- }
+ goto out;
+
+ caps = tp_connection_get_capabilities (connection);
+ if (caps == NULL)
+ goto out;
- cb_data = g_slice_new0 (FilterCallbackData);
- cb_data->callback = callback;
- cb_data->user_data = callback_data;
- tp_proxy_prepare_async (connection, features, conn_prepared_cb, cb_data);
+ supported = tp_capabilities_supports_text_chats (caps);
+
+out:
+ callback (supported, callback_data);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]