Revision: 41930
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41930
Author:   nazgul
Date:     2011-11-16 19:22:14 +0000 (Wed, 16 Nov 2011)
Log Message:
-----------
Fix #29260: Missing "Extend" parameter for Border Select

Added "Extend" flag to border select operators for editors:
- UV Editor
- Sequencer
- NLA
- Info Space
- Graph Editor
- File Browser
- Clip Editor
- Action Editor
- Channels and markers regions

Can be used for custom keymaps.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/animation/anim_channels_edit.c
    trunk/blender/source/blender/editors/animation/anim_markers.c
    trunk/blender/source/blender/editors/space_action/action_select.c
    trunk/blender/source/blender/editors/space_clip/tracking_ops.c
    trunk/blender/source/blender/editors/space_file/file_ops.c
    trunk/blender/source/blender/editors/space_graph/graph_select.c
    trunk/blender/source/blender/editors/space_info/info_report.c
    trunk/blender/source/blender/editors/space_nla/nla_select.c
    trunk/blender/source/blender/editors/space_node/node_select.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_select.c
    trunk/blender/source/blender/editors/uvedit/uvedit_ops.c

Modified: trunk/blender/source/blender/editors/animation/anim_channels_edit.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_channels_edit.c 
2011-11-16 19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/animation/anim_channels_edit.c 
2011-11-16 19:22:14 UTC (rev 41930)
@@ -1917,7 +1917,7 @@
        bAnimContext ac;
        rcti rect;
        short selectmode=0;
-       int gesture_mode;
+       int gesture_mode, extend;
        
        /* get editor data */
        if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -1928,8 +1928,13 @@
        rect.ymin= RNA_int_get(op->ptr, "ymin");
        rect.xmax= RNA_int_get(op->ptr, "xmax");
        rect.ymax= RNA_int_get(op->ptr, "ymax");
-               
+       
        gesture_mode= RNA_int_get(op->ptr, "gesture_mode");
+       extend= RNA_boolean_get(op->ptr, "extend");
+
+       if(!extend)
+               ANIM_deselect_anim_channels(&ac, ac.data, ac.datatype, 1, 
ACHANNEL_SETFLAG_CLEAR);
+
        if (gesture_mode == GESTURE_MODAL_SELECT)
                selectmode = ACHANNEL_SETFLAG_ADD;
        else
@@ -1963,7 +1968,7 @@
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* rna */
-       WM_operator_properties_gesture_border(ot, FALSE);
+       WM_operator_properties_gesture_border(ot, TRUE);
 }
 
 /* ******************* Rename Operator ***************************** */

Modified: trunk/blender/source/blender/editors/animation/anim_markers.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_markers.c       
2011-11-16 19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/animation/anim_markers.c       
2011-11-16 19:22:14 UTC (rev 41930)
@@ -1147,6 +1147,7 @@
        int xmax= RNA_int_get(op->ptr, "xmax");
        int ymin= RNA_int_get(op->ptr, "ymin");
        int ymax= RNA_int_get(op->ptr, "ymax");
+       int extend= RNA_boolean_get(op->ptr, "extend");
        
        UI_view2d_region_to_view(v2d, xmin, ymin, &xminf, &yminf);      
        UI_view2d_region_to_view(v2d, xmax, ymax, &xmaxf, &ymaxf);      
@@ -1166,6 +1167,9 @@
                                        break;
                        }
                }
+               else if (!extend) {
+                       marker->flag &= ~SELECT;
+               }
        }
        
        WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
@@ -1198,7 +1202,7 @@
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* rna */
-       WM_operator_properties_gesture_border(ot, FALSE);
+       WM_operator_properties_gesture_border(ot, TRUE);
 }
 
 /* *********************** (de)select all ***************** */

Modified: trunk/blender/source/blender/editors/space_action/action_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_action/action_select.c   
2011-11-16 19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/space_action/action_select.c   
2011-11-16 19:22:14 UTC (rev 41930)
@@ -269,11 +269,16 @@
        bAnimContext ac;
        rcti rect;
        short mode=0, selectmode=0;
-       int gesture_mode;
+       int gesture_mode, extend;
        
        /* get editor data */
        if (ANIM_animdata_get_context(C, &ac) == 0)
                return OPERATOR_CANCELLED;
