[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27975] trunk/blender/source/blender: More work on Drag Immediate:

Martin Poirier theeth at yahoo.com
Sat Apr 3 19:38:45 CEST 2010


Revision: 27975
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27975
Author:   theeth
Date:     2010-04-03 19:38:43 +0200 (Sat, 03 Apr 2010)

Log Message:
-----------
More work on Drag Immediate:

- Rename option and flag to something more sane
- Add property to manipulator operator and set true by default

Confirm on Release can now be forced true or false per operator, in which case it won't use the default value (the user preference).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
    trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
    trunk/blender/source/blender/editors/transform/transform.c
    trunk/blender/source/blender/editors/transform/transform_generics.c
    trunk/blender/source/blender/editors/transform/transform_manipulator.c
    trunk/blender/source/blender/editors/transform/transform_ops.c
    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
    trunk/blender/source/blender/makesrna/intern/rna_userdef.c
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_edit.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -2376,8 +2376,8 @@
 
 	ot->poll= ED_operator_view3d_active;
 
-	/* rna later */
-	RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", "");
+	/* properties to pass to transform */
+	Transform_Properties(ot, P_CONSTRAINT);
 }
 
 static int enable_manipulator_invoke(bContext *C, wmOperator *op, wmEvent *event)

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_ops.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -115,7 +115,8 @@
 	/* only for region 3D window */
 	keymap= WM_keymap_find(keyconf, "3D View", SPACE_VIEW3D, 0);
 	
-	WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0);
+	kmi = WM_keymap_verify_item(keymap, "VIEW3D_OT_manipulator", LEFTMOUSE, KM_PRESS, KM_ANY, 0);
+	RNA_boolean_set(kmi->ptr, "release_confirm", 1);
 	/*
 	 * Doesn't work with KM_SHIFT, have to use KM_ANY and filter in invoke
 	 * */

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/editors/transform/transform.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -1032,7 +1032,7 @@
 		}
 
 		/* confirm transform if launch key is released after mouse move */
-		if (t->flag & T_RELEASE_CONFIRM || t->state != TRANS_STARTING)
+		if (t->flag & T_RELEASE_CONFIRM)
 		{
 			/* XXX Keyrepeat bug in Xorg fucks this up, will test when fixed */
 			if (event->type == t->launch_event && (t->launch_event == LEFTMOUSE || t->launch_event == RIGHTMOUSE))

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -1000,7 +1000,7 @@
 	}
 	else
 	{
-		if (U.flag & USER_DRAGIMMEDIATE)
+		if (U.flag & USER_RELEASECONFIRM)
 		{
 			t->flag |= T_RELEASE_CONFIRM;
 		}

Modified: trunk/blender/source/blender/editors/transform/transform_manipulator.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_manipulator.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/editors/transform/transform_manipulator.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -1551,6 +1551,8 @@
 	return 0;
 }
 
+int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports);
+
 /* return 0; nothing happened */
 int BIF_do_manipulator(bContext *C, struct wmEvent *event, wmOperator *op)
 {
@@ -1564,6 +1566,9 @@
 	if(!(v3d->twflag & V3D_USE_MANIPULATOR)) return 0;
 	if(!(v3d->twflag & V3D_DRAW_MANIPULATOR)) return 0;
 
+	/* Force orientation */
+	RNA_enum_set(op->ptr, "constraint_orientation", v3d->twmode);
+
 	// find the hotspots first test narrow hotspot
 	val= manipulator_selectbuf(sa, ar, event->mval, 0.5f*(float)U.tw_hotspot);
 	if(val) {
@@ -1603,6 +1608,7 @@
 			}
 			RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
 			WM_operator_name_call(C, "TRANSFORM_OT_translate", WM_OP_INVOKE_DEFAULT, op->ptr);
+			//wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_translate", 0), event, op->ptr, NULL);
 		}
 		else if (drawflags & MAN_SCALE_C) {
 			switch(drawflags) {
@@ -1633,8 +1639,10 @@
 			}
 			RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
 			WM_operator_name_call(C, "TRANSFORM_OT_resize", WM_OP_INVOKE_DEFAULT, op->ptr);
+			//wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_resize", 0), event, op->ptr, NULL);
 		}
 		else if (drawflags == MAN_ROT_T) { /* trackball need special case, init is different */
+			//wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_trackball", 0), event, op->ptr, NULL);
 			WM_operator_name_call(C, "TRANSFORM_OT_trackball", WM_OP_INVOKE_DEFAULT, op->ptr);
 		}
 		else if (drawflags & MAN_ROT_C) {
@@ -1651,6 +1659,7 @@
 			}
 			RNA_boolean_set_array(op->ptr, "constraint_axis", constraint_axis);
 			WM_operator_name_call(C, "TRANSFORM_OT_rotate", WM_OP_INVOKE_DEFAULT, op->ptr);
