Keymap: 3D view pref for tab to show pie menu

This behaves like the 2.7x pie menu add-on,
for users who prefer single-key access to all modes.
This commit is contained in:
Campbell Barton 2018-11-22 08:12:39 +11:00
parent 77764ab22c
commit d52c41b040
2 changed files with 34 additions and 6 deletions

View File

@ -55,17 +55,31 @@ class Prefs(bpy.types.KeyConfigPreferences):
update=update_fn,
)
use_v3d_tab_menu: BoolProperty(
name="Tab for Pie Menu",
description=(
"Causes tab to open pie menu (swaps 'Tab' / 'Ctrl-Tab')"
),
default=False,
update=update_fn,
)
def draw(self, layout):
split = layout.split()
col = split.column(align=True)
col.label(text="Select With:")
col.row().prop(self, "select_mouse", expand=True)
col.prop(self, "use_select_all_toggle")
col = split.column(align=True)
col.label(text="Spacebar Action:")
col.row().prop(self, "spacebar_action", expand=True)
layout.prop(self, "use_select_all_toggle")
split = layout.split()
col = split.column()
col.label(text="3D View:")
col.prop(self, "use_v3d_tab_menu")
split.column()
blender_default = bpy.utils.execfile(os.path.join(dirname, "keymap_data", "blender_default.py"))
@ -82,6 +96,7 @@ def load():
select_mouse=kc_prefs.select_mouse,
spacebar_action=kc_prefs.spacebar_action,
use_select_all_toggle=kc_prefs.use_select_all_toggle,
use_v3d_tab_menu=kc_prefs.use_v3d_tab_menu,
),
)
keyconfig_init_from_data(kc, keyconfig_data)

View File

@ -41,6 +41,8 @@ class Params:
"spacebar_action",
# Key toggles selection with 'A'.
"use_select_all_toggle",
# Use pie menu for tab by default (swap 'Tab/Ctrl-Tab').
"use_v3d_tab_menu",
)
def __init__(
@ -52,6 +54,8 @@ class Params:
# User preferences.
spacebar_action='TOOL',
use_select_all_toggle=False,
use_pie_on_tab=False,
use_v3d_tab_menu=False,
):
import platform
@ -93,6 +97,7 @@ class Params:
# User preferences
self.spacebar_action = spacebar_action
self.use_select_all_toggle = use_select_all_toggle
self.use_v3d_tab_menu = use_v3d_tab_menu
# ------------------------------------------------------------------------------
@ -4090,11 +4095,19 @@ def km_object_non_modal(params):
{"items": items},
)
items.extend([
("object.mode_set", {"type": 'TAB', "value": 'PRESS'},
{"properties": [("mode", 'EDIT'), ("toggle", True)]}),
("view3d.object_mode_pie_or_toggle", {"type": 'TAB', "value": 'PRESS', "ctrl": True}, None),
])
if not params.use_v3d_tab_menu:
items.extend([
("object.mode_set", {"type": 'TAB', "value": 'PRESS'},
{"properties": [("mode", 'EDIT'), ("toggle", True)]}),
("view3d.object_mode_pie_or_toggle", {"type": 'TAB', "value": 'PRESS', "ctrl": True}, None),
])
else:
# Swap Tab/Ctrl-Tab
items.extend([
("object.mode_set", {"type": 'TAB', "value": 'PRESS', "ctrl": True},
{"properties": [("mode", 'EDIT'), ("toggle", True)]}),
("view3d.object_mode_pie_or_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
])
if params.legacy:
items.extend([