Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-05-29 18:25:19 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-05-29 18:52:27 +0300
commite9cd2fb23b837d351bea6c5e5aa887ddc547197b (patch)
tree9e40b0a87e6f5016ca59d6299d34738e19d810b9 /source/blender/editors/object/object_ops.c
parent929c78e33c06f55af4a3d98240959c4afcf9f39c (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.c44
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);
}