+			//wm_operator_invoke(C, WM_operatortype_find("TRANSFORM_OT_rotate", 0), event, op->ptr, NULL);
 		}
 	}
 	/* after transform, restore drawflags */

Modified: trunk/blender/source/blender/editors/transform/transform_ops.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_ops.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/editors/transform/transform_ops.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -381,23 +381,10 @@
 	}
 }
 
-#define P_MIRROR		(1 << 0)
-#define P_PROPORTIONAL	(1 << 1)
-#define P_AXIS			(1 << 2)
-#define P_SNAP			(1 << 3)
-#define P_GEO_SNAP		(P_SNAP|(1 << 4))
-#define P_ALIGN_SNAP	(P_GEO_SNAP|(1 << 5))
-#define P_CONSTRAINT	(1 << 6)
-
-
 void Transform_Properties(struct wmOperatorType *ot, int flags)
 {
 	PropertyRNA *prop;
 
-	// Add confirm method all the time
-	prop = RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Confirm operation when releasing button");
-	RNA_def_property_flag(prop, PROP_HIDDEN);
-
 	if (flags & P_AXIS)
 	{
 		prop= RNA_def_property(ot->srna, "axis", PROP_FLOAT, PROP_DIRECTION);
@@ -440,6 +427,10 @@
 			}
 		}
 	}
+
+	// Add confirm method all the time. At the end because it's not really that important and should be hidden
+	prop = RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
+	//RNA_def_property_flag(prop, PROP_HIDDEN);
 }
 
 void TRANSFORM_OT_translate(struct wmOperatorType *ot)

Modified: trunk/blender/source/blender/makesdna/DNA_userdef_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2010-04-03 17:38:43 UTC (rev 27975)
@@ -408,7 +408,7 @@
 #define USER_ADD_EDITMODE		(1 << 18)
 #define USER_ADD_VIEWALIGNED	(1 << 19)
 #define USER_RELPATHS			(1 << 20)
-#define USER_DRAGIMMEDIATE		(1 << 21)
+#define USER_RELEASECONFIRM		(1 << 21)
 #define USER_SCRIPT_AUTOEXEC_DISABLE	(1 << 22)
 #define USER_FILENOUI			(1 << 23)
 #define USER_NONEGFRAMES		(1 << 24)

Modified: trunk/blender/source/blender/makesrna/intern/rna_userdef.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -2085,8 +2085,8 @@
 	RNA_def_property_ui_text(prop, "Enter Edit Mode", "Enter Edit Mode automatically after adding a new object");
 
 	prop= RNA_def_property(srna, "drag_immediately", PROP_BOOLEAN, PROP_NONE);
-	RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_DRAGIMMEDIATE);
-	RNA_def_property_ui_text(prop, "Drag Immediately", "Moving things with a mouse drag doesn't require a click to confirm (Best for tablet users)");
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", USER_RELEASECONFIRM);
+	RNA_def_property_ui_text(prop, "Release confirm", "Moving things with a mouse drag confirms when releasing the button");
 	
 	/* Undo */
 	prop= RNA_def_property(srna, "undo_steps", PROP_INT, PROP_NONE);

Modified: trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2010-04-03 11:19:17 UTC (rev 27974)
+++ trunk/blender/source/blender/windowmanager/intern/wm_event_system.c	2010-04-03 17:38:43 UTC (rev 27975)
@@ -551,7 +551,7 @@
 	}
 }
 
-static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports)
+int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event, PointerRNA *properties, ReportList *reports)
 {
 	wmWindowManager *wm= CTX_wm_manager(C);
 	int retval= OPERATOR_PASS_THROUGH;
@@ -1930,7 +1930,8 @@
 int WM_modal_tweak_exit(wmEvent *evt, int tweak_event)
 {
 	/* user preset or keymap? dunno... */
-	int tweak_modal= (U.flag & USER_DRAGIMMEDIATE)==0;
+	// XXX WTH is this?
+	int tweak_modal= (U.flag & USER_RELEASECONFIRM)==0;
 	
 	switch(tweak_event) {
 		case EVT_TWEAK_L:





More information about the Bf-blender-cvs mailing list