[Bf-blender-cvs] [599d96e8f96] master: UI: keymap preference tweaks

Campbell Barton noreply at git.blender.org
Fri Sep 24 03:08:16 CEST 2021


Commit: 599d96e8f96f2fd40c51c9949091559b5f162869
Author: Campbell Barton
Date:   Fri Sep 24 10:53:28 2021 +1000
Branches: master
https://developer.blender.org/rB599d96e8f96f2fd40c51c9949091559b5f162869

UI: keymap preference tweaks

- Expose option to use shortcuts to activate tools as an enum.
- "Emulate 3 Button Mouse" now disables preferences
  that depend on Alt-LMB.

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

M	release/scripts/presets/keyconfig/Blender.py

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

diff --git a/release/scripts/presets/keyconfig/Blender.py b/release/scripts/presets/keyconfig/Blender.py
index eb395dbc3b4..b165eaddcf5 100644
--- a/release/scripts/presets/keyconfig/Blender.py
+++ b/release/scripts/presets/keyconfig/Blender.py
@@ -8,6 +8,7 @@ from bpy.props import (
 DIRNAME, FILENAME = os.path.split(__file__)
 IDNAME = os.path.splitext(FILENAME)[0]
 
+
 def update_fn(_self, _context):
     load()
 
@@ -54,12 +55,18 @@ class Prefs(bpy.types.KeyConfigPreferences):
         default='PLAY',
         update=update_fn,
     )
