[Bf-blender-cvs] [93b36fad684] master: Knife: Expose XYZ axis locking in modal keymap

Cian Jinks noreply at git.blender.org
Sun Sep 26 23:21:11 CEST 2021


Commit: 93b36fad684f62119a7a27c5ba37902643574ae5
Author: Cian Jinks
Date:   Sun Sep 26 22:18:24 2021 +0100
Branches: master
https://developer.blender.org/rB93b36fad684f62119a7a27c5ba37902643574ae5

Knife: Expose XYZ axis locking in modal keymap

A small quality of life improvement that will allow users to change the keys used for axis locking.

===================================================================

M	release/scripts/presets/keyconfig/keymap_data/blender_default.py
M	release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
M	source/blender/editors/mesh/editmesh_knife.c

===================================================================

diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index ada8824519e..56ff776ea48 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -5669,6 +5669,9 @@ def km_knife_tool_modal_map(_params):
         ("IGNORE_SNAP_OFF", {"type": 'LEFT_CTRL', "value": 'RELEASE', "any": True}, None),
         ("IGNORE_SNAP_ON", {"type": 'RIGHT_CTRL', "value": 'PRESS', "any": True}, None),
         ("IGNORE_SNAP_OFF", {"type": 'RIGHT_CTRL', "value": 'RELEASE', "any": True}, None),
+        ("X_AXIS", {"type": 'X', "value": 'PRESS'}, None),
+        ("Y_AXIS", {"type": 'Y', "value": 'PRESS'}, None),
+        ("Z_AXIS", {"type": 'Z', "value": 'PRESS'}, None),
         ("ANGLE_SNAP_TOGGLE", {"type": 'A', "value": 'PRESS'}, None),
         ("CYCLE_ANGLE_SNAP_EDGE", {"type": 'R', "value": 'PRESS'}, None),
         ("CUT_THROUGH_TOGGLE", {"type": 'C', "value": 'PRESS'}, None),
diff --git a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
index 6a24f072ed0..886abae3602 100644
--- a/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
+++ b/release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
@@ -3876,6 +3876,9 @@ def km_knife_tool_modal_map(_params):
         ("IGNORE_SNAP_OFF", {"type": 'LEFT_SHIFT', "value": 'RELEASE', "any": True}, None),
         ("IGNORE_SNAP_ON", {"type": 'RIGHT_SHIFT', "value": 'PRESS', "any": True}, None),
         ("IGNORE_SNAP_OFF", {"type": 'RIGHT_SHIFT', "value": 'RELEASE', "any": True}, None),
+        ("X_AXIS", {"type": 'X', "value": 'PRESS'}, None),
+        ("Y_AXIS", {"type": 'Y', "value": 'PRESS'}, None),
+        ("Z_AXIS", {"type": 'Z', "value": 'PRESS'}, None),
         ("ANGLE_SNAP_TOGGLE", {"type": 'A', "value": 'PRESS'}, None),
         ("CYCLE_ANGLE_SNAP_EDGE", {"type": 'R', "value": 'PRESS'}, None),
         ("CUT_THROUGH_TOGGLE", {"type": 'C', "value": 'PRESS'}, None),
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index e76a9641811..13519fad89d 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -333,6 +333,9 @@ enum {
   KNF_MODAL_SHOW_DISTANCE_ANGLE_TOGGLE,
   KNF_MODAL_DEPTH_TEST_TOGGLE,
   KNF_MODAL_PANNING,
+  KNF_MODAL_X_AXIS,
+  KNF_MODAL_Y_AXIS,
+  KNF_MODAL_Z_AXIS,
   KNF_MODAL_ADD_CUT_CLOSED,
 };
 
