[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24934] trunk/blender/source/blender/ editors/mesh/editmesh_mods.c: Simplify mesh selection type operator and add missing header refresh notifier .

Martin Poirier theeth at yahoo.com
Thu Nov 26 20:32:34 CET 2009


Revision: 24934
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24934
Author:   theeth
Date:     2009-11-26 20:32:33 +0100 (Thu, 26 Nov 2009)

Log Message:
-----------
Simplify mesh selection type operator and add missing header refresh notifier.

Also remove REGISTER flag from operator (no need to see this in operator history).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/editmesh_mods.c

Modified: trunk/blender/source/blender/editors/mesh/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2009-11-26 19:31:25 UTC (rev 24933)
+++ trunk/blender/source/blender/editors/mesh/editmesh_mods.c	2009-11-26 19:32:33 UTC (rev 24934)
@@ -82,6 +82,7 @@
 
 #include "RNA_access.h"
 #include "RNA_define.h"
+#include "RNA_enum_types.h"
 
 #include "ED_mesh.h"
 #include "ED_screen.h"
@@ -3663,22 +3664,12 @@
 static void mesh_selection_type(ToolSettings *ts, EditMesh *em, int val)
 {
 	if(val>0) {
-		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);
-			em->selectmode= SCE_SELECT_EDGE;
-			EM_selectmode_set(em);
-		}
+		//if(ctrl) EM_convertsel(em, em->selectmode, SCE_SELECT_EDGE);
+		//if((ctrl)) EM_convertsel(em, em->selectmode, SCE_SELECT_FACE);
+
+		em->selectmode= val;
+		EM_selectmode_set(em);
 		
-		else{
-			//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 */
 		ts->selectmode= em->selectmode;
@@ -3686,13 +3677,6 @@
 	}
 }
 
-static EnumPropertyItem prop_mesh_edit_types[] = {
-	{1, "VERT", ICON_VERTEXSEL, "Vertices", ""},
-	{2, "EDGE", ICON_EDGESEL, "Edges", ""},
-	{3, "FACE", ICON_FACESEL, "Faces", ""},
-	{0, NULL, 0, NULL, NULL}
-};
-
 static int mesh_selection_type_exec(bContext *C, wmOperator *op)
 {		
 	ToolSettings *ts= CTX_data_tool_settings(C);
@@ -3702,6 +3686,7 @@
 	mesh_selection_type(ts, em, RNA_enum_get(op->ptr,"type"));
 
 	WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
+	WM_event_add_notifier(C, NC_SCENE|ND_MODE, NULL); /* header redraw */
 	
 	BKE_mesh_end_editmesh(obedit->data, em);
 	return OPERATOR_FINISHED;
@@ -3721,10 +3706,10 @@
 	ot->poll= ED_operator_editmesh;
 	
 	/* flags */
-	ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+	ot->flag= OPTYPE_UNDO;
 	
 	/* props */
-	RNA_def_enum(ot->srna, "type", prop_mesh_edit_types, 0, "Type", "Set the mesh selection type");
+	RNA_def_enum(ot->srna, "type", mesh_select_mode_items, 0, "Type", "Set the mesh selection type");
 	
 }
 /* ************************* SEAMS AND EDGES **************** */





More information about the Bf-blender-cvs mailing list