[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