[evolution] EMConfig coding style cleanups.



commit 74f86383fce61cd6712804f39a1baf011d59729a
Author: Matthew Barnes <mbarnes redhat com>
Date:   Mon May 2 15:12:33 2011 -0400

    EMConfig coding style cleanups.

 mail/em-config.c |  150 +++++++++++++++++++++++++++--------------------------
 mail/em-config.h |   28 ++++++----
 2 files changed, 92 insertions(+), 86 deletions(-)
---
diff --git a/mail/em-config.c b/mail/em-config.c
index 2ac286b..bc1c0e5 100644
--- a/mail/em-config.c
+++ b/mail/em-config.c
@@ -38,38 +38,39 @@
 
 #include <e-util/e-util.h>
 
-static GObjectClass *emp_parent;
+G_DEFINE_TYPE (EMConfig, em_config, E_TYPE_CONFIG)
 
 struct _EMConfigPrivate {
 	gint account_changed_id;
 };
 
 static void
-emp_init (GObject *o)
+emp_account_changed (struct _EAccount *ea, gint id, EMConfig *emc)
 {
-	EMConfig *emp = (EMConfig *)o;
-
-	emp->priv = g_malloc0 (sizeof (*emp->priv));
+	e_config_target_changed ((EConfig *)emc, E_CONFIG_TARGET_CHANGED_STATE);
 }
 
 static void
-emp_finalise (GObject *o)
+em_config_finalize (GObject *object)
 {
-	struct _EMConfigPrivate *p = ((EMConfig *)o)->priv;
-
 	/* Note we can't be unreffed if a target exists, so the target
 	 * will need to be freed first which will clean up any
 	 * listeners */
 
-	g_free (p);
+	g_free (((EMConfig *) object)->priv);
 
-	((GObjectClass *)emp_parent)->finalize (o);
+	/* Chain up to parent's finalize() method. */
+	G_OBJECT_CLASS (em_config_parent_class)->finalize (object);
 }
 
 static void
