diff options
author | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-09-27 18:22:04 +0800 |
---|---|---|
committer | Guillaume Desmottes <guillaume.desmottes@collabora.co.uk> | 2012-10-03 18:04:15 +0800 |
commit | 197e45140f3d79cca9bb3290b094a7055de24f74 (patch) | |
tree | e80c9b2353c60392d09bdc861902819233eb6442 /src | |
parent | d96f93b08a28fb0e19d035255c709bc09cdc5c7d (diff) | |
download | gsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.tar.gz gsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.tar.zst gsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.zip |
move the individual mgr reference to empathy-chat-window
The chat window is the one actually using the manager so it makes sense to
move it there. It's a singleton so the same instance will be shared between
windows anyway.
Diffstat (limited to 'src')
-rw-r--r-- | src/empathy-chat-window.c | 20 | ||||
-rw-r--r-- | src/empathy-chat.c | 14 |
2 files changed, 15 insertions, 19 deletions
diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index a8c5b6be2..edc654796 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -75,6 +75,7 @@ struct _EmpathyChatWindowPriv gboolean dnd_same_window; EmpathyChatroomManager *chatroom_manager; EmpathyNotifyManager *notify_mgr; + EmpathyIndividualManager *individual_mgr; GtkWidget *dialog; GtkWidget *notebook; NotifyNotification *notification; @@ -2008,7 +2009,6 @@ drag_data_received_individual_id (EmpathyChatWindow *self, guint time_) { const gchar *id; - EmpathyIndividualManager *manager = NULL; FolksIndividual *individual; EmpathyTpChat *chat; TpContact *tp_contact; @@ -2033,9 +2033,8 @@ drag_data_received_individual_id (EmpathyChatWindow *self, goto out; } - manager = empathy_individual_manager_dup_singleton (); - - individual = empathy_individual_manager_lookup_member (manager, id); + individual = empathy_individual_manager_lookup_member ( + self->priv->individual_mgr, id); if (individual == NULL) { DEBUG ("Failed to find individual %s", id); @@ -2060,7 +2059,6 @@ drag_data_received_individual_id (EmpathyChatWindow *self, out: gtk_drag_finish (context, TRUE, FALSE, time_); - tp_clear_object (&manager); } static void @@ -2223,6 +2221,7 @@ chat_window_finalize (GObject *object) g_object_unref (self->priv->gsettings_notif); g_object_unref (self->priv->gsettings_ui); g_object_unref (self->priv->sound_mgr); + g_clear_object (&self->priv->individual_mgr); if (self->priv->notification != NULL) { @@ -2331,6 +2330,17 @@ empathy_chat_window_init (EmpathyChatWindow *self) self->priv->gsettings_ui = g_settings_new (EMPATHY_PREFS_UI_SCHEMA); self->priv->chatroom_manager = empathy_chatroom_manager_dup_singleton (NULL); + /* Keep the individual manager alive so we won't fetch everything from Folks + * each time we need to use it. The individual manager (and so Folks) is + * needed to know to which FolksIndividual a TpContact belongs, including: + * - empathy_chat_get_contact_menu: to list all the personas of the contact + * - empathy_display_individual_info: to invoke gnome-contacts with the + * FolksIndividual.id of the contact + * - drag_data_received_individual_id: to find the individual associated + * with the ID we received from the DnD in order to invite him. + */ + self->priv->individual_mgr = empathy_individual_manager_dup_singleton (); + self->priv->sound_mgr = empathy_sound_manager_dup_singleton (); self->priv->notebook = gtk_notebook_new (); diff --git a/src/empathy-chat.c b/src/empathy-chat.c index 4da3f0aac..da69a8ebe 100644 --- a/src/empathy-chat.c +++ b/src/empathy-chat.c @@ -29,7 +29,6 @@ #include <libnotify/notify.h> #include <libempathy/empathy-presence-manager.h> -#include <libempathy/empathy-individual-manager.h> #include <libempathy-gtk/empathy-theme-manager.h> #include <libempathy-gtk/empathy-ui-utils.h> @@ -99,7 +98,6 @@ main (int argc, EmpathyPresenceManager *presence_mgr; EmpathyThemeManager *theme_mgr; gint retval; - EmpathyIndividualManager *individual_mgr; optcontext = g_option_context_new (N_("- Empathy Chat Client")); g_option_context_add_group (optcontext, gtk_get_option_group (TRUE)); @@ -141,17 +139,6 @@ main (int argc, /* Keep the theme manager alive as it does some caching */ theme_mgr = empathy_theme_manager_dup_singleton (); - /* Keep the individual manager alive so we won't fetch everything from Folks - * each time we need to use it. The individual manager (and so Folks) is - * needed to know to which FolksIndividual a TpContact belongs, including: - * - empathy_chat_get_contact_menu: to list all the personas of the contact - * - empathy_display_individual_info: to invoke gnome-contacts with the - * FolksIndividual.id of the contact - * - chat-window:drag_data_received_individual_id: to find the individual - * associated with the ID we received from the DnD in order to invite him. - */ - individual_mgr = empathy_individual_manager_dup_singleton (); - if (g_getenv ("EMPATHY_PERSIST") != NULL) { DEBUG ("Disable timer"); @@ -172,7 +159,6 @@ main (int argc, g_object_unref (presence_mgr); g_object_unref (theme_mgr); tp_clear_object (&chat_mgr); - g_object_unref (individual_mgr); #ifdef ENABLE_DEBUG g_object_unref (debug_sender); |