@@ -1112,7 +1115,7 @@ static void knife_update_header(bContext *C, wmOperator *op, KnifeTool_OpData *k
            "%s: start/define cut, %s: close cut, %s: new cut, "
            "%s: midpoint snap (%s), %s: ignore snap (%s), "
            "%s: angle constraint %.2f(%.2f) (%s%s%s%s), %s: cut through (%s), "
-           "%s: panning, XYZ: orientation lock (%s), "
+           "%s: panning, %s%s%s: orientation lock (%s), "
            "%s: distance/angle measurements (%s), "
            "%s: x-ray (%s)"),
       WM_MODALKEY(KNF_MODAL_CONFIRM),
@@ -1144,6 +1147,9 @@ static void knife_update_header(bContext *C, wmOperator *op, KnifeTool_OpData *k
       WM_MODALKEY(KNF_MODAL_CUT_THROUGH_TOGGLE),
       WM_bool_as_string(kcd->cut_through),
       WM_MODALKEY(KNF_MODAL_PANNING),
+      WM_MODALKEY(KNF_MODAL_X_AXIS),
+      WM_MODALKEY(KNF_MODAL_Y_AXIS),
+      WM_MODALKEY(KNF_MODAL_Z_AXIS),
       (kcd->axis_constrained ? kcd->axis_string : WM_bool_as_string(kcd->axis_constrained)),
       WM_MODALKEY(KNF_MODAL_SHOW_DISTANCE_ANGLE_TOGGLE),
       WM_bool_as_string(kcd->show_dist_angle),
@@ -4307,6 +4313,9 @@ wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf)
       {KNF_MODAL_ADD_CUT, "ADD_CUT", 0, "Add Cut", ""},
       {KNF_MODAL_ADD_CUT_CLOSED, "ADD_CUT_CLOSED", 0, "Add Cut Closed", ""},
       {KNF_MODAL_PANNING, "PANNING", 0, "Panning", ""},
+      {KNF_MODAL_X_AXIS, "X_AXIS", 0, "X Axis Locking", ""},
+      {KNF_MODAL_Y_AXIS, "Y_AXIS", 0, "Y Axis Locking", ""},
+      {KNF_MODAL_Z_AXIS, "Z_AXIS", 0, "Z Axis Locking", ""},
       {0, NULL, 0, NULL, NULL},
   };
 
@@ -4630,18 +4639,18 @@ static int knifetool_modal(bContext *C, wmOperator *op, const wmEvent *event)
   }
 
   /* Constrain axes with X,Y,Z keys. */
-  if (event->val == KM_PRESS && ELEM(event->type, EVT_XKEY, EVT_YKEY, EVT_ZKEY)) {
-    if (event->type == EVT_XKEY && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_X) {
+  if (ELEM(event->val, KNF_MODAL_X_AXIS, KNF_MODAL_Y_AXIS, KNF_MODAL_Z_AXIS)) {
+    if (event->val == KNF_MODAL_X_AXIS && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_X) {
       kcd->constrain_axis = KNF_CONSTRAIN_AXIS_X;
       kcd->constrain_axis_mode = KNF_CONSTRAIN_AXIS_MODE_GLOBAL;
       kcd->axis_string[0] = 'X';
     }
-    else if (event->type == EVT_YKEY && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Y) {
+    else if (event->val == KNF_MODAL_Y_AXIS && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Y) {
       kcd->constrain_axis = KNF_CONSTRAIN_AXIS_Y;
       kcd->constrain_axis_mode = KNF_CONSTRAIN_AXIS_MODE_GLOBAL;
       kcd->axis_string[0] = 'Y';
     }
-    else if (event->type == EVT_ZKEY && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Z) {
+    else if (event->val == KNF_MODAL_Z_AXIS && kcd->constrain_axis != KNF_CONSTRAIN_AXIS_Z) {
       kcd->constrain_axis = KNF_CONSTRAIN_AXIS_Z;
       kcd->constrain_axis_mode = KNF_CONSTRAIN_AXIS_MODE_GLOBAL;
       kcd->axis_string[0] = 'Z';



More information about the Bf-blender-cvs mailing list