+
+       /* clear all selection if not extending selection */
+       extend= RNA_boolean_get(op->ptr, "extend");
+       if (!extend)
+               deselect_action_keys(&ac, 1, SELECT_SUBTRACT);
        
        /* get settings from operator */
        rect.xmin= RNA_int_get(op->ptr, "xmin");
@@ -330,7 +335,7 @@
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* rna */
-       WM_operator_properties_gesture_border(ot, FALSE);
+       WM_operator_properties_gesture_border(ot, TRUE);
        
        ot->prop= RNA_def_boolean(ot->srna, "axis_range", 0, "Axis Range", "");
 }

Modified: trunk/blender/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/tracking_ops.c      
2011-11-16 19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/space_clip/tracking_ops.c      
2011-11-16 19:22:14 UTC (rev 41930)
@@ -869,7 +869,7 @@
        MovieTrackingTrack *track;
        rcti rect;
        rctf rectf;
-       int change= 0, mode;
+       int change= 0, mode, extend;
 
        /* get rectangle from operator */
        rect.xmin= RNA_int_get(op->ptr, "xmin");
@@ -881,6 +881,7 @@
        ED_clip_point_stable_pos(C, rect.xmax, rect.ymax, &rectf.xmax, 
&rectf.ymax);
 
        mode= RNA_int_get(op->ptr, "gesture_mode");
+       extend= RNA_boolean_get(op->ptr, "extend");
 
        /* do actual selection */
        track= clip->tracking.tracks.first;
@@ -888,8 +889,13 @@
                if((track->flag&TRACK_HIDDEN)==0) {
                        MovieTrackingMarker *marker= 
BKE_tracking_get_marker(track, sc->user.framenr);
 
-                       if(MARKER_VISIBLE(sc, marker) && BLI_in_rctf(&rectf, 
marker->pos[0], marker->pos[1])) {
-                               BKE_tracking_track_flag(track, TRACK_AREA_ALL, 
SELECT, mode!=GESTURE_MODAL_SELECT);
+                       if(MARKER_VISIBLE(sc, marker)) {
+                               if(BLI_in_rctf(&rectf, marker->pos[0], 
marker->pos[1])) {
+                                       BKE_tracking_track_flag(track, 
TRACK_AREA_ALL, SELECT, mode!=GESTURE_MODAL_SELECT);
+                               }
+                               else if(!extend) {
+                                       BKE_tracking_track_flag(track, 
TRACK_AREA_ALL, SELECT, 1);
+                               }
 
                                change= 1;
                        }
@@ -921,10 +927,10 @@
        ot->poll= ED_space_clip_poll;
 
        /* flags */
-       ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+       ot->flag= OPTYPE_UNDO;
 
        /* properties */
-       WM_operator_properties_gesture_border(ot, FALSE);
+       WM_operator_properties_gesture_border(ot, TRUE);
 }
 
 /********************** circle select operator *********************/

Modified: trunk/blender/source/blender/editors/space_file/file_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_file/file_ops.c  2011-11-16 
19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/space_file/file_ops.c  2011-11-16 
19:22:14 UTC (rev 41930)
@@ -273,13 +273,20 @@
        ARegion *ar= CTX_wm_region(C);
        rcti rect;
        FileSelect ret;
+       int extend= RNA_boolean_get(op->ptr, "extend");
+       short select= (RNA_int_get(op->ptr, 
"gesture_mode")==GESTURE_MODAL_SELECT);
 
-       short select= (RNA_int_get(op->ptr, 
"gesture_mode")==GESTURE_MODAL_SELECT);
        rect.xmin= RNA_int_get(op->ptr, "xmin");
        rect.ymin= RNA_int_get(op->ptr, "ymin");
        rect.xmax= RNA_int_get(op->ptr, "xmax");
        rect.ymax= RNA_int_get(op->ptr, "ymax");
 
+       if(!extend) {
+               SpaceFile *sfile= CTX_wm_space_file(C);
+
+               file_deselect_all(sfile, SELECTED_FILE);
+       }
+
        BLI_isect_rcti(&(ar->v2d.mask), &rect, &rect);
 
        ret = file_select(C, &rect, select ? FILE_SEL_ADD : FILE_SEL_REMOVE, 0);
@@ -306,7 +313,7 @@
        ot->cancel= WM_border_select_cancel;
 
        /* rna */
-       WM_operator_properties_gesture_border(ot, 0);
+       WM_operator_properties_gesture_border(ot, 1);
 }
 
 static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)

