From f6a581e28aaf97df875820d19258de70b143d40d Mon Sep 17 00:00:00 2001 From: Germano Cavalcante Date: Wed, 13 Mar 2024 12:16:02 -0300 Subject: [PATCH] UV: Vert and Edge Slide UI improvements Changes: - Add Vert Slide and Edge Slide to 'UV -> Transform' menu. - Add a separator for Vert Slide and Edge Slide in the context menu. - Don't display the "Correct UVs" option in the Redo menu of UV Editor. --- scripts/startup/bl_ui/space_image.py | 27 ++++++++++++------- .../editors/transform/transform_ops.cc | 6 +++++ 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/scripts/startup/bl_ui/space_image.py b/scripts/startup/bl_ui/space_image.py index f1d3a729af5..686eadc5b38 100644 --- a/scripts/startup/bl_ui/space_image.py +++ b/scripts/startup/bl_ui/space_image.py @@ -316,6 +316,11 @@ class IMAGE_MT_uvs_transform(Menu): layout.separator() + layout.operator("transform.vert_slide") + layout.operator("transform.edge_slide") + + layout.separator() + layout.operator("uv.randomize_uv_transform") @@ -562,18 +567,20 @@ class IMAGE_MT_uvs_context_menu(Menu): layout.operator_enum("uv.align", "axis") # W, 2/3/4. - layout.operator_context = 'INVOKE_DEFAULT' - - if is_vert_mode: - layout.operator("transform.vert_slide") - - if is_edge_mode: - layout.operator("transform.edge_slide") - - layout.operator_context = 'EXEC_REGION_WIN' - layout.separator() + if is_vert_mode or is_edge_mode: + layout.operator_context = 'INVOKE_DEFAULT' + + if is_vert_mode: + layout.operator("transform.vert_slide") + + if is_edge_mode: + layout.operator("transform.edge_slide") + + layout.operator_context = 'EXEC_REGION_WIN' + layout.separator() + # Remove layout.menu("IMAGE_MT_uvs_merge") layout.operator("uv.stitch") diff --git a/source/blender/editors/transform/transform_ops.cc b/source/blender/editors/transform/transform_ops.cc index 6171d28ab50..c43f6c5621f 100644 --- a/source/blender/editors/transform/transform_ops.cc +++ b/source/blender/editors/transform/transform_ops.cc @@ -607,6 +607,12 @@ static bool transform_poll_property(const bContext *C, wmOperator *op, const Pro return RNA_boolean_get(op->ptr, "snap"); } + /* #P_CORRECT_UV. */ + if (STREQ(prop_id, "correct_uv")) { + ScrArea *area = CTX_wm_area(C); + return area->spacetype == SPACE_VIEW3D; + } + return true; }