diff --git a/release/scripts/ui/space_view3d_toolbar.py b/release/scripts/ui/space_view3d_toolbar.py index cee0e804c7d..b80d55e9076 100644 --- a/release/scripts/ui/space_view3d_toolbar.py +++ b/release/scripts/ui/space_view3d_toolbar.py @@ -171,6 +171,10 @@ class VIEW3D_PT_tools_curveedit(View3DPanel): col.itemO("tfm.translate") col.itemO("tfm.rotate") col.itemO("tfm.resize", text="Scale") + + col = layout.column(align=True) + col.item_enumO("tfm.transform", "mode", 'TILT') + col.item_enumO("tfm.transform", "mode", 'CURVE_SHRINKFATTEN') col = layout.column(align=True) col.itemL(text="Curve:") @@ -182,10 +186,12 @@ class VIEW3D_PT_tools_curveedit(View3DPanel): col = layout.column(align=True) col.itemL(text="Handles:") - col.item_enumO("curve.handle_type_set", "type", 'AUTOMATIC') - col.item_enumO("curve.handle_type_set", "type", 'VECTOR') - col.item_enumO("curve.handle_type_set", "type", 'ALIGN') - col.item_enumO("curve.handle_type_set", "type", 'FREE_ALIGN') + row = col.row() + row.item_enumO("curve.handle_type_set", "type", 'AUTOMATIC', text="Auto") + row.item_enumO("curve.handle_type_set", "type", 'VECTOR') + row = col.row() + row.item_enumO("curve.handle_type_set", "type", 'ALIGN') + row.item_enumO("curve.handle_type_set", "type", 'FREE_ALIGN', text="Free") col = layout.column(align=True) col.itemL(text="Modeling:") diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index 813d88f9aab..5dd2c5773dd 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -323,6 +323,10 @@ void ED_object_generic_keymap(struct wmKeyConfig *keyconf, struct wmKeyMap *keym { wmKeyMapItem *km; + /* snap */ + km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0); + RNA_string_set(km->ptr, "path", "scene.tool_settings.snap"); + /* used by mesh, curve & lattice only */ if(do_pet) { /* context ops */ @@ -339,6 +343,5 @@ void ED_object_generic_keymap(struct wmKeyConfig *keyconf, struct wmKeyMap *keym RNA_string_set(km->ptr, "value_1", "DISABLED"); RNA_string_set(km->ptr, "value_2", "CONNECTED"); } - } diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c index 4ad6fc85dce..11b5f1858c5 100644 --- a/source/blender/editors/space_view3d/view3d_header.c +++ b/source/blender/editors/space_view3d/view3d_header.c @@ -2185,7 +2185,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C) if (ts->snap_flag & SCE_SNAP) { uiDefIconButBitS(block, TOG, SCE_SNAP, B_REDR, ICON_SNAP_GEO,xco,yco,XIC,YIC, &ts->snap_flag, 0, 0, 0, 0, "Snap with Ctrl during transform (Shift Tab)"); xco+= XIC; - if(v3d->modeselect = OB_MODE_OBJECT) { + if(v3d->modeselect == OB_MODE_OBJECT) { uiDefIconButBitS(block, TOG, SCE_SNAP_ROTATE, B_REDR, ICON_SNAP_NORMAL,xco,yco,XIC,YIC, &ts->snap_flag, 0, 0, 0, 0, "Align rotation with the snapping target"); xco+= XIC; } diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 3acb800dedf..0aa669e20ec 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -649,31 +649,37 @@ static void rna_def_tool_settings(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "snap_flag", SCE_SNAP); RNA_def_property_ui_text(prop, "Snap", "Snap while Ctrl is held during transform."); RNA_def_property_ui_icon(prop, ICON_SNAP_GEAR, 1); + RNA_def_property_update(prop, NC_SCENE|ND_MODE, NULL); /* header redraw */ prop= RNA_def_property(srna, "snap_align_rotation", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "snap_flag", SCE_SNAP_ROTATE); RNA_def_property_ui_text(prop, "Snap Align Rotation", "Align rotation with the snapping target."); RNA_def_property_ui_icon(prop, ICON_SNAP_NORMAL, 0); + RNA_def_property_update(prop, NC_SCENE|ND_MODE, NULL); /* header redraw */ prop= RNA_def_property(srna, "snap_element", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "snap_mode"); RNA_def_property_enum_items(prop, snap_element_items); RNA_def_property_ui_text(prop, "Snap Element", "Type of element to snap to."); + RNA_def_property_update(prop, NC_SCENE|ND_MODE, NULL); /* header redraw */ prop= RNA_def_property(srna, "snap_mode", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "snap_target"); RNA_def_property_enum_items(prop, snap_mode_items); RNA_def_property_ui_text(prop, "Snap Mode", "Which part to snap onto the target."); + RNA_def_property_update(prop, NC_SCENE|ND_MODE, NULL); /* header redraw */ prop= RNA_def_property(srna, "snap_peel_object", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "snap_flag", SCE_SNAP_PEEL_OBJECT); RNA_def_property_ui_text(prop, "Snap Peel Object", "Consider objects as whole when finding volume center."); RNA_def_property_ui_icon(prop, ICON_SNAP_PEEL_OBJECT, 0); + RNA_def_property_update(prop, NC_SCENE|ND_MODE, NULL); /* header redraw */ prop= RNA_def_property(srna, "snap_project", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "snap_flag", SCE_SNAP_PROJECT); RNA_def_property_ui_text(prop, "Project Individual Elements", "DOC_BROKEN"); RNA_def_property_ui_icon(prop, ICON_RETOPO, 0); + RNA_def_property_update(prop, NC_SCENE|ND_MODE, NULL); /* header redraw */ /* Auto Keying */ prop= RNA_def_property(srna, "enable_auto_key", PROP_BOOLEAN, PROP_NONE);