From 9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416 Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Thu, 18 Aug 2011 11:31:10 +0200 Subject: Port to new tp-glib client factory - EmpathyChannelFactory has been changed to EmpathyClientFactory and inherit from TpAutomaticClientFactory. - We now always use the _with_am variant of TpSimple* constructors - We define our own factory as default. - Replace empathy_get_account_for_connection() by tp_connection_get_account() - The factory is passed to EmpathyTpChat and TpyCallChannel - Use tp_simple_client_factory_ensure_account() instead of tp_account_manager_ensure_account(). - Rely on the factory to prepare connection features. This should ensure that all the TpProxy and TpContact objects created in Empathy are shared and use EmpathyClientFactory. https://bugzilla.gnome.org/show_bug.cgi?id=655799 --- libempathy-gtk/empathy-contact-list-view.c | 13 ++++++++----- libempathy-gtk/empathy-log-window.c | 17 +++++------------ 2 files changed, 13 insertions(+), 17 deletions(-) (limited to 'libempathy-gtk') diff --git a/libempathy-gtk/empathy-contact-list-view.c b/libempathy-gtk/empathy-contact-list-view.c index 4b2febd30..277842ff5 100644 --- a/libempathy-gtk/empathy-contact-list-view.c +++ b/libempathy-gtk/empathy-contact-list-view.c @@ -34,6 +34,7 @@ #include #include +#include #include #include #include @@ -382,7 +383,7 @@ contact_list_view_contact_drag_received (GtkWidget *view, GtkSelectionData *selection) { EmpathyContactListViewPriv *priv; - TpAccountManager *account_manager; + EmpathyClientFactory *factory; TpConnection *connection = NULL; TpAccount *account = NULL; DndGetContactData *data; @@ -423,12 +424,14 @@ contact_list_view_contact_drag_received (GtkWidget *view, return FALSE; } - account_manager = tp_account_manager_dup (); + factory = empathy_client_factory_dup (); strv = g_strsplit (sel_data, ":", 2); if (g_strv_length (strv) == 2) { account_id = strv[0]; contact_id = strv[1]; - account = tp_account_manager_ensure_account (account_manager, account_id); + account = tp_simple_client_factory_ensure_account ( + TP_SIMPLE_CLIENT_FACTORY (factory), + account_id, NULL, NULL); } if (account) { connection = tp_account_get_connection (account); @@ -438,7 +441,7 @@ contact_list_view_contact_drag_received (GtkWidget *view, DEBUG ("Failed to get connection for account '%s'", account_id); g_free (new_group); g_free (old_group); - g_object_unref (account_manager); + g_object_unref (factory); return FALSE; } @@ -454,7 +457,7 @@ contact_list_view_contact_drag_received (GtkWidget *view, data, (GDestroyNotify) contact_list_view_dnd_get_contact_free, G_OBJECT (view)); g_strfreev (strv); - g_object_unref (account_manager); + g_object_unref (factory); return TRUE; } diff --git a/libempathy-gtk/empathy-log-window.c b/libempathy-gtk/empathy-log-window.c index 5620f4b7c..d0f57a6de 100644 --- a/libempathy-gtk/empathy-log-window.c +++ b/libempathy-gtk/empathy-log-window.c @@ -1041,21 +1041,14 @@ observe_channels (TpSimpleObserver *observer, static void log_window_create_observer (EmpathyLogWindow *self) { - TpDBusDaemon *dbus; - GError *error = NULL; + TpAccountManager *am; - dbus = tp_dbus_daemon_dup (&error); + am = tp_account_manager_dup (); - if (dbus == NULL) - { - DEBUG ("Could not connect to the bus: %s", error->message); - g_error_free (error); - return; - } - - self->priv->observer = tp_simple_observer_new (dbus, TRUE, "LogWindow", + self->priv->observer = tp_simple_observer_new_with_am (am, TRUE, "LogWindow", TRUE, observe_channels, g_object_ref (self), g_object_unref); + self->priv->channels = g_hash_table_new_full (g_direct_hash, g_direct_equal, g_object_unref, g_object_unref); @@ -1077,7 +1070,7 @@ log_window_create_observer (EmpathyLogWindow *self) tp_base_client_register (self->priv->observer, NULL); - g_object_unref (dbus); + g_object_unref (am); } static TplEntity * -- cgit v1.2.3