Keymap: preference to swap 3D orbit/pan actions

Requested by @pepeland for grease pencil/2D usage.
This commit is contained in:
Campbell Barton 2020-02-07 13:18:05 +11:00
parent d8830048f7
commit 1778efc897
Notes: blender-bot 2023-02-14 08:33:26 +01:00
Referenced by issue #57902, User preferences for the default keymap  (design task)
2 changed files with 30 additions and 2 deletions

View File

@ -108,6 +108,22 @@ class Prefs(bpy.types.KeyConfigPreferences):
update=update_fn,
)
v3d_mmb_action: EnumProperty(
name="MMB Action",
items=(
('ORBIT', "Orbit",
"Orbit",
0),
('PAN', "Pan",
"Set the view axis where each mouse direction always maps to the same axis",
1),
),
description=(
"The action when Middle-Mouse dragging in the viewport. Shift-Middle-Mouse is used for the other action"
),
update=update_fn,
)
v3d_alt_mmb_drag_action: EnumProperty(
name="Alt-MMB Drag Action",
items=(
@ -169,6 +185,8 @@ class Prefs(bpy.types.KeyConfigPreferences):
col = split.column()
col.label(text="Tilde Action:")
col.row().prop(self, "v3d_tilde_action", expand=True)
col.label(text="Middle Mouse Action:")
col.row().prop(self, "v3d_mmb_action", expand=True)
col.label(text="Alt Middle Mouse Drag Action:")
col.row().prop(self, "v3d_alt_mmb_drag_action", expand=True)
@ -194,6 +212,7 @@ def load():
),
spacebar_action=kc_prefs.spacebar_action,
v3d_tilde_action=kc_prefs.v3d_tilde_action,
use_v3d_mmb_pan=(kc_prefs.v3d_mmb_action == 'PAN'),
v3d_alt_mmb_drag_action=kc_prefs.v3d_alt_mmb_drag_action,
use_select_all_toggle=kc_prefs.use_select_all_toggle,
use_v3d_tab_menu=kc_prefs.use_v3d_tab_menu,

View File

@ -50,6 +50,8 @@ class Params:
"use_v3d_tab_menu",
# Use extended pie menu for shading.
"use_v3d_shade_ex_pie",
# Swap orbit/pan keys (for 2D workflows).
"use_v3d_mmb_pan",
# Experimental option.
"use_pie_click_drag",
"v3d_tilde_action",
@ -70,6 +72,7 @@ class Params:
use_gizmo_drag=True,
use_v3d_tab_menu=False,
use_v3d_shade_ex_pie=False,
use_v3d_mmb_pan=False,
use_pie_click_drag=False,
v3d_tilde_action='VIEW',
v3d_alt_mmb_drag_action='RELATIVE',
@ -119,6 +122,7 @@ class Params:
self.use_select_all_toggle = use_select_all_toggle
self.use_v3d_tab_menu = use_v3d_tab_menu
self.use_v3d_shade_ex_pie = use_v3d_shade_ex_pie
self.use_v3d_mmb_pan = use_v3d_mmb_pan
self.v3d_tilde_action = v3d_tilde_action
self.v3d_alt_mmb_drag_action = v3d_alt_mmb_drag_action
@ -946,8 +950,13 @@ def km_view3d(params):
("view3d.localview", {"type": 'SLASH', "value": 'PRESS'}, None),
("view3d.localview_remove_from", {"type": 'M', "value": 'PRESS'}, None),
# Navigation.
("view3d.rotate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
("view3d.move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
*((
("view3d.rotate", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
("view3d.move", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
) if params.use_v3d_mmb_pan else (
("view3d.rotate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
("view3d.move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
)),
("view3d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
("view3d.dolly", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
("view3d.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "ctrl": True},