diff libpurple/theme.c @ 25096:fbf72bbd1084

Fixed up a few typos, readability, leaks, and bugs, all minor and mostly in theme and theme loader classes
author Justin Rodriguez <ffdragon@soc.pidgin.im>
date Mon, 30 Jun 2008 03:50:35 +0000
parents 5a02912e0bac
children 748308865dbf
line wrap: on
line diff
--- a/libpurple/theme.c	Fri Jun 27 21:01:47 2008 +0000
+++ b/libpurple/theme.c	Mon Jun 30 03:50:35 2008 +0000
@@ -37,7 +37,7 @@
 	gchar *author;
 	gchar *type;
 	gchar *dir;
-	PurpleStoredImage *img;
+	gchar *img;
 } PurpleThemePrivate;
 
 /******************************************************************************
@@ -87,7 +87,7 @@
 			g_value_set_string(value, purple_theme_get_dir(theme));
 			break;
 		case PROP_IMAGE:
-			g_value_set_pointer(value, purple_theme_get_image(theme));
+			g_value_set_string(value, purple_theme_get_image(theme));
 			break;
 		default:
 			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec);
@@ -118,7 +118,7 @@
 			purple_theme_set_dir(theme, g_value_get_string(value));
 			break;
 		case PROP_IMAGE:
-			purple_theme_set_image(theme, g_value_get_pointer(value));
+			purple_theme_set_image(theme, g_value_get_string(value));
 			break;
 		default:
 			G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, psec);
@@ -130,7 +130,8 @@
 purple_theme_init(GTypeInstance *instance,
 			gpointer klass)
 {
-	(PURPLE_THEME(instance))->priv = g_new0(PurpleThemePrivate, 1);
+	PurpleTheme *theme = PURPLE_THEME(instance);
+	theme->priv = g_new0(PurpleThemePrivate, 1);
 }
 
 static void
@@ -144,7 +145,7 @@
 	g_free(priv->author);
 	g_free(priv->type);
 	g_free(priv->dir);
-	purple_imgstore_unref(priv->img);
+	g_free(priv->img);
 
 	G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
@@ -192,8 +193,9 @@
 				    G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
 	g_object_class_install_property(obj_class, PROP_DIR, pspec);
 	/* PREVIEW IMAGE */
-	pspec = g_param_spec_pointer("image", "Image",
+	pspec = g_param_spec_string("image", "Image",
 				    "A preview image of the theme",
+				    NULL,
 				    G_PARAM_READWRITE);
 	g_object_class_install_property(obj_class, PROP_IMAGE, pspec);
 }
@@ -228,7 +230,7 @@
  * Public API functions                                                      *
  *****************************************************************************/
 
-gchar *
+const gchar *
 purple_theme_get_name(PurpleTheme *theme)
 {
 	PurpleThemePrivate *priv;
@@ -249,10 +251,10 @@
 	priv = PURPLE_THEME_GET_PRIVATE(theme);
 
 	g_free(priv->name);
-	priv->name = g_strdup (name);
+	priv->name = g_strdup(name);
 }
 
-gchar *
+const gchar *
 purple_theme_get_description(PurpleTheme *theme)
 {
 	PurpleThemePrivate *priv;
@@ -273,10 +275,10 @@
 	priv = PURPLE_THEME_GET_PRIVATE(theme);
 
 	g_free(priv->description);
-	priv->description = g_strdup (description);
+	priv->description = g_strdup(description);
 }
 
-gchar *
+const gchar *
 purple_theme_get_author(PurpleTheme *theme)
 {
 	PurpleThemePrivate *priv;
@@ -297,10 +299,10 @@
 	priv = PURPLE_THEME_GET_PRIVATE(theme);
 
 	g_free(priv->author);
-	priv->author = g_strdup (author);
+	priv->author = g_strdup(author);
 }
 
-gchar *
+const gchar *
 purple_theme_get_type_string(PurpleTheme *theme)
 {
 	PurpleThemePrivate *priv;
@@ -322,10 +324,10 @@
 	priv = PURPLE_THEME_GET_PRIVATE(theme);
 
 	g_free(priv->type);
-	priv->type = g_strdup (type);
+	priv->type = g_strdup(type);
 }
 
-gchar *
+const gchar *
 purple_theme_get_dir(PurpleTheme *theme) 
 {
 	PurpleThemePrivate *priv;
@@ -346,10 +348,10 @@
 	priv = PURPLE_THEME_GET_PRIVATE(theme);
 
 	g_free(priv->dir);
-	priv->dir = g_strdup (dir);
+	priv->dir = g_strdup(dir);
 }
 
-PurpleStoredImage *
+const gchar *
 purple_theme_get_image(PurpleTheme *theme)
 {
 	PurpleThemePrivate *priv;
@@ -358,11 +360,21 @@
 
 	priv = PURPLE_THEME_GET_PRIVATE(theme);
 
-	return purple_imgstore_ref(priv->img);
+	return priv->img;
+}
+
+gchar *
+purple_theme_get_image_full(PurpleTheme *theme)
+{
+	const gchar *filename = purple_theme_get_image(theme);
+	
+	g_return_val_if_fail(filename, NULL);
+
+	return g_build_filename(purple_theme_get_dir(PURPLE_THEME(theme)), filename, NULL);
 }
 
 void 
-purple_theme_set_image(PurpleTheme *theme, PurpleStoredImage *img)
+purple_theme_set_image(PurpleTheme *theme, const gchar *img)
 {	
 	PurpleThemePrivate *priv;
 
@@ -370,6 +382,6 @@
 
 	priv = PURPLE_THEME_GET_PRIVATE(theme);
 
-	purple_imgstore_unref(priv->img);
-	priv->img = img;
+	g_free(priv->img);
+	priv->img = g_strdup(img);
 }