Modified: trunk/blender/source/blender/editors/space_graph/graph_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_graph/graph_select.c     
2011-11-16 19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/space_graph/graph_select.c     
2011-11-16 19:22:14 UTC (rev 41930)
@@ -289,11 +289,17 @@
        rcti rect;
        short mode=0, selectmode=0;
        short incl_handles;
+       int extend;
        
        /* get editor data */
        if (ANIM_animdata_get_context(C, &ac) == 0)
                return OPERATOR_CANCELLED;
-       
+
+       /* clear all selection if not extending selection */
+       extend= RNA_boolean_get(op->ptr, "extend");
+       if (!extend)
+               deselect_graph_keys(&ac, 1, SELECT_SUBTRACT, TRUE);
+
        /* get select mode 
         *      - 'gesture_mode' from the operator specifies how to select
         *      - 'include_handles' from the operator specifies whether to 
include handles in the selection
@@ -354,7 +360,7 @@
        ot->flag= OPTYPE_REGISTER/*|OPTYPE_UNDO*/;
        
        /* rna */
-       WM_operator_properties_gesture_border(ot, FALSE);
+       WM_operator_properties_gesture_border(ot, TRUE);
        
        ot->prop= RNA_def_boolean(ot->srna, "axis_range", 0, "Axis Range", "");
        RNA_def_boolean(ot->srna, "include_handles", 0, "Include Handles", "Are 
handles tested individually against the selection criteria");

Modified: trunk/blender/source/blender/editors/space_info/info_report.c
===================================================================
--- trunk/blender/source/blender/editors/space_info/info_report.c       
2011-11-16 19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/space_info/info_report.c       
2011-11-16 19:22:14 UTC (rev 41930)
@@ -220,6 +220,7 @@
        ARegion *ar= CTX_wm_region(C);
        ReportList *reports= CTX_wm_reports(C);
        int report_mask= info_report_mask(sinfo);
+       int extend= RNA_boolean_get(op->ptr, "extend");
        Report *report_min, *report_max, *report;
 
        //View2D *v2d= UI_view2d_fromcontext(C);
@@ -244,6 +245,16 @@
        UI_view2d_region_to_view(v2d, mval[0], mval[1], &rectf.xmax, 
&rectf.ymax);
 */
 
+       if(!extend) {
+               for(report= reports->list.first; report; report= report->next) {
+
+                       if((report->type & report_mask)==0)
+                               continue;
+
+                       report->flag &= ~SELECT;
+               }
+       }
+
        report_min= info_text_pick(sinfo, ar, reports, rect.ymax);
        report_max= info_text_pick(sinfo, ar, reports, rect.ymin);
 
@@ -308,7 +319,7 @@
        /* ot->flag= OPTYPE_REGISTER; */
 
        /* rna */
-       WM_operator_properties_gesture_border(ot, FALSE);
+       WM_operator_properties_gesture_border(ot, TRUE);
 }
 
 

Modified: trunk/blender/source/blender/editors/space_nla/nla_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_nla/nla_select.c 2011-11-16 
19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/space_nla/nla_select.c 2011-11-16 
19:22:14 UTC (rev 41930)
@@ -282,11 +282,17 @@
        bAnimContext ac;
        rcti rect;
        short mode=0, selectmode=0;
+       int extend;
        
        /* get editor data */
        if (ANIM_animdata_get_context(C, &ac) == 0)
                return OPERATOR_CANCELLED;
-       
+
+       /* clear all selection if not extending selection */
+       extend= RNA_boolean_get(op->ptr, "extend");
+       if (!extend)
+               deselect_nla_strips(&ac, DESELECT_STRIPS_TEST, SELECT_SUBTRACT);
+
        /* get settings from operator */
        rect.xmin= RNA_int_get(op->ptr, "xmin");
        rect.ymin= RNA_int_get(op->ptr, "ymin");
@@ -341,7 +347,7 @@
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* rna */
-       WM_operator_properties_gesture_border(ot, 0);
+       WM_operator_properties_gesture_border(ot, 1);
        
        RNA_def_boolean(ot->srna, "axis_range", 0, "Axis Range", "");
 }

Modified: trunk/blender/source/blender/editors/space_node/node_select.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_select.c       
2011-11-16 19:17:33 UTC (rev 41929)
+++ trunk/blender/source/blender/editors/space_node/node_select.c       
2011-11-16 19:22:14 UTC (rev 41930)
@@ -164,6 +164,7 @@

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to