Revision: 51303
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51303
Author:   nazgul
Date:     2012-10-13 16:42:12 +0000 (Sat, 13 Oct 2012)
Log Message:
-----------
Make zoom direction consistent all over the editors

Was discussed in De Balie with lots of artists and we agreed it makes more
sense to behave this way

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/view2d_ops.c
    trunk/blender/source/blender/editors/space_clip/clip_ops.c
    trunk/blender/source/blender/editors/space_image/image_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c

Modified: trunk/blender/source/blender/editors/interface/view2d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/interface/view2d_ops.c 2012-10-13 
15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/interface/view2d_ops.c 2012-10-13 
16:42:12 UTC (rev 51303)
@@ -827,6 +827,11 @@
        dx = RNA_float_get(op->ptr, "deltax");
        dy = RNA_float_get(op->ptr, "deltay");
 
+       if (U.uiflag & USER_ZOOM_INVERT) {
+               dx *= -1;
+               dy *= -1;
+       }
+       
        /* continuous zoom shouldn't move that fast... */
        if (U.viewzoom == USER_ZOOM_CONT) { // XXX store this setting as RNA 
prop?
                double time = PIL_check_seconds_timer();
@@ -849,12 +854,12 @@
                                float mval_faci = 1.0f - mval_fac;
                                float ofs = (mval_fac * dx) - (mval_faci * dx);
                                
-                               v2d->cur.xmin -= ofs + dx;
-                               v2d->cur.xmax -= ofs - dx;
+                               v2d->cur.xmin += ofs + dx;
+                               v2d->cur.xmax += ofs - dx;
                        }
                        else {
-                               v2d->cur.xmin -= dx;
-                               v2d->cur.xmax += dx;
+                               v2d->cur.xmin += dx;
+                               v2d->cur.xmax -= dx;
                        }
                }
        }
@@ -868,12 +873,12 @@
                                float mval_faci = 1.0f - mval_fac;
                                float ofs = (mval_fac * dy) - (mval_faci * dy);
                                
-                               v2d->cur.ymin -= ofs + dy;
-                               v2d->cur.ymax -= ofs - dy;
+                               v2d->cur.ymin += ofs + dy;
+                               v2d->cur.ymax += ofs - dy;
                        }
                        else {
-                               v2d->cur.ymin -= dy;
-                               v2d->cur.ymax += dy;
+                               v2d->cur.ymin += dy;
+                               v2d->cur.ymax -= dy;
                        }
                }
        }
@@ -941,7 +946,7 @@
                /* As we have only 1D information (magnify value), feed both 
axes
                 * with magnify information that is stored in x axis 
                 */
-               fac = 0.01f * (event->prevx - event->x);
+               fac = 0.01f * (event->x - event->prevx);
                dx = fac * BLI_rctf_size_x(&v2d->cur) / 10.0f;
                dy = fac * BLI_rctf_size_y(&v2d->cur) / 10.0f;
 
@@ -1044,11 +1049,6 @@
                }
                
                /* set transform amount, and add current deltas to stored total 
delta (for redo) */
-               if (U.uiflag & USER_ZOOM_INVERT) {
-                       dx *= -1;
-                       dy *= -1;
-               }
-
                RNA_float_set(op->ptr, "deltax", dx);
                RNA_float_set(op->ptr, "deltay", dy);
 

