aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-09-27 18:22:04 +0800
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>2012-10-03 18:04:15 +0800
commit197e45140f3d79cca9bb3290b094a7055de24f74 (patch)
treee80c9b2353c60392d09bdc861902819233eb6442
parentd96f93b08a28fb0e19d035255c709bc09cdc5c7d (diff)
downloadgsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.tar
gsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.tar.gz
gsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.tar.bz2
gsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.tar.lz
gsoc2013-empathy-197e45140f3d79cca9bb3290b094a7055de24f74.tar.xz
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.
-rw-r--r--src/empathy-chat-window.c20
-rw-r--r--src/empathy-chat.c14
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);