empathy r2113 - in trunk: libempathy libempathy-gtk megaphone/src src tests



Author: xclaesse
Date: Fri Jan  9 10:05:54 2009
New Revision: 2113
URL: http://svn.gnome.org/viewvc/empathy?rev=2113&view=rev

Log:
Port EmpathyContactFactory to the new singleton policy.

Modified:
   trunk/libempathy-gtk/empathy-avatar-chooser.c
   trunk/libempathy-gtk/empathy-contact-list-view.c
   trunk/libempathy-gtk/empathy-contact-widget.c
   trunk/libempathy/empathy-contact-factory.c
   trunk/libempathy/empathy-contact-factory.h
   trunk/libempathy/empathy-dispatcher.c
   trunk/libempathy/empathy-tp-chat.c
   trunk/libempathy/empathy-tp-file.c
   trunk/libempathy/empathy-tp-group.c
   trunk/libempathy/empathy-tp-tube.c
   trunk/megaphone/src/megaphone-applet.c
   trunk/src/empathy-event-manager.c
   trunk/src/empathy-main-window.c
   trunk/tests/contact-run-until-ready.c

Modified: trunk/libempathy-gtk/empathy-avatar-chooser.c
==============================================================================
--- trunk/libempathy-gtk/empathy-avatar-chooser.c	(original)
+++ trunk/libempathy-gtk/empathy-avatar-chooser.c	Fri Jan  9 10:05:54 2009
@@ -213,7 +213,7 @@
 			  G_CALLBACK (avatar_chooser_clicked_cb),
 			  chooser);
 
-	priv->contact_factory = empathy_contact_factory_new ();
+	priv->contact_factory = empathy_contact_factory_dup_singleton ();
 
 	empathy_avatar_chooser_set (chooser, NULL);
 }

Modified: trunk/libempathy-gtk/empathy-contact-list-view.c
==============================================================================
--- trunk/libempathy-gtk/empathy-contact-list-view.c	(original)
+++ trunk/libempathy-gtk/empathy-contact-list-view.c	Fri Jan  9 10:05:54 2009
@@ -213,7 +213,7 @@
 		id);
 
 	strv = g_strsplit (id, "/", 2);
-	factory = empathy_contact_factory_new ();
+	factory = empathy_contact_factory_dup_singleton ();
 	account = mc_account_lookup (strv[0]);
 	if (account) {
 		contact = empathy_contact_factory_get_from_id (factory,

Modified: trunk/libempathy-gtk/empathy-contact-widget.c
==============================================================================
--- trunk/libempathy-gtk/empathy-contact-widget.c	(original)
+++ trunk/libempathy-gtk/empathy-contact-widget.c	Fri Jan  9 10:05:54 2009
@@ -162,7 +162,7 @@
 
   information = g_slice_new0 (EmpathyContactWidget);
   information->flags = flags;
-  information->factory = empathy_contact_factory_new ();
+  information->factory = empathy_contact_factory_dup_singleton ();
 
   filename = empathy_file_lookup ("empathy-contact-widget.glade",
       "libempathy-gtk");

Modified: trunk/libempathy/empathy-contact-factory.c
==============================================================================
--- trunk/libempathy/empathy-contact-factory.c	(original)
+++ trunk/libempathy/empathy-contact-factory.c	Fri Jan  9 10:05:54 2009
@@ -31,6 +31,8 @@
 
 G_DEFINE_TYPE (EmpathyContactFactory, empathy_contact_factory, G_TYPE_OBJECT);
 
+static EmpathyContactFactory * factory_singleton = NULL;
+
 EmpathyTpContactFactory *
 empathy_contact_factory_get_tp_factory (EmpathyContactFactory *factory,
 					McAccount             *account)
@@ -133,12 +135,33 @@
 	G_OBJECT_CLASS (empathy_contact_factory_parent_class)->finalize (object);
 }
 
+static GObject *
+contact_factory_constructor (GType type,
+			     guint n_props,
+			     GObjectConstructParam *props)
+{
+	GObject *retval;
+
+	if (factory_singleton) {
+		retval = g_object_ref (factory_singleton);
+	} else {
+		retval = G_OBJECT_CLASS (empathy_contact_factory_parent_class)->constructor
+			(type, n_props, props);
+		g_object_add_weak_pointer (retval, (gpointer *) &retval);
+
+		factory_singleton = EMPATHY_CONTACT_FACTORY (retval);
+	}
+
+	return retval;
+}
+
 static void
 empathy_contact_factory_class_init (EmpathyContactFactoryClass *klass)
 {
 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
 	object_class->finalize = contact_factory_finalize;
+	object_class->constructor = contact_factory_constructor;
 
 	g_type_class_add_private (object_class, sizeof (EmpathyContactFactoryPriv));
 }
@@ -157,17 +180,8 @@
 }
 
 EmpathyContactFactory *
