Keymap: add user-prefs to the default keyconfig

Currently the only option is to use select-all as a toggle.
This commit is contained in:
Campbell Barton 2018-11-18 12:41:05 +11:00
parent 50a4a899fd
commit c57951d903
1 changed files with 43 additions and 10 deletions

View File

@ -1,22 +1,55 @@
import os
import bpy
from bpy.props import (
BoolProperty,
)
userpref = bpy.context.user_preferences
idname = os.path.splitext(os.path.basename(__file__))[0]
def update(_self, _context):
_load()
class Prefs(bpy.types.KeyConfigPreferences):
bl_idname = idname
use_select_all_toggle: BoolProperty(
name="Select All Toggles",
description=(
"Causes select-all (A-key) to de-select in the case a selection exists"
),
default=False,
update=update,
)
def draw(self, layout):
row = layout.row()
row.prop(self, "use_select_all_toggle")
from bpy_extras.keyconfig_utils import (
keyconfig_import_from_data,
keyconfig_init_from_data,
keyconfig_module_from_preset,
)
_mod = keyconfig_module_from_preset(os.path.join("keymap_data", "blender_default"), __file__)
keyconfig_data = _mod.generate_keymaps(
_mod.KeymapParams(
select_mouse=userpref.inputs.select_mouse,
),
)
mod = keyconfig_module_from_preset(os.path.join("keymap_data", "blender_default"), __file__)
def _load():
kc = bpy.context.window_manager.keyconfigs.new(idname)
kc_prefs = kc.preferences
keyconfig_data = mod.generate_keymaps(
mod.KeymapParams(
select_mouse=userpref.inputs.select_mouse,
use_select_all_toggle=kc_prefs.use_select_all_toggle,
),
)
keyconfig_init_from_data(kc, keyconfig_data)
kc.has_select_mouse = True # Support switching select mouse
idname = os.path.splitext(os.path.basename(__file__))[0]
if __name__ == "__main__":
kc = keyconfig_import_from_data(idname, keyconfig_data)
kc.has_select_mouse = True # Support switching select mouse
bpy.utils.register_class(Prefs)
_load()