[Bf-blender-cvs] [1f8360171cd] blender2.8: Keymap: share annotation tool keymaps between spaces

Campbell Barton noreply at git.blender.org
Tue Nov 27 07:55:51 CET 2018


Commit: 1f8360171cd80c0c1918486703926709cb5db7aa
Author: Campbell Barton
Date:   Tue Nov 27 17:33:52 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB1f8360171cd80c0c1918486703926709cb5db7aa

Keymap: share annotation tool keymaps between spaces

Not sharing caused duplication in the keymap and
required a factory class generator.

Simplify tool & keymap definitions by sharing them.

It's highly unlikely we will ever want these to use different keys
once they're set as the active tool.

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

M	release/scripts/presets/keyconfig/keymap_data/blender_default.py
M	release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
M	source/blender/windowmanager/WM_keymap.h
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blender/windowmanager/intern/wm_keymap.c

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

diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 03f9fadadea..6b8e459d16b 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -4943,6 +4943,62 @@ def km_popup_toolbar(params):
 #
 # Named are auto-generated based on the tool name and it's toolbar.
 
+
+def km_generic_tool_annotate(params):
+    return (
+        "Generic Tool: Annotate",
+        {"region_type": 'WINDOW'},
+        {"items": (
+            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
+             {"properties": [("mode", 'DRAW'), ("wait_for_input", False)]}),
+            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
+             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+        ),
+        },
+    )
+
+
+def km_generic_tool_annotate_line(params):
+    return (
+        "Generic Tool: Annotate Line",
+        {"region_type": 'WINDOW'},
+        {"items": (
+            ("gpencil.annotate", {"type": params.tool_tweak, "value": 'ANY'},
+             {"properties": [("mode", 'DRAW_STRAIGHT'), ("wait_for_input", False)]}),
+            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
+             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+        ),
+        },
+    )
+
+
+def km_generic_tool_annotate_polygon(params):
+    return (
+        "Generic Tool: Annotate Polygon",
+        {"region_type": 'WINDOW'},
+        {"items": (
+            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
+             {"properties": [("mode", 'DRAW_POLY'), ("wait_for_input", False)]}),
+            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
+             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+        ),
+        },
+    )
+
+
+def km_generic_tool_annotate_eraser(params):
+    return (
+        "Generic Tool: Annotate Eraser",
+        {"region_type": 'WINDOW'},
+        {"items": (
+            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
+             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
+             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+        ),
+        },
+    )
+
 def km_image_editor_tool_uv_cursor(params):
     return (
         "Image Editor Tool: Uv, Cursor",
@@ -4994,54 +5050,6 @@ def km_image_editor_tool_uv_select_lasso(params):
     )
 
 
