diff src/thumb.c @ 1012:fe82830ab8fd

converted image loader to a GObject and use signals for notification
author nadvornik
date Fri, 29 Aug 2008 20:53:53 +0000
parents 616b14da08c2
children ab24c46aa6e4
line wrap: on
line diff
--- a/src/thumb.c	Fri Aug 29 12:35:13 2008 +0000
+++ b/src/thumb.c	Fri Aug 29 20:53:53 2008 +0000
@@ -168,8 +168,10 @@
 		tl->cache_hit = FALSE;
 
 		thumb_loader_setup(tl, tl->fd->path);
+	
+		g_signal_connect (G_OBJECT(tl->il), "done", (GCallback)thumb_loader_done_cb, tl);
 
-		if (!image_loader_start(tl->il, thumb_loader_done_cb, tl))
+		if (!image_loader_start(tl->il))
 			{
 			image_loader_free(tl->il);
 			tl->il = NULL;
@@ -278,8 +280,8 @@
 		image_loader_set_requested_size(tl->il, tl->max_w, tl->max_h);
 		}
 
-	image_loader_set_error_func(tl->il, thumb_loader_error_cb, tl);
-	if (tl->func_progress) image_loader_set_percent_func(tl->il, thumb_loader_percent_cb, tl);
+	g_signal_connect (G_OBJECT(tl->il), "error", (GCallback)thumb_loader_error_cb, tl);
+	if (tl->func_progress) g_signal_connect (G_OBJECT(tl->il), "percent", (GCallback)thumb_loader_percent_cb, tl);
 }
 
 void thumb_loader_set_callbacks(ThumbLoader *tl,
@@ -391,7 +393,8 @@
 		thumb_loader_setup(tl, tl->fd->path);
 		}
 
-	if (!image_loader_start(tl->il, thumb_loader_done_cb, tl))
+	g_signal_connect (G_OBJECT(tl->il), "done", (GCallback)thumb_loader_done_cb, tl);
+	if (!image_loader_start(tl->il))
 		{
 		/* try from original if cache attempt */
 		if (tl->cache_hit)
@@ -400,7 +403,8 @@
 			log_printf("%s", _("Thumbnail image in cache failed to load, trying to recreate.\n"));
 
 			thumb_loader_setup(tl, tl->fd->path);
-			if (image_loader_start(tl->il, thumb_loader_done_cb, tl)) return TRUE;
+			g_signal_connect (G_OBJECT(tl->il), "done", (GCallback)thumb_loader_done_cb, tl);
+			if (image_loader_start(tl->il)) return TRUE;
 			}
 		/* mark failed thumbnail in cache with 0 byte file */
 		if (tl->cache_enable)