[Bf-blender-cvs] [98a10fd7de6] blender2.8: Tool System: add UV cursor & transform tools

Campbell Barton noreply at git.blender.org
Thu Oct 4 04:10:36 CEST 2018


Commit: 98a10fd7de609ca4b026c39c1b3ef3724c60d25e
Author: Campbell Barton
Date:   Thu Oct 4 12:04:36 2018 +1000
Branches: blender2.8
https://developer.blender.org/rB98a10fd7de609ca4b026c39c1b3ef3724c60d25e

Tool System: add UV cursor & transform tools

Instead of showing the transform handles for all selections,
move this functionality into a tool as done for the 3D view.

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

M	release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
A	source/blender/editors/space_image/image_uv_gizmo_transform_2d.c
M	source/blender/editors/space_image/space_image.c

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

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 4cc4779e9c2..7b1275119dd 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -154,7 +154,7 @@ class _defs_view3d_generic:
         return dict(
             text="Cursor",
             description=(
-                "Set the 3D cursor location, drag to transform"
+                "Set the cursor location, drag to transform"
             ),
             icon="ops.generic.cursor",
             keymap=(
@@ -1188,7 +1188,42 @@ class _defs_weight_paint:
         )
 
 
-class _defs_uv_select:
+class _defs_image_generic:
+
+    @ToolDef.from_fn
+    def cursor():
+        return dict(
+            text="Cursor",
+            description=(
+                "Set the cursor location, drag to transform"
+            ),
+            icon="ops.generic.cursor",
+            keymap=(
+                ("uv.cursor_set", dict(), dict(type='ACTIONMOUSE', value='PRESS')),
+                ("transform.translate",
+                 dict(release_confirm=True, cursor_transform=True),
+                 dict(type='EVT_TWEAK_A', value='ANY'),
+                 ),
+            ),
+        )
+
+
+class _defs_image_uv_transform:
+
+    @ToolDef.from_fn
+    def transform():
+        return dict(
+            text="Transform",
+            description=(
+                "Supports any combination of grab, rotate & scale at once"
+            ),
+            icon="ops.transform.transform",
+            widget="IMAGE_GGT_gizmo2d",
+            # No keymap default action, only for gizmo!
+        )
+
+
+class _defs_image_uv_select:
 
     @ToolDef.from_fn
     def border():
@@ -1697,11 +1732,15 @@ class IMAGE_PT_tools_active(ToolSelectPanelHelper, Panel):
         yield from cls._tools.items()
 
     # for reuse
+    _tools_transform = (
+        _defs_image_uv_transform.transform,
+    )
+
     _tools_select = (
         (
-            _defs_uv_select.border,
-            _defs_uv_select.circle,
-            _defs_uv_select.lasso,
+            _defs_image_uv_select.border,
+            _defs_image_uv_select.circle,
+            _defs_image_uv_select.lasso,
         ),
     )
 
@@ -1719,7 +1758,11 @@ class IMAGE_PT_tools_active(ToolSelectPanelHelper, Panel):
             # for all modes
         ],
         'VIEW': [
+            _defs_image_generic.cursor,
             *_tools_select,
+            None,
+            *_tools_transform,
+            None,
             *_tools_annotate,
         ],
         'MASK': [
diff --git a/source/blender/editors/space_image/image_uv_gizmo_transform_2d.c b/source/blender/editors/space_image/image_uv_gizmo_transform_2d.c
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 60431adad0e..21b46dd8000 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -576,7 +576,8 @@ static void IMAGE_GGT_gizmo2d(wmGizmoGroupType *gzgt)
 	gzgt->name = "UV Transform Gizmo";
 	gzgt->idname = "IMAGE_GGT_gizmo2d";
 
-	gzgt->flag |= WM_GIZMOGROUPTYPE_PERSISTENT;
+	gzgt->gzmap_params.spaceid = SPACE_IMAGE;
+	gzgt->gzmap_params.regionid = RGN_TYPE_WINDOW;
 
 	gzgt->poll = ED_widgetgroup_gizmo2d_poll;
 	gzgt->setup = ED_widgetgroup_gizmo2d_setup;
@@ -586,10 +587,7 @@ static void IMAGE_GGT_gizmo2d(wmGizmoGroupType *gzgt)
 
 static void image_widgets(void)
 {
-	wmGizmoMapType *gzmap_type = WM_gizmomaptype_ensure(
-	        &(const struct wmGizmoMapType_Params){SPACE_IMAGE, RGN_TYPE_WINDOW});
-
-	WM_gizmogrouptype_append_and_link(gzmap_type, IMAGE_GGT_gizmo2d);
+	WM_gizmogrouptype_append(IMAGE_GGT_gizmo2d);
 }
 
 /************************** main region ***************************/



More information about the Bf-blender-cvs mailing list