Mercurial > geeqie.yaz
diff src/image.c @ 26:acd9885ebd78
Mon Mar 28 20:23:34 2005 John Ellis <johne@verizon.net>
* image.[ch]: Add utility to sync image settings to user preferences.
* pixbuf-renderer.c: Fix rounding errors.
* preferences.c: Call image_options_sync() when applying changes.
##### Note: GQview CVS on sourceforge is not always up to date, please use #####
##### an offical release when making enhancements and translation updates. #####
author | gqview |
---|---|
date | Tue, 29 Mar 2005 01:28:17 +0000 |
parents | 0c3b353b666e |
children | 9c24765c2d3a |
line wrap: on
line diff
--- a/src/image.c Sat Mar 26 03:50:35 2005 +0000 +++ b/src/image.c Tue Mar 29 01:28:17 2005 +0000 @@ -39,6 +39,9 @@ #define IMAGE_AUTO_REFRESH_TIME 3000 +static GList *image_list = NULL; + + /* *------------------------------------------------------------------- * 'signals' @@ -1328,12 +1331,50 @@ /* *------------------------------------------------------------------- + * prefs sync + *------------------------------------------------------------------- + */ + +static void image_options_set(ImageWindow *imd) +{ + g_object_set(G_OBJECT(imd->pr), "zoom_quality", zoom_quality, + "zoom_2pass", two_pass_zoom, + "zoom_expand", zoom_to_fit_expands, + "dither_quality", dither_quality, + "scroll_reset", scroll_reset_method, + "cache_display", tile_cache_max, + "window_fit", fit_window, + "window_limit", limit_window_size, + "window_limit_value", max_window_size, + NULL); +} + +void image_options_sync(void) +{ + GList *work; + + work = image_list; + while (work) + { + ImageWindow *imd; + + imd = work->data; + work = work->next; + + image_options_set(imd); + } +} + +/* + *------------------------------------------------------------------- * init / destroy *------------------------------------------------------------------- */ static void image_free(ImageWindow *imd) { + image_list = g_list_remove(image_list, imd); + image_reset(imd); image_read_ahead_cancel(imd); @@ -1392,7 +1433,7 @@ imd->pr = GTK_WIDGET(pixbuf_renderer_new()); - g_object_set(G_OBJECT(imd->pr), "zoom_2pass", TRUE, NULL); + image_options_set(imd); if (imd->has_frame) { @@ -1431,6 +1472,8 @@ g_signal_connect(G_OBJECT(imd->pr), "render_complete", G_CALLBACK(image_render_complete_cb), imd); + image_list = g_list_append(image_list, imd); + return imd; }