diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-05-29 18:25:19 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-05-29 18:52:27 +0300 |
commit | e9cd2fb23b837d351bea6c5e5aa887ddc547197b (patch) | |
tree | 9e40b0a87e6f5016ca59d6299d34738e19d810b9 /source/blender/editors/object/object_ops.c | |
parent | 929c78e33c06f55af4a3d98240959c4afcf9f39c (diff) |
Keymap: partially implement changes from T55162
- Use Tab key for search.
- Number keys switch modes.
- The number of the current mode can open a submode menu
(currently only works for edit-mode)
- Ctrl-Tab, Ctrl-Shift-Tab - cycle workspaces.
Diffstat (limited to 'source/blender/editors/object/object_ops.c')
-rw-r--r-- | source/blender/editors/object/object_ops.c | 44 |
1 files changed, 23 insertions, 21 deletions
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c index c47d741f818..d40db22d5cf 100644 --- a/source/blender/editors/object/object_ops.c +++ b/source/blender/editors/object/object_ops.c @@ -67,6 +67,7 @@ void ED_operatortypes_object(void) WM_operatortype_append(OBJECT_OT_origin_set); WM_operatortype_append(OBJECT_OT_mode_set); + WM_operatortype_append(OBJECT_OT_mode_set_or_submode); WM_operatortype_append(OBJECT_OT_editmode_toggle); WM_operatortype_append(OBJECT_OT_posemode_toggle); WM_operatortype_append(OBJECT_OT_proxy_make); @@ -283,28 +284,29 @@ void ED_keymap_object(wmKeyConfig *keyconf) { wmKeyMap *keymap; wmKeyMapItem *kmi; - int i; - + /* Objects, Regardless of Mode -------------------------------------------------- */ keymap = WM_keymap_find(keyconf, "Object Non-modal", 0, 0); - - /* Note: this keymap works disregarding mode */ - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT); - RNA_boolean_set(kmi->ptr, "toggle", true); - - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_POSE); - RNA_boolean_set(kmi->ptr, "toggle", true); - - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", VKEY, KM_PRESS, 0, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_VERTEX_PAINT); - RNA_boolean_set(kmi->ptr, "toggle", true); - - kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, KM_CTRL, 0); - RNA_enum_set(kmi->ptr, "mode", OB_MODE_WEIGHT_PAINT); - RNA_boolean_set(kmi->ptr, "toggle", true); - + + /* modes */ + { + short key_mode_pair[][2] = { + {ACCENTGRAVEKEY, OB_MODE_OBJECT}, + {ONEKEY, OB_MODE_OBJECT}, + {TWOKEY, OB_MODE_EDIT}, + {THREEKEY, OB_MODE_SCULPT}, + {FOURKEY, OB_MODE_TEXTURE_PAINT}, /* or OB_MODE_POSE */ + {FIVEKEY, OB_MODE_VERTEX_PAINT}, + {SIXKEY, OB_MODE_WEIGHT_PAINT}, + {SEVENKEY, OB_MODE_PARTICLE_EDIT}, + }; + + for (uint i = 0; i < ARRAY_SIZE(key_mode_pair); i++) { + kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set_or_submode", key_mode_pair[i][0], KM_PRESS, 0, 0); + RNA_enum_set(kmi->ptr, "mode", key_mode_pair[i][1]); + } + } + WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0); /* Object Mode ---------------------------------------------------------------- */ @@ -407,7 +409,7 @@ void ED_keymap_object(wmKeyConfig *keyconf) /* XXX No more available 'T' shortcuts... :/ */ /* WM_keymap_verify_item(keymap, "OBJECT_OT_datalayout_transfer", TKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); */ - for (i = 0; i <= 5; i++) { + for (int i = 0; i <= 5; i++) { kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0); RNA_int_set(kmi->ptr, "level", i); } |