-empathy_contact_factory_new (void)
+empathy_contact_factory_dup_singleton (void)
 {
-	static EmpathyContactFactory *factory = NULL;
-
-	if (!factory) {
-		factory = g_object_new (EMPATHY_TYPE_CONTACT_FACTORY, NULL);
-		g_object_add_weak_pointer (G_OBJECT (factory), (gpointer) &factory);
-	} else {
-		g_object_ref (factory);
-	}
-
-	return factory;
+	return g_object_new (EMPATHY_TYPE_CONTACT_FACTORY, NULL);
 }
 

Modified: trunk/libempathy/empathy-contact-factory.h
==============================================================================
--- trunk/libempathy/empathy-contact-factory.h	(original)
+++ trunk/libempathy/empathy-contact-factory.h	Fri Jan  9 10:05:54 2009
@@ -51,7 +51,7 @@
 };
 
 GType                  empathy_contact_factory_get_type         (void) G_GNUC_CONST;
-EmpathyContactFactory *empathy_contact_factory_new              (void);
+EmpathyContactFactory *empathy_contact_factory_dup_singleton    (void);
 EmpathyTpContactFactory *empathy_contact_factory_get_tp_factory (EmpathyContactFactory *factory,
 								 McAccount             *account);
 EmpathyContact *       empathy_contact_factory_get_user         (EmpathyContactFactory *factory,

Modified: trunk/libempathy/empathy-dispatcher.c
==============================================================================
--- trunk/libempathy/empathy-dispatcher.c	(original)
+++ trunk/libempathy/empathy-dispatcher.c	Fri Jan  9 10:05:54 2009
@@ -235,7 +235,7 @@
 	tube = g_slice_new (DispatcherTube);
 	tube->ref_count = 1;
 	tube->handled = FALSE;
-	tube->factory = empathy_contact_factory_new ();
+	tube->factory = empathy_contact_factory_dup_singleton ();
 	tube->bus_name = empathy_tube_handler_build_bus_name (type, service);
 	tube->object_path = empathy_tube_handler_build_object_path (type, service);
 	tube->public.activatable = FALSE;
@@ -850,7 +850,7 @@
 	group = empathy_tp_group_new (channel);
 	empathy_run_until_ready (group);
 
-	factory = empathy_contact_factory_new ();
+	factory = empathy_contact_factory_dup_singleton ();
 	self_contact = empathy_contact_factory_get_user (factory, account);
 	empathy_contact_run_until_ready (self_contact,
 					 EMPATHY_CONTACT_READY_HANDLE,
@@ -873,7 +873,7 @@
 	EmpathyContactFactory *factory;
 	EmpathyContact        *contact;
 
-	factory = empathy_contact_factory_new ();
+	factory = empathy_contact_factory_dup_singleton ();
 	contact = empathy_contact_factory_get_from_id (factory, account, contact_id);
 	empathy_contact_run_until_ready (contact, EMPATHY_CONTACT_READY_HANDLE, NULL);
 
@@ -922,7 +922,7 @@
 	EmpathyContactFactory *factory;
 	EmpathyContact        *contact;
 
-	factory = empathy_contact_factory_new ();
+	factory = empathy_contact_factory_dup_singleton ();
 	contact = empathy_contact_factory_get_from_id (factory, account, contact_id);
 	empathy_contact_run_until_ready (contact, EMPATHY_CONTACT_READY_HANDLE, NULL);
 

Modified: trunk/libempathy/empathy-tp-chat.c
==============================================================================
--- trunk/libempathy/empathy-tp-chat.c	(original)
+++ trunk/libempathy/empathy-tp-chat.c	Fri Jan  9 10:05:54 2009
@@ -950,7 +950,7 @@
 
 	priv = GET_PRIV (chat);
 	priv->account = empathy_channel_get_account (priv->channel);
-	priv->factory = empathy_contact_factory_new ();
+	priv->factory = empathy_contact_factory_dup_singleton ();
 	priv->user = empathy_contact_factory_get_user (priv->factory, priv->account);
 
 	g_signal_connect (priv->channel, "invalidated",

Modified: trunk/libempathy/empathy-tp-file.c
==============================================================================
--- trunk/libempathy/empathy-tp-file.c	(original)
+++ trunk/libempathy/empathy-tp-file.c	Fri Jan  9 10:05:54 2009
@@ -507,7 +507,7 @@
 
   tp_file = EMPATHY_TP_FILE (file_obj);
 
-  tp_file->priv->factory = empathy_contact_factory_new ();
+  tp_file->priv->factory = empathy_contact_factory_dup_singleton ();
   tp_file->priv->mc = empathy_mission_control_new ();
 
   g_signal_connect (tp_file->priv->channel, "invalidated",

Modified: trunk/libempathy/empathy-tp-group.c
==============================================================================
--- trunk/libempathy/empathy-tp-group.c	(original)
+++ trunk/libempathy/empathy-tp-group.c	Fri Jan  9 10:05:54 2009
@@ -570,7 +570,7 @@
 	EmpathyTpGroupPriv *priv = GET_PRIV (group);
 	gboolean            channel_ready;
 
-	priv->factory = empathy_contact_factory_new ();
+	priv->factory = empathy_contact_factory_dup_singleton ();
 	priv->account = empathy_channel_get_account (priv->channel);
 
 	g_signal_connect (priv->channel, "invalidated",

Modified: trunk/libempathy/empathy-tp-tube.c
==============================================================================
--- trunk/libempathy/empathy-tp-tube.c	(original)
+++ trunk/libempathy/empathy-tp-tube.c	Fri Jan  9 10:05:54 2009
@@ -351,7 +351,7 @@
 
   tube->priv = priv;
 
-  priv->factory = empathy_contact_factory_new ();
+  priv->factory = empathy_contact_factory_dup_singleton ();
 }
 
 EmpathyTpTube *

Modified: trunk/megaphone/src/megaphone-applet.c
==============================================================================
--- trunk/megaphone/src/megaphone-applet.c	(original)
+++ trunk/megaphone/src/megaphone-applet.c	Fri Jan  9 10:05:54 2009
@@ -112,7 +112,7 @@
 		MEGAPHONE_TYPE_APPLET, MegaphoneAppletPriv);
 
 	applet->priv = priv;
-	priv->factory = empathy_contact_factory_new ();
+	priv->factory = empathy_contact_factory_dup_singleton ();
 	priv->gconf = gconf_client_get_default ();
 
 	/* Image holds the contact avatar */

Modified: trunk/src/empathy-event-manager.c
==============================================================================
--- trunk/src/empathy-event-manager.c	(original)
+++ trunk/src/empathy-event-manager.c	Fri Jan  9 10:05:54 2009
@@ -223,7 +223,7 @@
 		McAccount             *account;
 		EmpathyContactFactory *factory;
 
-		factory = empathy_contact_factory_new ();
+		factory = empathy_contact_factory_dup_singleton ();
 		handle = tp_channel_get_handle (channel, NULL);
 		account = empathy_channel_get_account (channel);
 

Modified: trunk/src/empathy-main-window.c
==============================================================================
--- trunk/src/empathy-main-window.c	(original)
+++ trunk/src/empathy-main-window.c	Fri Jan  9 10:05:54 2009
@@ -1009,7 +1009,7 @@
 		McAccount             *account;
 
 		account = accounts->data;
-		factory = empathy_contact_factory_new ();
+		factory = empathy_contact_factory_dup_singleton ();
 		contact = empathy_contact_factory_get_user (factory, account);
 		empathy_contact_run_until_ready (contact,
 						 EMPATHY_CONTACT_READY_HANDLE |

Modified: trunk/tests/contact-run-until-ready.c
==============================================================================
--- trunk/tests/contact-run-until-ready.c	(original)
+++ trunk/tests/contact-run-until-ready.c	Fri Jan  9 10:05:54 2009
@@ -13,7 +13,7 @@
 	EmpathyContact        *contact;
 	EmpathyContactReady    ready_flags;
 
-	factory = empathy_contact_factory_new ();
+	factory = empathy_contact_factory_dup_singleton ();
 	account = mc_account_lookup ("jabber0");
 	contact = empathy_contact_factory_get_from_handle (factory, account, 2);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]