> Only a minor nitpick from me: I don't think you actually need the > "rotated" temporary variable.
No, me neither - going without the temporary is much neater and I can't honestly see why it is technically needed. However, it's done this way elsewhere in geeqie's code and I didn't have time to sort out whether it was required for the proper functioning of things like garbage collection, or just a leftover remnant from earlier changes. I'm happy to take advice on this from others who are more familiar with geeqie's internals. Regards jonathan > On 04/02/2010 11:17 AM, Jonathan Woithe wrote: > > Hi > > > > Find below a patch which adds auto-rotation of proof images based on image > > EXIF information. It is a revision of a proof-of-concept patch I did up for > > gqview 2.0.4 which, for well documented reasons, didn't get anywhere after > > submission. The patch below is against geeqie 1.0. > > > > The proof auto-rotation feature is controlled by a new setting in the > > "convenience" section of the image preferences dialog. This way the > > existing behaviour is still available for those who want to use it. > > > > I find this new feature very useful when preparing proofing sheets and I > > suspect others would too. Please consider this for inclusion in geeqie. > > > > Regards > > jonathan > > > > diff -ru --unidirectional-new-file geeqie-1.0-orig/src/options.c > > geeqie-1.0/src/options.c > > --- geeqie-1.0-orig/src/options.c 2010-02-18 07:51:19.000000000 +1030 > > +++ geeqie-1.0/src/options.c 2010-04-02 20:36:46.448672632 +1030 > > @@ -66,6 +66,7 @@ > > options->image.dither_quality = GDK_RGB_DITHER_NORMAL; > > options->image.enable_read_ahead = TRUE; > > options->image.exif_rotate_enable = TRUE; > > + options->image.exif_proof_rotate_enable = TRUE; > > options->image.fit_window_to_image = FALSE; > > options->image.limit_autofit_size = FALSE; > > options->image.limit_window_size = TRUE; > > diff -ru --unidirectional-new-file geeqie-1.0-orig/src/options.h > > geeqie-1.0/src/options.h > > --- geeqie-1.0-orig/src/options.h 2010-02-18 07:51:19.000000000 +1030 > > +++ geeqie-1.0/src/options.h 2010-04-02 20:36:17.742672675 +1030 > > @@ -50,6 +50,7 @@ > > /* image */ > > struct { > > gboolean exif_rotate_enable; > > + gboolean exif_proof_rotate_enable; > > guint scroll_reset_method; > > gboolean fit_window_to_image; > > gboolean limit_window_size; > > diff -ru --unidirectional-new-file geeqie-1.0-orig/src/preferences.c > > geeqie-1.0/src/preferences.c > > --- geeqie-1.0-orig/src/preferences.c 2010-02-18 07:51:19.000000000 > > +1030 > > +++ geeqie-1.0/src/preferences.c 2010-04-02 20:41:25.949672731 +1030 > > @@ -285,6 +285,7 @@ > > > > options->update_on_time_change = c_options->update_on_time_change; > > options->image.exif_rotate_enable = c_options->image.exif_rotate_enable; > > + options->image.exif_proof_rotate_enable = > > c_options->image.exif_proof_rotate_enable; > > > > options->duplicates_similarity_threshold = > > c_options->duplicates_similarity_threshold; > > > > @@ -1309,6 +1310,9 @@ > > > > pref_checkbox_new_int(group, _("Auto rotate image using Exif > > information"), > > > > options->image.exif_rotate_enable,&c_options->image.exif_rotate_enable); > > + > > + pref_checkbox_new_int(group, _("Auto rotate proofs using Exif > > information"), > > + > > options->image.exif_proof_rotate_enable,&c_options->image.exif_proof_rotate_enable); > > } > > > > /* windows tab */ > > diff -ru --unidirectional-new-file geeqie-1.0-orig/src/print.c > > geeqie-1.0/src/print.c > > --- geeqie-1.0-orig/src/print.c 2010-02-18 07:51:19.000000000 +1030 > > +++ geeqie-1.0/src/print.c 2010-04-02 20:48:31.690672852 +1030 > > @@ -2189,6 +2189,7 @@ > > gdouble icon_w, icon_h; > > gdouble scale; > > gboolean success = TRUE; > > + GdkPixbuf *rotated = NULL; > > > > if (pw->proof_columns< 1 || pw->proof_rows< 1) > > { > > @@ -2202,6 +2203,11 @@ > > > > pixbuf = image_loader_get_pixbuf(il); > > > > + if (options->image.exif_proof_rotate_enable == TRUE) { > > + rotated = pixbuf_apply_orientation(pixbuf, > > il->fd->exif_orientation); > > + pixbuf = rotated; > > + } > > + > > w = gdk_pixbuf_get_width(pixbuf); > > h = gdk_pixbuf_get_height(pixbuf); > > ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Geeqie-devel mailing list Geeqie-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geeqie-devel