-emp_target_free (EConfig *ep, EConfigTarget *t)
+em_config_set_target (EConfig *ep,
+                      EConfigTarget *t)
 {
-	if (ep->target == t) {
+	/* Chain up to parent's set_target() method. */
+	E_CONFIG_CLASS (em_config_parent_class)->set_target (ep, t);
+
+	if (t) {
 		switch (t->type) {
 		case EM_CONFIG_TARGET_FOLDER: {
 			/*EMConfigTargetFolder *s = (EMConfigTargetFolder *)t;*/
@@ -79,10 +80,35 @@ emp_target_free (EConfig *ep, EConfigTarget *t)
 			break; }
 		case EM_CONFIG_TARGET_ACCOUNT: {
 			EMConfigTargetAccount *s = (EMConfigTargetAccount *)t;
+			EMConfig *config = (EMConfig *) ep;
+
+			config->priv->account_changed_id = g_signal_connect (
+				s->account, "changed",
+				G_CALLBACK(emp_account_changed), ep);
+			break; }
+		}
+	}
+}
+
+static void
+em_config_target_free (EConfig *ep,
+                       EConfigTarget *t)
+{
+	if (ep->target == t) {
+		switch (t->type) {
+		case EM_CONFIG_TARGET_FOLDER:
+			break;
+		case EM_CONFIG_TARGET_PREFS:
+			break;
+		case EM_CONFIG_TARGET_ACCOUNT: {
+			EMConfigTargetAccount *s = (EMConfigTargetAccount *)t;
+			EMConfig *config = (EMConfig *) ep;
 
-			if (((EMConfig *)ep)->priv->account_changed_id) {
-				g_signal_handler_disconnect (s->account, ((EMConfig *)ep)->priv->account_changed_id);
-				((EMConfig *)ep)->priv->account_changed_id = 0;
+			if (config->priv->account_changed_id > 0) {
+				g_signal_handler_disconnect (
+					s->account,
+					config->priv->account_changed_id);
+				config->priv->account_changed_id = 0;
 			}
 			break; }
 		}
@@ -108,95 +134,71 @@ emp_target_free (EConfig *ep, EConfigTarget *t)
 		break; }
 	}
 
-	((EConfigClass *)emp_parent)->target_free (ep, t);
+	/* Chain up to parent's target_free() method. */
+	E_CONFIG_CLASS (em_config_parent_class)->target_free (ep, t);
 }
 
 static void
-emp_account_changed (struct _EAccount *ea, gint id, EMConfig *emc)
+em_config_class_init (EMConfigClass *class)
 {
-	e_config_target_changed ((EConfig *)emc, E_CONFIG_TARGET_CHANGED_STATE);
-}
+	GObjectClass *object_class;
+	EConfigClass *config_class;
 
-static void
-emp_set_target (EConfig *ep, EConfigTarget *t)
-{
-	((EConfigClass *)emp_parent)->set_target (ep, t);
-
-	if (t) {
-		switch (t->type) {
-		case EM_CONFIG_TARGET_FOLDER: {
-			/*EMConfigTargetFolder *s = (EMConfigTargetFolder *)t;*/
-			break; }
-		case EM_CONFIG_TARGET_PREFS: {
-			/*EMConfigTargetPrefs *s = (EMConfigTargetPrefs *)t;*/
-			break; }
-		case EM_CONFIG_TARGET_ACCOUNT: {
-			EMConfigTargetAccount *s = (EMConfigTargetAccount *)t;
+	object_class = G_OBJECT_CLASS (class);
+	object_class->finalize = em_config_finalize;
 
-			((EMConfig *)ep)->priv->account_changed_id = g_signal_connect(s->account, "changed", G_CALLBACK(emp_account_changed), ep);
-			break; }
-		}
-	}
+	config_class = E_CONFIG_CLASS (class);
+	config_class->set_target = em_config_set_target;
+	config_class->target_free = em_config_target_free;
 }
 
 static void
-emp_class_init (GObjectClass *klass)
-{
-	klass->finalize = emp_finalise;
-	((EConfigClass *)klass)->set_target = emp_set_target;
-	((EConfigClass *)klass)->target_free = emp_target_free;
-}
-
-GType
-em_config_get_type (void)
+em_config_init (EMConfig *emp)
 {
-	static GType type = 0;
-
-	if (type == 0) {
-		static const GTypeInfo info = {
-			sizeof (EMConfigClass),
-			NULL, NULL,
-			(GClassInitFunc)emp_class_init,
-			NULL, NULL,
-			sizeof (EMConfig), 0,
-			(GInstanceInitFunc)emp_init
-		};
-		emp_parent = g_type_class_ref (e_config_get_type ());
-		type = g_type_register_static(e_config_get_type(), "EMConfig", &info, 0);
-	}
-
-	return type;
+	emp->priv = g_malloc0 (sizeof (*emp->priv));
 }
 
-EMConfig *em_config_new (gint type, const gchar *menuid)
+EMConfig *
+em_config_new (gint type,
+               const gchar *menuid)
 {
-	EMConfig *emp = g_object_new (em_config_get_type (), NULL);
+	EMConfig *emp;
 
+	emp = g_object_new (em_config_get_type (), NULL);
 	e_config_construct (&emp->config, type, menuid);
 
 	return emp;
 }
 
 EMConfigTargetFolder *
-em_config_target_new_folder (EMConfig *emp, CamelFolder *folder, const gchar *uri)
+em_config_target_new_folder (EMConfig *emp,
+                             CamelFolder *folder,
+                             const gchar *uri)
 {
-	EMConfigTargetFolder *t = e_config_target_new (&emp->config, EM_CONFIG_TARGET_FOLDER, sizeof (*t));
+	EMConfigTargetFolder *t;
+
+	t = e_config_target_new (
+		&emp->config, EM_CONFIG_TARGET_FOLDER, sizeof (*t));
 
 	t->uri = g_strdup (uri);
-	t->folder = folder;
-	g_object_ref (folder);
+	t->folder = g_object_ref (folder);
 
 	return t;
 }
 
 EMConfigTargetPrefs *
-em_config_target_new_prefs (EMConfig *emp, struct _GConfClient *gconf)
+em_config_target_new_prefs (EMConfig *emp,
+                            GConfClient *gconf)
 {
-	EMConfigTargetPrefs *t = e_config_target_new (&emp->config, EM_CONFIG_TARGET_PREFS, sizeof (*t));
+	EMConfigTargetPrefs *t;
+
+	t = e_config_target_new (
+		&emp->config, EM_CONFIG_TARGET_PREFS, sizeof (*t));
 
-	t->gconf = gconf;
-	if (gconf)
-		g_object_ref (gconf);
+	if (GCONF_IS_CLIENT (gconf))
+		t->gconf = g_object_ref (gconf);
+	else
+		t->gconf = NULL;
 
 	return t;
 }
diff --git a/mail/em-config.h b/mail/em-config.h
index b0493cd..bd39a47 100644
--- a/mail/em-config.h
+++ b/mail/em-config.h
@@ -20,8 +20,8 @@
  *
  */
 
-#ifndef __EM_CONFIG_H__
-#define __EM_CONFIG_H__
+#ifndef EM_CONFIG_H
+#define EM_CONFIG_H
 
 #include <camel/camel.h>
 #include <gconf/gconf-client.h>
@@ -71,10 +71,8 @@ struct _EMConfigTargetAccount {
 
 typedef struct _EConfigItem EMConfigItem;
 
-/* The object */
 struct _EMConfig {
 	EConfig config;
-
 	EMConfigPrivate *priv;
 };
 
@@ -82,14 +80,20 @@ struct _EMConfigClass {
 	EConfigClass config_class;
 };
 
-GType em_config_get_type (void);
-
-EMConfig *em_config_new (gint type, const gchar *menuid);
-
-EMConfigTargetFolder *em_config_target_new_folder (EMConfig *emp, CamelFolder *folder, const gchar *uri);
-EMConfigTargetPrefs *em_config_target_new_prefs (EMConfig *emp, GConfClient *gconf);
-EMConfigTargetAccount *em_config_target_new_account (EMConfig *emp, EAccount *account);
+GType		em_config_get_type		(void);
+EMConfig *	em_config_new			(gint type,
+						 const gchar *menuid);
+EMConfigTargetFolder *
+		em_config_target_new_folder	(EMConfig *emp,
+						 CamelFolder *folder,
+						 const gchar *uri);
+EMConfigTargetPrefs *
+		em_config_target_new_prefs	(EMConfig *emp,
+						 GConfClient *gconf);
+EMConfigTargetAccount *
+		em_config_target_new_account	(EMConfig *emp,
+						 EAccount *account);
 
 G_END_DECLS
 
-#endif /* __EM_CONFIG_H__ */
+#endif /* EM_CONFIG_H */



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