Keymap: more more standard keys for select tools
This uses shift to extend, ctrl to de-select, both to intersect.
This commit is contained in:
@@ -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,15 +1315,28 @@ 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 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 Lasso",
|
||||
icon="ops.generic.select_lasso",
|
||||
widget=None,
|
||||
keymap=_km_template.select_actions("gpencil.select_lasso", type='EVT_TWEAK_A', value='ANY'),
|
||||
draw_settings=draw_settings,
|
||||
)
|
||||
|
||||
@ToolDef.from_fn
|
||||
@@ -1337,19 +1349,9 @@ class _defs_gpencil_edit:
|
||||
("gpencil.select_circle",
|
||||
dict(),
|
||||
dict(type='EVT_TWEAK_A', value='ANY')),
|
||||
),
|
||||
)
|
||||
|
||||
@ToolDef.from_fn
|
||||
def lasso_select():
|
||||
return dict(
|
||||
text="Select Lasso",
|
||||
icon="ops.generic.select_lasso",
|
||||
widget=None,
|
||||
keymap=(
|
||||
("gpencil.select_lasso",
|
||||
dict(),
|
||||
dict(type='EVT_TWEAK_A', value='ANY')),
|
||||
("gpencil.select_circle",
|
||||
dict(deselect=True),
|
||||
dict(type='ACTIONMOUSE', value='PRESS', ctrl=True)),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user