Introduce image_loader_set_done_func().
authorLaurent Monin <geeqie@norz.org>
Fri, 18 Jul 2008 09:55:15 +0000 (09:55 +0000)
committerLaurent Monin <geeqie@norz.org>
Fri, 18 Jul 2008 09:55:15 +0000 (09:55 +0000)
src/image-load.c
src/image-load.h
src/image.c

index 3bb6764..aa95fb5 100644 (file)
@@ -427,6 +427,16 @@ void image_loader_set_error_func(ImageLoader *il,
        il->data_error = data_error;
 }
 
+void image_loader_set_done_func(ImageLoader *il,
+                               void (*func_done)(ImageLoader *, gpointer),
+                               gpointer data_done)
+{
+       if (!il) return;
+
+       il->func_done = func_done;
+       il->data_done = data_done;
+}
+
 void image_loader_set_percent_func(ImageLoader *il,
                                   void (*func_percent)(ImageLoader *, gdouble, gpointer),
                                   gpointer data_percent)
@@ -465,8 +475,7 @@ gint image_loader_start(ImageLoader *il, void (*func_done)(ImageLoader *, gpoint
 
        if (!image_loader_path(il)) return FALSE;
 
-       il->func_done = func_done;
-       il->data_done = data_done;
+       image_loader_set_done_func(il, func_done, data_done);
 
        return image_loader_setup(il);
 }
index 63a4526..2439a0e 100644 (file)
@@ -27,6 +27,9 @@ void image_loader_set_area_ready_func(ImageLoader *il,
 void image_loader_set_error_func(ImageLoader *il,
                                 void (*func_error)(ImageLoader *, gpointer),
                                 gpointer data_error);
+void image_loader_set_done_func(ImageLoader *il,
+                               void (*func_done)(ImageLoader *, gpointer),
+                               gpointer data_done);
 void image_loader_set_percent_func(ImageLoader *il,
                                   void (*func_percent)(ImageLoader *, gdouble, gpointer),
                                   gpointer data_percent);
index 3d8c4d7..1cc78dd 100644 (file)
@@ -621,15 +621,13 @@ static gint image_read_ahead_check(ImageWindow *imd)
                /* override the old signals */
                image_loader_set_area_ready_func(imd->il, image_load_area_cb, imd);
                image_loader_set_error_func(imd->il, image_load_error_cb, imd);
+               image_loader_set_done_func(imd->il, image_load_done_cb, imd);
                image_loader_set_buffer_size(imd->il, IMAGE_LOAD_BUFFER_COUNT);
 
 #ifdef IMAGE_THROTTLE_LARGER_IMAGES
                image_load_buffer_throttle(imd->il);
 #endif
 
-               /* do this one directly (probably should add a set func) */
-               imd->il->func_done = image_load_done_cb;
-
                g_object_set(G_OBJECT(imd->pr), "loading", TRUE, NULL);
                image_state_set(imd, IMAGE_STATE_LOADING);