[Bf-blender-cvs] [901fa96b7f5] master: Keymap: New preference to open folders on single click in file browser

Pablo Vazquez noreply at git.blender.org
Wed Sep 29 15:57:59 CEST 2021


Commit: 901fa96b7f595fb1d77075aaa68b2e14f57a8e31
Author: Pablo Vazquez
Date:   Tue Sep 28 15:13:23 2021 +0200
Branches: master
https://developer.blender.org/rB901fa96b7f595fb1d77075aaa68b2e14f57a8e31

Keymap: New preference to open folders on single click in file browser

Introduce a new keymap preference to navigate into folders by clicking on them once instead of twice.
Makes browsing folders faster albeit non-standard, so keeping this off by default for now.

Does not affect Industry Compatible or other keymaps.

It is still the possible to right-click to open context menu, hold Ctrl or Shift to select multiple items:

{F10651030, size=full}

----

Keymap preference:

{F10652759, size=full}

Part of T91537

Reviewed By: fsiddi, campbellbarton

Differential Revision: https://developer.blender.org/D12667

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

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

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

diff --git a/release/scripts/presets/keyconfig/Blender.py b/release/scripts/presets/keyconfig/Blender.py
index b165eaddcf5..1852e150589 100644
--- a/release/scripts/presets/keyconfig/Blender.py
+++ b/release/scripts/presets/keyconfig/Blender.py
@@ -217,6 +217,15 @@ class Prefs(bpy.types.KeyConfigPreferences):
         update=update_fn,
     )
 
+    use_file_single_click: BoolProperty(
+        name="Open Folders on Single Click",
+        description=(
+            "Navigate into folders by clicking on them once instead of twice"
+        ),
+        default=False,
+        update=update_fn,
+    )
+
     def draw(self, layout):
         from bpy import context
 
@@ -273,6 +282,10 @@ class Prefs(bpy.types.KeyConfigPreferences):
         sub.prop(self, "use_pie_click_drag")
         sub.prop(self, "use_v3d_shade_ex_pie")
 
+        # File Browser settings.
+        col = layout.column()
+        col.label(text="File Browser")
+        col.row().prop(self, "use_file_single_click")
 
 blender_default = bpy.utils.execfile(os.path.join(DIRNAME, "keymap_data", "blender_default.py"))
 
@@ -312,6 +325,7 @@ def load():
             ),
             use_alt_click_leader=kc_prefs.use_alt_click_leader,
             use_pie_click_drag=kc_prefs.use_pie_click_drag,
+            use_file_single_click=kc_prefs.use_file_single_click,
         ),
     )
 
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index 41b5d6f7998..35eb6490265 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -66,6 +66,7 @@ class Params:
         # Alt-MMB axis switching 'RELATIVE' or 'ABSOLUTE' axis switching.
         "v3d_alt_mmb_drag_action",
 
+        "use_file_single_click",
         # Convenience variables:
         # (derived from other settings).
         #
@@ -106,6 +107,7 @@ class Params:
             use_alt_tool_or_cursor=False,
             use_alt_click_leader=False,
             use_pie_click_drag=False,
+            use_file_single_click=False,
             v3d_tilde_action='VIEW',
             v3d_alt_mmb_drag_action='RELATIVE',
     ):
@@ -190,6 +192,8 @@ class Params:
         self.use_alt_click_leader = use_alt_click_leader
         self.use_pie_click_drag = use_pie_click_drag
 
+        self.use_file_single_click = use_file_single_click
+
         # Convenience variables:
         self.use_fallback_tool_rmb = self.use_fallback_tool if self.select_mouse == 'RIGHT' else False
         self.select_mouse_value_fallback = 'CLICK' if self.use_fallback_tool_rmb else self.select_mouse_value
@@ -2151,16 +2155,20 @@ def km_file_browser_main(params):
         {"items": items},
     )
 
+    if not params.use_file_single_click:
+        items.extend([
+            ("file.select", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'},
+            {"properties": [("open", True), ("deselect_all", not params.legacy)]}),
+        ])
+
     items.extend([
         ("file.mouse_execute", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
         # Both .execute and .select are needed here. The former only works if
         # there's a file operator (i.e. not in regular editor mode) but is
         # needed to load files. The latter makes selection work if there's no
         # operator (i.e. in regular editor mode).
-        ("file.select", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'},
-         {"properties": [("open", True), ("deselect_all", not params.legacy)]}),
         ("file.select", {"type": 'LEFTMOUSE', "value": 'PRESS'},
-         {"properties": [("open", False), ("deselect_all", not params.legacy)]}),
+         {"properties": [("open", params.use_file_single_click), ("deselect_all", not params.legacy)]}),
         ("file.select", {"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True},
          {"properties": [("extend", True), ("open", False)]}),
         ("file.select", {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True},



More information about the Bf-blender-cvs mailing list