-def km_image_editor_tool_uv_annotate(params):
-    return (
-        "Image Editor Tool: Uv, Annotate",
-        {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
-             {"properties": [("mode", 'DRAW'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
-def km_image_editor_tool_uv_annotate_line(params):
-    return (
-        "Image Editor Tool: Uv, Annotate Line",
-        {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_tweak, "value": 'ANY'},
-             {"properties": [("mode", 'DRAW_STRAIGHT'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
-def km_image_editor_tool_uv_annotate_polygon(params):
-    return (
-        "Image Editor Tool: Uv, Annotate Polygon",
-        {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
-             {"properties": [("mode", 'DRAW_POLY'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
-def km_image_editor_tool_uv_annotate_eraser(params):
-    return (
-        "Image Editor Tool: Uv, Annotate Eraser",
-        {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
-             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
 def km_3d_view_tool_object_cursor(params):
     return (
         "3D View Tool: Object, Cursor",
@@ -5140,62 +5148,6 @@ def km_3d_view_tool_object_scale(params):
     )
 
 
-def km_3d_view_tool_object_annotate(params):
-    return (
-        "3D View Tool: Object, Annotate",
-        {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
-             {"properties": [("mode", 'DRAW'), ("wait_for_input", False)]}),
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
-             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
-def km_3d_view_tool_object_annotate_line(params):
-    return (
-        "3D View Tool: Object, Annotate Line",
-        {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_tweak, "value": 'ANY'},
-             {"properties": [("mode", 'DRAW_STRAIGHT'), ("wait_for_input", False)]}),
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
-             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
-def km_3d_view_tool_object_annotate_polygon(params):
-    return (
-        "3D View Tool: Object, Annotate Polygon",
-        {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
-             {"properties": [("mode", 'DRAW_POLY'), ("wait_for_input", False)]}),
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
-             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
-def km_3d_view_tool_object_annotate_eraser(params):
-    return (
-        "3D View Tool: Object, Annotate Eraser",
-        {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
-        {"items": (
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS'},
-             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
-            ("gpencil.annotate", {"type": params.tool_mouse, "value": 'PRESS', "alt": True},
-             {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
-        ),
-        },
-    )
-
-
 def km_3d_view_tool_object_measure(params):
     return (
         "3D View Tool: Object, Measure",
@@ -5940,15 +5892,16 @@ def generate_keymaps(params=None):
         km_popup_toolbar(params),
 
         # Tool System.
+        km_generic_tool_annotate(params),
+        km_generic_tool_annotate_line(params),
+        km_generic_tool_annotate_polygon(params),
+        km_generic_tool_annotate_eraser(params),
+
         km_image_editor_tool_uv_cursor(params),
         km_image_editor_tool_uv_select(params),
         km_image_editor_tool_uv_select_box(params),
         km_image_editor_tool_uv_select_circle(params),
         km_image_editor_tool_uv_select_lasso(params),
-        km_image_editor_tool_uv_annotate(params),
-        km_image_editor_tool_uv_annotate_line(params),
-        km_image_editor_tool_uv_annotate_polygon(params),
-        km_image_editor_tool_uv_annotate_eraser(params),
         km_3d_view_tool_object_cursor(params),
         km_3d_view_tool_object_select(params),
         km_3d_view_tool_object_select_box(params),
@@ -5958,10 +5911,6 @@ def generate_keymaps(params=None):
         km_3d_view_tool_object_move(params),
         km_3d_view_tool_object_rotate(params),
         km_3d_view_tool_object_scale(params),
-        km_3d_view_tool_object_annotate(params),
-        km_3d_view_tool_object_annotate_line(params),
-        km_3d_view_tool_object_annotate_polygon(params),
-        km_3d_view_tool_object_annotate_eraser(params),
         km_3d_view_tool_object_measure(params),
         km_3d_view_tool_pose_breakdowner(params),
         km_3d_view_tool_pose_push(params),
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 66cadb635d1..1f2b4ca47ee 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -108,99 +108,90 @@ class _defs_view3d_generic:
         )
 
 
-def _defs_annotate_factory():
-
-    class _defs_annotate:
-
-        def draw_settings_common(context, layout, tool):
-            if type(context.gpencil_data_owner) is bpy.types.Object:
-                gpd = context.scene.grease_pencil
+class _defs_annotate:
+
+    def draw_settings_common(context, layout, tool):
+        if type(context.gpencil_data_owner) is bpy.types.Object:
+            gpd = context.scene.grease_pencil
+        else:
+            gpd = context.gpencil_data
+
+        if gpd is not None:
+            if gpd.layers.active_note is not None:
+                text = gpd.layers.active_note
+                maxw = 25
+                if len(text) > maxw:
+                    text = text[:maxw - 5] + '..' + text[-3:]
             else:
-                gpd = context.gpencil_data
-
-            if gpd is not None:
-                if gpd.layers.active_note is not None:
-                    text = gpd.layers.active_note
-                    maxw = 25
-                    if len(text) > maxw:
-                        text = text[:maxw - 5] + '..' + text[-3:]
-                else:
-                    text = ""
-
-                layout.label(text="Annotation:")
-                gpl = context.active_gpencil_layer
-                if gpl is not None:
-                    sub = layout.row(align=True)
-                    sub.ui_units_x = 8
-
-                    sub.prop(gpl, "color", text="")
-                    sub.popover(
-                  

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list