Mercurial > geeqie
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)