[empathy] account-chooser: 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] account-chooser: rely on the factory to prepare TP_CONNECTION_FEATURE_CAPABILITIES,
- Date: Fri, 19 Aug 2011 07:29:40 +0000 (UTC)
commit 5a3861854b566ba034bf9ddc2fd581185dcc2ef1
Author: Guillaume Desmottes <guillaume desmottes collabora co uk>
Date: Thu Aug 18 12:28:05 2011 +0200
account-chooser: rely on the factory to prepare TP_CONNECTION_FEATURE_CAPABILITIES,
Also simplify empathy_account_chooser_filter_supports_chatrooms in the
process.
https://bugzilla.gnome.org/show_bug.cgi?id=656831
libempathy-gtk/empathy-account-chooser.c | 55 ++++++------------------------
1 files changed, 11 insertions(+), 44 deletions(-)
---
diff --git a/libempathy-gtk/empathy-account-chooser.c b/libempathy-gtk/empathy-account-chooser.c
index 32b314b..cb9028c 100644
--- a/libempathy-gtk/empathy-account-chooser.c
+++ b/libempathy-gtk/empathy-account-chooser.c
@@ -1016,33 +1016,6 @@ empathy_account_chooser_filter_is_connected (
callback (is_connected, callback_data);
}
-typedef struct {
- EmpathyAccountChooserFilterResultCallback callback;
- gpointer user_data;
-} FilterCallbackData;
-
-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);
- return;
- }
-
- caps = tp_connection_get_capabilities (TP_CONNECTION (conn));
- data->callback (tp_capabilities_supports_text_chatrooms (caps),
- data->user_data);
-
- g_slice_free (FilterCallbackData, data);
-}
-
/**
* empathy_account_chooser_filter_supports_multichat:
* @account: a #TpAccount
@@ -1063,28 +1036,22 @@ empathy_account_chooser_filter_supports_chatrooms (
gpointer user_data)
{
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 multiuser text chat */
connection = tp_account_get_connection (account);
- if (connection == NULL) {
- callback (FALSE, callback_data);
- return;
- }
+ if (connection == NULL)
+ 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;
+ supported = tp_capabilities_supports_text_chatrooms (caps);
- tp_proxy_prepare_async (connection, features, conn_prepared_cb,
- cb_data);
+out:
+ callback (supported, callback_data);
}
gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]