diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-08-18 17:31:10 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2011-08-18 18:15:06 +0800 |
commit | 9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416 (patch) | |
tree | 4e4cfd5b8f801acff74edfdd5072f45d7038e00b /libempathy-gtk | |
parent | 7fbf3e0c200b0a3c5086fdce0cc19afe48c429bb (diff) | |
download | gsoc2013-empathy-9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416.tar gsoc2013-empathy-9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416.tar.gz gsoc2013-empathy-9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416.tar.bz2 gsoc2013-empathy-9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416.tar.lz gsoc2013-empathy-9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416.tar.xz gsoc2013-empathy-9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416.tar.zst gsoc2013-empathy-9ddd25f8589ae0cd5ec8e09c4c012e4ccac6a416.zip |
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
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/empathy-contact-list-view.c | 13 | ||||
-rw-r--r-- | libempathy-gtk/empathy-log-window.c | 17 |
2 files changed, 13 insertions, 17 deletions
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 <telepathy-glib/account-manager.h> #include <telepathy-glib/util.h> +#include <libempathy/empathy-client-factory.h> #include <libempathy/empathy-tp-contact-factory.h> #include <libempathy/empathy-contact-list.h> #include <libempathy/empathy-contact-groups.h> @@ -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 * |