Modified: trunk/blender/source/blender/editors/space_clip/clip_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_ops.c  2012-10-13 
15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/space_clip/clip_ops.c  2012-10-13 
16:42:12 UTC (rev 51303)
@@ -514,9 +514,14 @@
 static int view_zoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
 {
        if (event->type == MOUSEZOOM) {
-               float factor;
+               float delta, factor;
 
-               factor = 1.0f + (event->x - event->prevx + event->y - 
event->prevy) / 300.0f;
+               delta = event->x - event->prevx + event->y - event->prevy;
+
+               if (U.uiflag & USER_ZOOM_INVERT)
+                       delta *= -1;
+
+               factor = 1.0f + delta / 300.0f;
                RNA_float_set(op->ptr, "factor", factor);
 
                sclip_zoom_set_factor_exec(C, event, factor);
@@ -533,11 +538,16 @@
 static int view_zoom_modal(bContext *C, wmOperator *op, wmEvent *event)
 {
        ViewZoomData *vpd = op->customdata;
-       float factor;
+       float delta, factor;
 
        switch (event->type) {
                case MOUSEMOVE:
-                       factor = 1.0f + (vpd->x - event->x + vpd->y - event->y) 
/ 300.0f;
+                       delta = event->x - vpd->x + event->y - vpd->y;
+
+                       if (U.uiflag & USER_ZOOM_INVERT)
+                               delta *= -1;
+
+                       factor = 1.0f + delta / 300.0f;
                        RNA_float_set(op->ptr, "factor", factor);
                        sclip_zoom_set(C, vpd->zoom * factor, vpd->location);
                        ED_region_tag_redraw(CTX_wm_region(C));

Modified: trunk/blender/source/blender/editors/space_image/image_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_image/image_ops.c        
2012-10-13 15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/space_image/image_ops.c        
2012-10-13 16:42:12 UTC (rev 51303)
@@ -430,11 +430,16 @@
        if (event->type == MOUSEZOOM) {
                SpaceImage *sima = CTX_wm_space_image(C);
                ARegion *ar = CTX_wm_region(C);
-               float factor, location[2];
+               float delta, factor, location[2];
 
                UI_view2d_region_to_view(&ar->v2d, event->mval[0], 
event->mval[1], &location[0], &location[1]);
 
-               factor = 1.0f + (event->x - event->prevx + event->y - 
event->prevy) / 300.0f;
+               delta = event->x - event->prevx + event->y - event->prevy;
+
+               if (U.uiflag & USER_ZOOM_INVERT)
+                       delta *= -1;
+
+               factor = 1.0f + delta / 300.0f;
                RNA_float_set(op->ptr, "factor", factor);
                sima_zoom_set(sima, ar, sima->zoom * factor, location);
                ED_region_tag_redraw(CTX_wm_region(C));
@@ -452,11 +457,16 @@
        SpaceImage *sima = CTX_wm_space_image(C);
        ARegion *ar = CTX_wm_region(C);
        ViewZoomData *vpd = op->customdata;
-       float factor;
+       float delta, factor;
 
        switch (event->type) {
                case MOUSEMOVE:
-                       factor = 1.0f + (vpd->x - event->x + vpd->y - event->y) 
/ 300.0f;
+                       delta = event->x - vpd->x + event->y - vpd->y;
+
+                       if (U.uiflag & USER_ZOOM_INVERT)
+                               delta *= -1;
+
+                       factor = 1.0f + delta / 300.0f;
                        RNA_float_set(op->ptr, "factor", factor);
                        sima_zoom_set(sima, ar, vpd->zoom * factor, 
vpd->location);
                        ED_region_tag_redraw(CTX_wm_region(C));

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2012-10-13 15:44:50 UTC (rev 51302)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2012-10-13 16:42:12 UTC (rev 51303)
@@ -1636,7 +1636,7 @@
        if (use_cam_zoom) {
                float delta;
                delta = (x - vod->origx + y - vod->origy) / 10.0f;
-               vod->rv3d->camzoom = vod->camzoom0 + (zoom_invert ? delta : 
-delta);
+               vod->rv3d->camzoom = vod->camzoom0 + (zoom_invert ? -delta : 
delta);
 
                CLAMP(vod->rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
        }
@@ -1691,11 +1691,11 @@
                if (use_cam_zoom) {
                        /* zfac is ignored in this case, see below */
 #if 0
-                       zfac = vod->camzoom0 * (2.0f * ((len2 / len1) - 1.0f) + 
1.0f) / vod->rv3d->camzoom;
+                       zfac = vod->camzoom0 * (2.0f * ((len1 / len2) - 1.0f) + 
1.0f) / vod->rv3d->camzoom;
 #endif
                }
                else {
-                       zfac = vod->dist0 * (2.0f * ((len2 / len1) - 1.0f) + 
1.0f) / vod->rv3d->dist;
+                       zfac = vod->dist0 * (2.0f * ((len1 / len2) - 1.0f) + 
1.0f) / vod->rv3d->dist;
                }
        }
 
@@ -1888,12 +1888,12 @@
 
                        if (U.uiflag & USER_ZOOM_HORIZ) {
                                vod->origx = vod->oldx = event->x;
-                               viewzoom_apply(vod, event->prevx, event->prevy, 
USER_ZOOM_DOLLY, FALSE);
+                               viewzoom_apply(vod, event->prevx, event->prevy, 
USER_ZOOM_DOLLY, (U.uiflag & USER_ZOOM_INVERT) == 0);
                        }
                        else {
                                /* Set y move = x move as MOUSEZOOM uses only x 
axis to pass magnification value */
                                vod->origy = vod->oldy = vod->origy + event->x 
- event->prevx;
-                               viewzoom_apply(vod, event->prevx, event->prevy, 
USER_ZOOM_DOLLY, FALSE);
+                               viewzoom_apply(vod, event->prevx, event->prevy, 
USER_ZOOM_DOLLY, (U.uiflag & USER_ZOOM_INVERT) == 0);
                        }
                        ED_view3d_depth_tag_update(vod->rv3d);
                        
@@ -1971,7 +1971,7 @@
                if (zoom_invert)
                        SWAP(float, len1, len2);
 
-               zfac =  1.0f + ((len2 - len1) * 0.01f * vod->rv3d->dist);
+               zfac =  1.0f + ((len1 - len2) * 0.01f * vod->rv3d->dist);
        }
 
        if (zfac != 1.0f)
@@ -2107,13 +2107,13 @@
 
                        if (U.uiflag & USER_ZOOM_HORIZ) {
                                vod->origx = vod->oldx = event->x;
-                               viewdolly_apply(vod, event->prevx, 
event->prevy, FALSE);
+                               viewdolly_apply(vod, event->prevx, 
event->prevy, (U.uiflag & USER_ZOOM_INVERT) == 0);
                        }
                        else {
 
                                /* Set y move = x move as MOUSEZOOM uses only x 
axis to pass magnification value */
                                vod->origy = vod->oldy = vod->origy + event->x 
- event->prevx;
-                               viewdolly_apply(vod, event->prevx, 
event->prevy, FALSE);
+                               viewdolly_apply(vod, event->prevx, 
event->prevy, (U.uiflag & USER_ZOOM_INVERT) == 0);
                        }
                        ED_view3d_depth_tag_update(vod->rv3d);
 

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to