diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-11-13 06:05:20 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-11-13 06:05:20 +0300 |
commit | ab2fa6d3f42a32cdbdac01d80898fe591db2fb64 (patch) | |
tree | be51aa2d455b17ec11eafa9b2853b6c9d5c48cc7 /release | |
parent | b323167600062feccd55d08ac383b69f6f9a4980 (diff) |
Keymap: more more standard keys for select tools
This uses shift to extend, ctrl to de-select, both to intersect.
Diffstat (limited to 'release')
-rw-r--r-- | release/scripts/startup/bl_ui/space_toolsystem_toolbar.py | 122 |
1 files changed, 62 insertions, 60 deletions
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) @@ -1153,6 +1152,22 @@ class _defs_image_uv_select: ) @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): props = tool.operator_properties("uv.select_circle") @@ -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)), ), ) |