-    use_key_activate_tools: BoolProperty(
-        name="Keys Activate Tools",
+    tool_key_mode: EnumProperty(
+        name="Tool Keys:",
         description=(
-            "Key shortcuts such as G, R, and S activate the tool instead of running it immediately"
+            "The method of keys to activate tools such as move, rotate & scale (G, R, S)"
         ),
-        default=False,
+        items=(
+            ('IMMEDIATE', "Immediate",
+             "Activate actions immediately"),
+            ('TOOL', "Active Tool",
+             "Activate the tool for editors that support tools"),
+        ),
+        default='IMMEDIATE',
         update=update_fn,
     )
 
@@ -90,7 +97,8 @@ class Prefs(bpy.types.KeyConfigPreferences):
     use_alt_tool: BoolProperty(
         name="Alt Tool Access",
         description=(
-            "Hold Alt to use the active tool when the gizmo would normally be required"
+            "Hold Alt to use the active tool when the gizmo would normally be required\n"
+            "Incompatible with the input preference \"Emulate 3 Button Mouse\" when the \"Alt\" key is used"
         ),
         default=False,
         update=update_fn,
@@ -98,7 +106,8 @@ class Prefs(bpy.types.KeyConfigPreferences):
     use_alt_cursor: BoolProperty(
         name="Alt Cursor Access",
         description=(
-            "Hold Alt-LMB to place the Cursor (instead of LMB), allows tools to activate on press instead of drag"
+            "Hold Alt-LMB to place the Cursor (instead of LMB), allows tools to activate on press instead of drag.\n"
+            "Incompatible with the input preference \"Emulate 3 Button Mouse\" when the \"Alt\" key is used"
         ),
         default=False,
         update=update_fn,
@@ -209,40 +218,53 @@ class Prefs(bpy.types.KeyConfigPreferences):
     )
 
     def draw(self, layout):
+        from bpy import context
+
         layout.use_property_split = True
         layout.use_property_decorate = False
 
+        prefs = context.preferences
+
         is_select_left = (self.select_mouse == 'LEFT')
+        use_mouse_emulate_3_button = (
+            prefs.inputs.use_mouse_emulate_3_button and
+            prefs.inputs.mouse_emulate_3_button_modifier == 'ALT'
+        )
 
         # General settings.
         col = layout.column()
-        col.row().prop(self, "select_mouse", text="Select with Mouse Button", expand=True)
-        col.row().prop(self, "spacebar_action", text="Spacebar Action", expand=True)
+        col.row().prop(self, "select_mouse", text="Select with Mouse Button:", expand=True)
+        col.row().prop(self, "spacebar_action", text="Spacebar Action:", expand=True)
 
         if is_select_left:
-            col.row().prop(self, "gizmo_action", text="Activate Gizmo Event", expand=True)
+            col.row().prop(self, "gizmo_action", text="Activate Gizmo Event:", expand=True)
         else:
-            col.row().prop(self, "rmb_action", text="Right Mouse Select Action", expand=True)
+            col.row().prop(self, "rmb_action", text="Right Mouse Select Action:", expand=True)
 
-        # Checkboxes sub-layout.
+        col.row().prop(self, "tool_key_mode", expand=True)
+
+        # Check-box sub-layout.
         col = layout.column()
         sub = col.column(align=True)
         row = sub.row()
         row.prop(self, "use_alt_click_leader")
+
+        rowsub = row.row()
         if is_select_left:
-            row.prop(self, "use_alt_tool")
+            rowsub.prop(self, "use_alt_tool")
         else:
-            row.prop(self, "use_alt_cursor")
+            rowsub.prop(self, "use_alt_cursor")
+        rowsub.active = not use_mouse_emulate_3_button
+
         row = sub.row()
         row.prop(self, "use_select_all_toggle")
-        row.prop(self, "use_key_activate_tools", text="Key Activates Tools")
 
         # 3DView settings.
         col = layout.column()
         col.label(text="3D View")
-        col.row().prop(self, "v3d_tilde_action", text="Grave Accent / Tilde Action", expand=True)
-        col.row().prop(self, "v3d_mmb_action", text="Middle Mouse Action", expand=True)
-        col.row().prop(self, "v3d_alt_mmb_drag_action", text="Alt Middle Mouse Drag Action", expand=True)
+        col.row().prop(self, "v3d_tilde_action", text="Grave Accent / Tilde Action:", expand=True)
+        col.row().prop(self, "v3d_mmb_action", text="Middle Mouse Action:", expand=True)
+        col.row().prop(self, "v3d_alt_mmb_drag_action", text="Alt Middle Mouse Drag Action:", expand=True)
 
         # Checkboxes sub-layout.
         col = layout.column()
@@ -265,16 +287,17 @@ def load():
     kc_prefs = kc.preferences
 
     is_select_left = (kc_prefs.select_mouse == 'LEFT')
+    use_mouse_emulate_3_button = (
+        prefs.inputs.use_mouse_emulate_3_button and
+        prefs.inputs.mouse_emulate_3_button_modifier == 'ALT'
+    )
 
     keyconfig_data = blender_default.generate_keymaps(
         blender_default.Params(
             select_mouse=kc_prefs.select_mouse,
-            use_mouse_emulate_3_button=(
-                prefs.inputs.use_mouse_emulate_3_button and
-                prefs.inputs.mouse_emulate_3_button_modifier == 'ALT'
-            ),
+            use_mouse_emulate_3_button=use_mouse_emulate_3_button,
             spacebar_action=kc_prefs.spacebar_action,
-            use_key_activate_tools=kc_prefs.use_key_activate_tools,
+            use_key_activate_tools=(kc_prefs.tool_key_mode == 'TOOL'),
             v3d_tilde_action=kc_prefs.v3d_tilde_action,
             use_v3d_mmb_pan=(kc_prefs.v3d_mmb_action == 'PAN'),
             v3d_alt_mmb_drag_action=kc_prefs.v3d_alt_mmb_drag_action,
@@ -283,7 +306,10 @@ def load():
             use_v3d_shade_ex_pie=kc_prefs.use_v3d_shade_ex_pie,
             use_gizmo_drag=(is_select_left and kc_prefs.gizmo_action == 'DRAG'),
             use_fallback_tool=(True if is_select_left else (kc_prefs.rmb_action == 'FALLBACK_TOOL')),
-            use_alt_tool_or_cursor=kc_prefs.use_alt_tool if is_select_left else kc_prefs.use_alt_cursor,
+            use_alt_tool_or_cursor=(
+                (not use_mouse_emulate_3_button) and
+                (kc_prefs.use_alt_tool if is_select_left else kc_prefs.use_alt_cursor)
+            ),
             use_alt_click_leader=kc_prefs.use_alt_click_leader,
             use_pie_click_drag=kc_prefs.use_pie_click_drag,
         ),



More information about the Bf-blender-cvs mailing list