[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25027] trunk/blender/source/blender/ editors: curve select toggle was broken from recent select operator update

Campbell Barton ideasman42 at gmail.com
Mon Nov 30 13:50:22 CET 2009


Revision: 25027
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25027
Author:   campbellbarton
Date:     2009-11-30 13:50:22 +0100 (Mon, 30 Nov 2009)

Log Message:
-----------
curve select toggle was broken from recent select operator update

Modified Paths:
--------------
    trunk/blender/source/blender/editors/curve/editcurve.c
    trunk/blender/source/blender/editors/include/ED_curve.h

Modified: trunk/blender/source/blender/editors/curve/editcurve.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editcurve.c	2009-11-30 12:31:11 UTC (rev 25026)
+++ trunk/blender/source/blender/editors/curve/editcurve.c	2009-11-30 12:50:22 UTC (rev 25027)
@@ -381,11 +381,49 @@
 	ListBase *editnurb= curve_get_editcurve(obedit);
 
 	if (editnurb) {
-		selectend_nurb(obedit, FIRST, 0, DESELECT); /* set first control points as unselected */
-		select_adjacent_cp(editnurb, 1, 1, DESELECT); /* cascade selection */
+		selectend_nurb(obedit, FIRST, 0, SELECT); /* set first control points as unselected */
+		select_adjacent_cp(editnurb, 1, 1, SELECT); /* cascade selection */
 	}
 }
 
+void CU_select_swap(Object *obedit)
+{
+	ListBase *editnurb= curve_get_editcurve(obedit);
+
+	if (editnurb) {
+		Curve *cu= obedit->data;
+		Nurb *nu;
+		BPoint *bp;
+		BezTriple *bezt;
+		int a;
+
+		for(nu= editnurb->first; nu; nu= nu->next) {
+			if(nu->type == CU_BEZIER) {
+				bezt= nu->bezt;
+				a= nu->pntsu;
+				while(a--) {
+					if(bezt->hide==0) {
+						bezt->f2 ^= SELECT; /* always do the center point */
+						if((cu->drawflag & CU_HIDE_HANDLES)==0) {
+							bezt->f1 ^= SELECT;
+							bezt->f3 ^= SELECT;
+						}
+					}
+					bezt++;
+				}
+			}
+			else {
+				bp= nu->bp;
+				a= nu->pntsu*nu->pntsv;
+				while(a--) {
+					swap_selection_bpoint(bp);
+					bp++;
+				}
+			}
+		}
+	}
+}
+
 /******************** separate operator ***********************/
 
 static int separate_exec(bContext *C, wmOperator *op)
@@ -1604,7 +1642,7 @@
 	Object *obedit= CTX_data_edit_object(C);
 	ListBase *editnurb= curve_get_editcurve(obedit);
 	int action = RNA_enum_get(op->ptr, "action");
-	
+
 	if (action == SEL_TOGGLE) {
 		action = SEL_SELECT;
 		if(nurb_has_selected_cps(editnurb))
@@ -1619,39 +1657,8 @@
 			CU_deselect_all(obedit);
 			break;
 		case SEL_INVERT:
-		{
-			Curve *cu= obedit->data;
-			Nurb *nu;
-			BPoint *bp;
-			BezTriple *bezt;
-			int a;
-
-			for(nu= editnurb->first; nu; nu= nu->next) {
-				if(nu->type == CU_BEZIER) {
-					bezt= nu->bezt;
-					a= nu->pntsu;
-					while(a--) {
-						if(bezt->hide==0) {
-							bezt->f2 ^= SELECT; /* always do the center point */
-							if((cu->drawflag & CU_HIDE_HANDLES)==0) {
-								bezt->f1 ^= SELECT;
-								bezt->f3 ^= SELECT;
-							}
-						}
-						bezt++;
-					}
-				}
-				else {
-					bp= nu->bp;
-					a= nu->pntsu*nu->pntsv;
-					while(a--) {
-						swap_selection_bpoint(bp);
-						bp++;
-					}
-				}
-			}
+			CU_select_swap(obedit);
 			break;
-		}
 	}
 	
 	WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
@@ -1671,6 +1678,9 @@
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+	/* properties */
+	WM_operator_properties_select_all(ot);
 }
 
 /********************** hide operator *********************/

Modified: trunk/blender/source/blender/editors/include/ED_curve.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_curve.h	2009-11-30 12:31:11 UTC (rev 25026)
+++ trunk/blender/source/blender/editors/include/ED_curve.h	2009-11-30 12:50:22 UTC (rev 25027)
@@ -45,6 +45,7 @@
 /* editcurve.c */
 void CU_deselect_all(struct Object *obedit);
 void CU_select_all(struct Object *obedit);
+void CU_select_swap(struct Object *obedit);
 
 
 void	undo_push_curve	(struct bContext *C, char *name);





More information about the Bf-blender-cvs mailing list