[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53773] trunk/blender: remove TRANSFORM_OT_snap_type, use WM_OT_context_menu_enum instead.

Campbell Barton ideasman42 at gmail.com
Sun Jan 13 17:18:37 CET 2013


Revision: 53773
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53773
Author:   campbellbarton
Date:     2013-01-13 16:18:35 +0000 (Sun, 13 Jan 2013)
Log Message:
-----------
remove TRANSFORM_OT_snap_type, use WM_OT_context_menu_enum instead.
add Ctrl+Shift+Tab shortcut for selecting snap type to the UV editor too.

also added icon drawing to WM_OT_context_menu_enum() so it gets the icons from the enum to draw them in the menu.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_operators/wm.py
    trunk/blender/source/blender/editors/transform/transform_ops.c
    trunk/blender/source/blender/makesrna/intern/rna_rna.c

Modified: trunk/blender/release/scripts/startup/bl_operators/wm.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/wm.py	2013-01-13 15:01:34 UTC (rev 53772)
+++ trunk/blender/release/scripts/startup/bl_operators/wm.py	2013-01-13 16:18:35 UTC (rev 53773)
@@ -506,10 +506,10 @@
         base_path, prop_string = data_path.rsplit(".", 1)
         value_base = context_path_validate(context, base_path)
 
-        values = [(i.name, i.identifier) for i in value_base.bl_rna.properties[prop_string].enum_items]
+        values = [(i.name, i.identifier, i.icon) for i in value_base.bl_rna.properties[prop_string].enum_items]
 
-        for name, identifier in values:
-            props = self.layout.operator("wm.context_set_enum", text=name)
+        for name, identifier, icon in values:
+            props = self.layout.operator("wm.context_set_enum", text=name, icon=icon)
             props.data_path = data_path
             props.value = identifier
 

Modified: trunk/blender/source/blender/editors/transform/transform_ops.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_ops.c	2013-01-13 15:01:34 UTC (rev 53772)
+++ trunk/blender/source/blender/editors/transform/transform_ops.c	2013-01-13 16:18:35 UTC (rev 53773)
@@ -153,38 +153,6 @@
 	{0, NULL, 0, NULL, NULL}
 };
 
-static int snap_type_exec(bContext *C, wmOperator *op)
-{
-	ToolSettings *ts = CTX_data_tool_settings(C);
-
-	ts->snap_mode = RNA_enum_get(op->ptr, "type");
-
-	WM_event_add_notifier(C, NC_SCENE | ND_TOOLSETTINGS, NULL); /* header redraw */
-
-	return OPERATOR_FINISHED;
-}
-
-static void TRANSFORM_OT_snap_type(wmOperatorType *ot)
-{
-	/* identifiers */
-	ot->name = "Snap Type";
-	ot->description = "Set the snap element type";
-	ot->idname = "TRANSFORM_OT_snap_type";
-
-	/* api callbacks */
-	ot->invoke = WM_menu_invoke;
-	ot->exec = snap_type_exec;
-
-	ot->poll = ED_operator_areaactive;
-
-	/* flags */
-	ot->flag = OPTYPE_UNDO;
-
-	/* props */
-	ot->prop = RNA_def_enum(ot->srna, "type", snap_element_items, 0, "Type", "Set the snap element type");
-
-}
-
 static int select_orientation_exec(bContext *C, wmOperator *op)
 {
 	int orientation = RNA_enum_get(op->ptr, "orientation");
@@ -914,8 +882,6 @@
 	WM_operatortype_append(TRANSFORM_OT_select_orientation);
 	WM_operatortype_append(TRANSFORM_OT_create_orientation);
 	WM_operatortype_append(TRANSFORM_OT_delete_orientation);
-
-	WM_operatortype_append(TRANSFORM_OT_snap_type);
 }
 
 void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spaceid)
@@ -962,8 +928,10 @@
 			kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
 			RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
 
-			WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
+			kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
+			RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_element");
 
+
 			kmi = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0);
 			RNA_boolean_set(kmi->ptr, "texture_space", TRUE);
 
@@ -1055,6 +1023,9 @@
 
 			kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
 			RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
+
+			kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
+			RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_uv_element");
 			break;
 		case SPACE_CLIP:
 			WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);

Modified: trunk/blender/source/blender/makesrna/intern/rna_rna.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_rna.c	2013-01-13 15:01:34 UTC (rev 53772)
+++ trunk/blender/source/blender/makesrna/intern/rna_rna.c	2013-01-13 16:18:35 UTC (rev 53773)
@@ -31,6 +31,7 @@
 
 #include "RNA_access.h"
 #include "RNA_define.h"
+#include "RNA_enum_types.h"
 
 #include "rna_internal.h"
 
@@ -880,6 +881,11 @@
 	return ((EnumPropertyItem *)ptr->data)->value;
 }
 
+static int rna_EnumPropertyItem_icon_get(PointerRNA *ptr)
+{
+	return ((EnumPropertyItem *)ptr->data)->icon;
+}
+
 static PointerRNA rna_PointerProperty_fixed_type_get(PointerRNA *ptr)
 {
 	PropertyRNA *prop = (PropertyRNA *)ptr->data;
@@ -1408,6 +1414,12 @@
 	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 	RNA_def_property_int_funcs(prop, "rna_EnumPropertyItem_value_get", NULL, NULL);
 	RNA_def_property_ui_text(prop, "Value", "Value of the item");
+
+	prop = RNA_def_property(srna, "icon", PROP_ENUM, PROP_NONE);
+	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+	RNA_def_property_enum_items(prop, icon_items);
+	RNA_def_property_enum_funcs(prop, "rna_EnumPropertyItem_icon_get", NULL, NULL);
+	RNA_def_property_ui_text(prop, "Icon", "Icon of the item");
 }
 
 static void rna_def_pointer_property(StructRNA *srna, PropertyType type)




More information about the Bf-blender-cvs mailing list