Update of /cvsroot/ufraw/ufraw
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv9300

Modified Files:
        ufraw_preview.c 
Log Message:
Fix rotation.

Index: ufraw_preview.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_preview.c,v
retrieving revision 1.328
retrieving revision 1.329
diff -u -d -r1.328 -r1.329
--- ufraw_preview.c     31 Jan 2010 08:23:27 -0000      1.328
+++ ufraw_preview.c     31 Jan 2010 14:15:11 -0000      1.329
@@ -663,13 +663,6 @@
 #endif
 }
 
-static void preview_draw_all(preview_data *data)
-{
-    int width = gdk_pixbuf_get_width(data->PreviewPixbuf);
-    int height = gdk_pixbuf_get_height(data->PreviewPixbuf);
-    preview_draw_area(data, 0, 0, width, height);
-}
-
 static gboolean preview_draw_crop(preview_data *data)
 {
     int CropX1, CropX2, CropY1, CropY2;
@@ -2137,73 +2130,21 @@
 
 static void flip_image(GtkWidget *widget, int flip)
 {
-    int temp;
     preview_data *data = get_preview_data(widget);
 
-    if (data->FreezeDialog) return;
-    ufraw_flip_image(data->UF, flip);
-
-    if (flip & 1) {
-       temp = CFG->CropX1;
-       CFG->CropX1 = data->UF->rotatedWidth - CFG->CropX2;
-       CFG->CropX2 = data->UF->rotatedWidth - temp;
-       if ( data->SpotX1>=0 ) {
-           temp = data->SpotX1;
-           data->SpotX1 = data->UF->rotatedWidth - data->SpotX2;
-           data->SpotX2 = data->UF->rotatedWidth - temp;
-       }
-    }
-    if (flip & 2) {
-       temp = CFG->CropY1;
-       CFG->CropY1 = data->UF->rotatedHeight - CFG->CropY2;
-       CFG->CropY2 = data->UF->rotatedHeight - temp;
-       if ( data->SpotX1>=0 ) {
-           temp = data->SpotY1;
-           data->SpotY1 = data->UF->rotatedHeight - data->SpotY2;
-           data->SpotY2 = data->UF->rotatedHeight - temp;
-       }
-    }
-    if (flip & 4) {
-       temp = CFG->CropX1;
-       CFG->CropX1 = CFG->CropY1;
-       CFG->CropY1 = temp;
-       temp = CFG->CropX2;
-       CFG->CropX2 = CFG->CropY2;
-       CFG->CropY2 = temp;
-       if ( data->SpotX1>=0 ) {
-           temp = data->SpotX1;
-           data->SpotX1 = data->SpotY1;
-           data->SpotY1 = temp;
-           temp = data->SpotX2;
-           data->SpotX2 = data->SpotY2;
-           data->SpotY2 = temp;
-       }
-    }
-    // image dimensions cannot really change here,
-    // yet width and height might be flipped (independent of flip&4).
-    ufraw_get_image_dimensions(data->UF);
+    int oldOrientation = CFG->orientation;
+    double oldAngle = CFG->rotationAngle;
+    ufraw_flip_orientation(data->UF, flip);
 
-    ++data->FreezeDialog;
+    data->FreezeDialog++;
     ufraw_unnormalize_rotation(data->UF);
-    gtk_adjustment_set_value(data->RotationAdjustment,
-           CFG->rotationAngle);
+    gtk_adjustment_set_value(data->RotationAdjustment, CFG->rotationAngle);
+    data->UnnormalizedOrientation = CFG->orientation;
     ufraw_normalize_rotation(data->UF);
-    gtk_widget_set_sensitive(data->ResetRotationAdjustment,
-           CFG->rotationAngle != 0 ||
-           CFG->orientation != CFG->CameraOrientation);
-    --data->FreezeDialog;
-
-    render_init(data);
-    if (is_rendering(data)) {
-       /* TODO: We are in the middle or a rendering scan,
-        * so we should restart from the beginning. */
-    } else {
-       /* Full image was already rendered.
-        * We only need to draw the flipped image. */
-       preview_draw_all(data);
-    }
-    update_crop_ranges(data, TRUE);
-    refresh_aspect(data);
+    data->FreezeDialog--;
+    CFG->orientation = oldOrientation;
+    CFG->rotationAngle = oldAngle;
+    gtk_adjustment_value_changed(data->RotationAdjustment);
 }
 
 /*


------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to