[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18780] branches/blender2.5/blender/source /blender/editors: 2.5

Ton Roosendaal ton at blender.org
Sun Feb 1 14:24:21 CET 2009


Revision: 18780
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18780
Author:   ton
Date:     2009-02-01 14:24:19 +0100 (Sun, 01 Feb 2009)

Log Message:
-----------
2.5

Paint mode (VPaint WPaint) was too easy to enter, I made the
operators having a more designated poll() to check stuff.

Now CTRL+TAB hotkeys will work in editmode for select type,
and outside editmode for wpaint or posemode.

Also fixed select type operator to so it works for facemode.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c

Modified: branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c	2009-02-01 12:40:27 UTC (rev 18779)
+++ branches/blender2.5/blender/source/blender/editors/mesh/editmesh_mods.c	2009-02-01 13:24:19 UTC (rev 18780)
@@ -3652,34 +3652,28 @@
 	EM_selectmode_flush(em);
 }
 
-static void mesh_selection_type(EditMesh *em, int val)
+static void mesh_selection_type(Scene *scene, EditMesh *em, int val)
 {
-	int ctrl= 0; // XXX
-	
-//	if(em->selectmode & SCE_SELECT_VERTEX) pupmenu_set_active(1);
-//	else if(em->selectmode & SCE_SELECT_EDGE) pupmenu_set_active(2);
-//	else pupmenu_set_active(3);
-	
-//	val= pupmenu("Select Mode%t|Vertices|Edges|Faces");
-	
-	
 	if(val>0) {
-		if(val==1){ 
+		if(val==1) { 
 			em->selectmode= SCE_SELECT_VERTEX;
 			EM_selectmode_set(em);
-			}
-		else if(val==2){
-			if(ctrl) EM_convertsel(em, em->selectmode, SCE_SELECT_EDGE);
+		}
+		else if(val==2) {
+			//if(ctrl) EM_convertsel(em, em->selectmode, SCE_SELECT_EDGE);
 			em->selectmode= SCE_SELECT_EDGE;
 			EM_selectmode_set(em);
 		}
 		
 		else{
-			if((ctrl)) EM_convertsel(em, em->selectmode, SCE_SELECT_FACE);
+			//if((ctrl)) EM_convertsel(em, em->selectmode, SCE_SELECT_FACE);
 			em->selectmode= SCE_SELECT_FACE;
 			EM_selectmode_set(em);
 		}
 		
+		/* note, em stores selectmode to be able to pass it on everywhere without scene,
+		   this is only until all select modes and toolsettings are settled more */
+		scene->selectmode= em->selectmode;
 //		if (EM_texFaceCheck())
 	}
 }
@@ -3697,9 +3691,9 @@
 	Object *obedit= CTX_data_edit_object(C);
 	EditMesh *em= ((Mesh *)obedit->data)->edit_mesh;
 
-	mesh_selection_type(em, RNA_enum_get(op->ptr,"type"));
+	mesh_selection_type(CTX_data_scene(C), em, RNA_enum_get(op->ptr,"type"));
 
-	WM_event_add_notifier(C, NC_WINDOW, obedit);
+	WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, obedit);
 
 	return OPERATOR_FINISHED;
 }

Modified: branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-01 12:40:27 UTC (rev 18779)
+++ branches/blender2.5/blender/source/blender/editors/mesh/mesh_ops.c	2009-02-01 13:24:19 UTC (rev 18780)
@@ -204,7 +204,7 @@
 	
 	/* selection mode */
 	
-	WM_keymap_add_item(keymap, "MESH_OT_selection_type", TABKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
+	WM_keymap_add_item(keymap, "MESH_OT_selection_type", TABKEY, KM_PRESS, KM_CTRL, 0);
 	
 	
 	/* transform keymap already defined, so no tweaks for select */

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c	2009-02-01 12:40:27 UTC (rev 18779)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/vpaint.c	2009-02-01 13:24:19 UTC (rev 18780)
@@ -1192,6 +1192,18 @@
 	return OPERATOR_FINISHED;
 }
 
+/* for switching to/from mode */
+static int paint_poll_test(bContext *C)
+{
+	if(ED_operator_view3d_active(C)==0)
+		return 0;
+	if(CTX_data_edit_object(C))
+		return 0;
+	if(CTX_data_active_object(C)==NULL)
+		return 0;
+	return 1;
+}
+
 void VIEW3D_OT_wpaint_toggle(wmOperatorType *ot)
 {
 	
@@ -1201,7 +1213,7 @@
 	
 	/* api callbacks */
 	ot->exec= set_wpaint;
-	ot->poll= ED_operator_object_active;
+	ot->poll= paint_poll_test;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1708,7 +1720,7 @@
 	
 	/* api callbacks */
 	ot->exec= set_vpaint;
-	ot->poll= ED_operator_object_active;
+	ot->poll= paint_poll_test;
 	
 	/* flags */
 	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;





More information about the Bf-blender-cvs mailing list