[Bf-blender-cvs] [ab2fa6d3f42] blender2.8: Keymap: more more standard keys for select tools

Campbell Barton noreply at git.blender.org
Tue Nov 13 04:06:38 CET 2018


Commit: ab2fa6d3f42a32cdbdac01d80898fe591db2fb64
Author: Campbell Barton
Date:   Tue Nov 13 14:05:20 2018 +1100
Branches: blender2.8
https://developer.blender.org/rBab2fa6d3f42a32cdbdac01d80898fe591db2fb64

Keymap: more more standard keys for select tools

This uses shift to extend, ctrl to de-select, both to intersect.

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

M	release/scripts/startup/bl_ui/space_toolsystem_toolbar.py

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

diff --git a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
index 4a028271bad..0af74da7d71 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_toolbar.py
@@ -39,6 +39,17 @@ from .properties_grease_pencil_common import (
 )
 
 
+class _km_template:
+    def select_actions(operator, *, type, value):
+        kw = {"type": type, "value": value}
+        return (
+            (operator, dict(mode='SET'), dict(**kw)),
+            (operator, dict(mode='ADD'), dict(**kw, shift=True)),
+            (operator, dict(mode='SUB'), dict(**kw, ctrl=True)),
+            (operator, dict(mode='AND'), dict(**kw, shift=True, ctrl=True)),
+        )
+
+
 def generate_from_enum_ex(
         context, *,
         icon_prefix,
@@ -313,14 +324,20 @@ class _defs_view3d_select:
             text="Select Box",
             icon="ops.generic.select_box",
             widget=None,
-            keymap=(
-                ("view3d.select_box",
-                 dict(mode='ADD'),
-                 dict(type='EVT_TWEAK_A', value='ANY')),
-                ("view3d.select_box",
-                 dict(mode='SUB'),
-                 dict(type='EVT_TWEAK_A', value='ANY', ctrl=True)),
-            ),
+            keymap=_km_template.select_actions("view3d.select_box", type='EVT_TWEAK_A', value='ANY'),
+            draw_settings=draw_settings,
+        )
+
+    @ToolDef.from_fn
+    def lasso():
+        def draw_settings(context, layout, tool):
+            props = tool.operator_properties("view3d.select_lasso")
+            layout.prop(props, "mode", expand=True)
+        return dict(
+            text="Select Lasso",
+            icon="ops.generic.select_lasso",
+            widget=None,
+            keymap=_km_template.select_actions("view3d.select_lasso", type='EVT_TWEAK_A', value='ANY'),
             draw_settings=draw_settings,
         )
 
@@ -352,25 +369,7 @@ class _defs_view3d_select:
             draw_cursor=draw_cursor,
         )
 
-    @ToolDef.from_fn
-    def lasso():
-        def draw_settings(context, layout, tool):
-            props = tool.operator_properties("view3d.select_lasso")
-            layout.prop(props, "mode", expand=True)
-        return dict(
-            text="Select Lasso",
-            icon="ops.generic.select_lasso",
-            widget=None,
-            keymap=(
-                ("view3d.select_lasso",
-                 dict(mode='ADD'),
-                 dict(type='EVT_TWEAK_A', value='ANY')),
-                ("view3d.select_lasso",
-                 dict(mode='SUB'),
-                 dict(type='EVT_TWEAK_A', value='ANY', ctrl=True)),
-            ),
-            draw_settings=draw_settings,
-        )
+
 # -----------------------------------------------------------------------------
 # Object Modes (named based on context.mode)
 
@@ -1152,6 +1151,22 @@ class _defs_image_uv_select:
             draw_settings=draw_settings,
         )
 
+    @ToolDef.from_fn
+    def lasso():
+        return dict(
+            text="Select Lasso",
+            icon="ops.generic.select_lasso",
+            widget=None,
+            keymap=(
+                ("uv.select_lasso",
+                 dict(deselect=False),
+                 dict(type='EVT_TWEAK_A', value='ANY')),
+                # ("uv.select_lasso",
+                #  dict(deselect=True),
+                #  dict(type='EVT_TWEAK_A', value='ANY', ctrl=True)),
+            ),
+        )
+
     @ToolDef.from_fn
     def circle():
         def draw_settings(context, layout, tool):
@@ -1172,22 +1187,6 @@ class _defs_image_uv_select:
             draw_settings=draw_settings,
         )
 
-    @ToolDef.from_fn
-    def lasso():
-        return dict(
-            text="Select Lasso",
-            icon="ops.generic.select_lasso",
-            widget=None,
-            keymap=(
-                ("uv.select_lasso",
-                 dict(deselect=False),
-                 dict(type='EVT_TWEAK_A', value='ANY')),
-                # ("uv.select_lasso",
-                #  dict(deselect=True),
-                #  dict(type='EVT_TWEAK_A', value='ANY', ctrl=True)),
-            ),
-        )
-
 
 class _defs_image_uv_sculpt:
 
@@ -1316,40 +1315,43 @@ class _defs_gpencil_edit:
 
     @ToolDef.from_fn
     def box_select():
+        def draw_settings(context, layout, tool):
+            props = tool.operator_properties("gpencil.select_box")
+            layout.prop(props, "mode", expand=True)
         return dict(
             text="Select Box",
             icon="ops.generic.select_box",
             widget=None,
-            keymap=(
-                ("gpencil.select_box",
-                 dict(),
-                 dict(type='EVT_TWEAK_A', value='ANY')),
-            ),
+            keymap=_km_template.select_actions("gpencil.select_box", type='EVT_TWEAK_A', value='ANY'),
+            draw_settings=draw_settings,
         )
 
     @ToolDef.from_fn
-    def circle_select():
+    def lasso_select():
+        def draw_settings(context, layout, tool):
+            props = tool.operator_properties("gpencil.select_lasso")
+            layout.prop(props, "mode", expand=True)
         return dict(
-            text="Select Circle",
-            icon="ops.generic.select_circle",
+            text="Select Lasso",
+            icon="ops.generic.select_lasso",
             widget=None,
-            keymap=(
-                ("gpencil.select_circle",
-                 dict(),
-                 dict(type='EVT_TWEAK_A', value='ANY')),
-            ),
+            keymap=_km_template.select_actions("gpencil.select_lasso", type='EVT_TWEAK_A', value='ANY'),
+            draw_settings=draw_settings,
         )
 
     @ToolDef.from_fn
-    def lasso_select():
+    def circle_select():
         return dict(
-            text="Select Lasso",
-            icon="ops.generic.select_lasso",
+            text="Select Circle",
+            icon="ops.generic.select_circle",
             widget=None,
             keymap=(
-                ("gpencil.select_lasso",
+                ("gpencil.select_circle",
                  dict(),
                  dict(type='EVT_TWEAK_A', value='ANY')),
+                ("gpencil.select_circle",
+                 dict(deselect=True),
+                 dict(type='ACTIONMOUSE', value='PRESS', ctrl=True)),
             ),
         )



More information about the Bf-blender-cvs mailing list