blender/release/scripts/presets/keyconfig/blender.py

126 lines
3.6 KiB
Python
Raw Normal View History

import os
import bpy
from bpy.props import (
BoolProperty,
EnumProperty,
)
dirname, filename = os.path.split(__file__)
idname = os.path.splitext(filename)[0]
2018-11-18 20:04:24 +00:00
def update_fn(_self, _context):
load()
class Prefs(bpy.types.KeyConfigPreferences):
bl_idname = idname
select_mouse: EnumProperty(
2018-11-18 20:06:38 +00:00
name="Select Mouse",
items=(
('LEFT', "Left",
"Use left mouse button for selection. "
"The standard behavior that works well for all input devices"),
('RIGHT', "Right",
"Use right mouse button for selection."
"For efficiently working with keyboard and mouse"),
),
description=(
"Mouse button used for selection"
),
default='RIGHT',
2018-11-18 20:04:24 +00:00
update=update_fn,
)
spacebar_action: EnumProperty(
name="Spacebar",
items=(
('TOOL', "Tool-Bar",
"Open the popup tool-bar\n"
"When 'Space' is held and used as a modifier:\n"
"\u2022 Pressing the tools binding key switches to it immediately.\n"
"\u2022 Dragging the cursor over a tool and releasing activates it (like a pie menu).\n"
),
('PLAY', "Playback",
"Toggle animation playback"
),
('SEARCH', "Operator Search",
"Open the operator search popup"
),
),
description=(
"Action when 'Space' is pressed ('Shift-Space' is used for the other action)"
),
default='TOOL',
2018-11-18 20:04:24 +00:00
update=update_fn,
)
use_select_all_toggle: BoolProperty(
name="Select All Toggles",
description=(
2018-11-18 20:04:24 +00:00
"Causes select-all ('A' key) to de-select in the case a selection exists"
),
default=False,
2018-11-18 20:04:24 +00:00
update=update_fn,
)
# 3D View
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,
)
use_v3d_shade_ex_pie: BoolProperty(
name="Extra Shading Pie Menu Items",
description=(
"Show additional options in the shading menu ('Z')"
),
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.label(text="3D View:")
split = layout.split()
col = split.column()
col.prop(self, "use_v3d_tab_menu")
col = split.column()
col.prop(self, "use_v3d_shade_ex_pie")
blender_default = bpy.utils.execfile(os.path.join(dirname, "keymap_data", "blender_default.py"))
2018-11-18 20:04:24 +00:00
def load():
from bl_keymap_utils.io import keyconfig_init_from_data
kc = bpy.context.window_manager.keyconfigs.new(idname)
kc_prefs = kc.preferences
2018-11-18 20:04:24 +00:00
keyconfig_data = blender_default.generate_keymaps(
blender_default.Params(
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,
use_v3d_shade_ex_pie=kc_prefs.use_v3d_shade_ex_pie,
),
)
keyconfig_init_from_data(kc, keyconfig_data)
if __name__ == "__main__":
bpy.utils.register_class(Prefs)
2018-11-18 20:04:24 +00:00
load()