Commit: 321c8232bc240a0e86a3fa2ed1a3f8871d53d8aa
Author: Campbell Barton
Date:   Thu Oct 18 13:55:01 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB321c8232bc240a0e86a3fa2ed1a3f8871d53d8aa

Tool System: expose shear tool x/y option

===================================================================

M       release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M       source/blender/editors/transform/transform.c
M       source/blender/editors/transform/transform_gizmo_3d.c
M       source/blender/editors/transform/transform_ops.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py 
b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index eadd8145f0c..26a93866b7c 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -831,6 +831,10 @@ class _defs_edit_mesh:
 
     @ToolDef.from_fn
     def shear():
+        def draw_settings(context, layout, tool):
+            props = tool.operator_properties("transform.shear")
+            layout.label(text="View Axis:")
+            layout.prop(props, "shear_axis", expand=True)
         return dict(
             text="Shear",
             icon="ops.transform.shear",
@@ -839,6 +843,7 @@ class _defs_edit_mesh:
                 ("transform.shear", dict(release_confirm=True),
                  dict(type='EVT_TWEAK_A', value='ANY')),
             ),
+            draw_settings=draw_settings,
         )
 
     @ToolDef.from_fn
diff --git a/source/blender/editors/transform/transform.c 
b/source/blender/editors/transform/transform.c
index d5f0502f8bc..6dad6e96819 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -2255,6 +2255,12 @@ void saveTransform(bContext *C, TransInfo *t, wmOperator 
*op)
        if ((prop = RNA_struct_find_property(op->ptr, "correct_uv"))) {
                RNA_property_boolean_set(op->ptr, prop, 
(t->settings->uvcalc_flag & UVCALC_TRANSFORM_CORRECT) != 0);
        }
+
+       if (t->mode == TFM_SHEAR) {
+               prop = RNA_struct_find_property(op->ptr, "shear_axis");
+               t->custom.mode.data = 
POINTER_FROM_INT(RNA_property_enum_get(op->ptr, prop));
+               RNA_property_enum_set(op->ptr, prop, 
POINTER_AS_INT(t->custom.mode.data));
+       }
 }
 
 /**
@@ -2477,6 +2483,8 @@ bool initTransform(bContext *C, TransInfo *t, wmOperator 
*op, const wmEvent *eve
                        initToSphere(t);
                        break;
                case TFM_SHEAR:
+                       prop = RNA_struct_find_property(op->ptr, "shear_axis");
+                       t->custom.mode.data = 
POINTER_FROM_INT(RNA_property_enum_get(op->ptr, prop));
                        initShear(t);
                        break;
                case TFM_BEND:
diff --git a/source/blender/editors/transform/transform_gizmo_3d.c 
b/source/blender/editors/transform/transform_gizmo_3d.c
index 4c1be88904d..480fe3429e0 100644
--- a/source/blender/editors/transform/transform_gizmo_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_3d.c
@@ -2003,6 +2003,7 @@ static void WIDGETGROUP_xform_shear_setup(const bContext 
*UNUSED(C), wmGizmoGrou
                        interp_v3_v3v3(gz->color, axis_color[i_ortho_a], 
axis_color[i_ortho_b], 0.75f);
                        gz->color[3] = 0.5f;
                        PointerRNA *ptr = WM_gizmo_operator_set(gz, 0, 
ot_shear, NULL);
+                       RNA_enum_set(ptr, "shear_axis", 0);
                        RNA_boolean_set(ptr, "release_confirm", 1);
                        xgzgroup->gizmo[i][j] = gz;
                }
diff --git a/source/blender/editors/transform/transform_ops.c 
b/source/blender/editors/transform/transform_ops.c
index 9d928027882..1d4b112c597 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -839,6 +839,7 @@ static void TRANSFORM_OT_shear(struct wmOperatorType *ot)
        ot->poll_property = transform_poll_property;
 
        RNA_def_float(ot->srna, "value", 0, -FLT_MAX, FLT_MAX, "Offset", "", 
-FLT_MAX, FLT_MAX);
+       RNA_def_enum(ot->srna, "shear_axis", rna_enum_axis_xy_items, 0, "Shear 
Axis", "");
 
        WM_operatortype_props_advanced_begin(ot);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to