Revision: 51253
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51253
Author:   campbellbarton
Date:     2012-10-10 11:36:24 +0000 (Wed, 10 Oct 2012)
Log Message:
-----------
option for view3d-selected to use all regions (nice for viewing selected in 
quad-view),

currently not assigned to any keys.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2012-10-10 11:32:27 UTC (rev 51252)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c     
2012-10-10 11:36:24 UTC (rev 51253)
@@ -2342,17 +2342,17 @@
 }
 
 /* like a localview without local!, was centerview() in 2.4x */
-static int viewselected_exec(bContext *C, wmOperator *UNUSED(op))
+static int viewselected_exec(bContext *C, wmOperator *op)
 {
        ARegion *ar = CTX_wm_region(C);
        View3D *v3d = CTX_wm_view3d(C);
-       RegionView3D *rv3d = ar->regiondata;
        Scene *scene = CTX_data_scene(C);
        Object *ob = OBACT;
        Object *obedit = CTX_data_edit_object(C);
        float min[3], max[3];
        int ok = 0, ok_dist = 1;
-       const short skip_camera = ED_view3d_camera_lock_check(v3d, rv3d);
+       const short skip_camera = ED_view3d_camera_lock_check(v3d, 
ar->regiondata);
+       const short use_all_regions = RNA_boolean_get(op->ptr, 
"use_all_regions");
 
        INIT_MINMAX(min, max);
 
@@ -2427,7 +2427,22 @@
                return OPERATOR_FINISHED;
        }
 
-       viewselected_rv3d_from_minmax(C, v3d, ar, min, max, ok_dist);
+       if (use_all_regions) {
+               ScrArea *sa = CTX_wm_area(C);
+               ARegion *ar_iter;
+               for (ar_iter = sa->regionbase.first; ar_iter; ar_iter = 
ar_iter->next) {
+                       if (ar_iter->regiontype == RGN_TYPE_WINDOW) {
+                               RegionView3D *rv3d = ar_iter->regiondata;
+                               /* when using all regions, don't jump out of 
camera view */
+                               if (rv3d->persp != RV3D_CAMOB) {
+                                       viewselected_rv3d_from_minmax(C, v3d, 
ar_iter, min, max, ok_dist);
+                               }
+                       }
+               }
+       }
+       else {
+               viewselected_rv3d_from_minmax(C, v3d, ar, min, max, ok_dist);
+       }
        
 // XXX BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);
 
@@ -2436,6 +2451,7 @@
 
 void VIEW3D_OT_view_selected(wmOperatorType *ot)
 {
+       PropertyRNA *prop;
 
        /* identifiers */
        ot->name = "View Selected";
@@ -2448,6 +2464,10 @@
 
        /* flags */
        ot->flag = 0;
+
+       /* rna later */
+       prop = RNA_def_boolean(ot->srna, "use_all_regions", 0, "All Regions", 
"View selected for all regions");
+       RNA_def_property_flag(prop, PROP_SKIP_SAVE);
 }
 
 static int view_lock_clear_exec(bContext *C, wmOperator *UNUSED(op))

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

Reply via email to