Fix #24215: Bad shorcut indication for Bezier curve handles.
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 11 Oct 2010 18:53:11 +0000 (18:53 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 11 Oct 2010 18:53:11 +0000 (18:53 +0000)
All existing handle type manipulation hotkeys replaced with unified V-menu
where you could directoly set type you need.

release/scripts/ui/space_info.py
source/blender/editors/curve/curve_ops.c

index bd33153d01761b95cf443ebc86ac7b4fbbfe5550..3fdd083bfaa26be7f631b775d8509a9b798425c8 100644 (file)
@@ -219,6 +219,18 @@ class INFO_MT_surface_add(bpy.types.Menu):
         layout.operator("surface.primitive_nurbs_surface_sphere_add", icon='SURFACE_NSPHERE', text="NURBS Sphere")
         layout.operator("surface.primitive_nurbs_surface_torus_add", icon='SURFACE_NTORUS', text="NURBS Torus")
 
+class INFO_MT_curve_handle_type_set(bpy.types.Menu):
+    bl_idname = "INFO_MT_curve_handle_type_set"
+    bl_label = "Handle Type"
+
+    def draw(self, context):
+        layout = self.layout
+        layout.operator_context = 'INVOKE_REGION_WIN'
+        layout.operator("curve.handle_type_set", text="Automatic").type = "AUTOMATIC"
+        layout.operator("curve.handle_type_set", text="Vector").type = "VECTOR"
+        layout.operator("curve.handle_type_set", text="Align").type = "ALIGN"
+        layout.operator("curve.handle_type_set", text="Free Align").type = "FREE_ALIGN"
+
 
 class INFO_MT_armature_add(bpy.types.Menu):
     bl_idname = "INFO_MT_armature_add"
index 4558827c619f4eff2b24315736df6697b9b98598..80582c7f1b05a50245cab814d7e582afac000dc2 100644 (file)
@@ -194,6 +194,7 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
        keymap->poll= ED_operator_editsurfcurve;
 
        WM_keymap_add_menu(keymap, "INFO_MT_edit_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0);
+       WM_keymap_add_menu(keymap, "INFO_MT_curve_handle_type_set", VKEY, KM_PRESS, 0, 0);
        WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
 
        WM_keymap_add_item(keymap, "CURVE_OT_select_all", AKEY, KM_PRESS, 0, 0);
@@ -214,9 +215,6 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
        WM_keymap_add_item(keymap, "CURVE_OT_tilt_clear", TKEY, KM_PRESS, KM_ALT, 0);
        WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, KM_CTRL, 0);
        RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_CURVE_SHRINKFATTEN);
-       RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", 1);
-       RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, 0, 0)->ptr, "type", 3);
-       RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", VKEY, KM_PRESS, 0, 0)->ptr, "type", 2);
 
        WM_keymap_add_item(keymap, "CURVE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
        WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0);