[Bf-blender-cvs] [768a1528833] blender2.8: UI: proof of concept keymap for the popup toolbar

Campbell Barton noreply at git.blender.org
Sun May 20 22:39:52 CEST 2018


Commit: 768a1528833e014606e71ee18a2a34f412662886
Author: Campbell Barton
Date:   Sun May 20 22:37:35 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB768a1528833e014606e71ee18a2a34f412662886

UI: proof of concept keymap for the popup toolbar

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

M	release/scripts/startup/bl_operators/wm.py

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

diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index c4b04e63e3f..9320145369c 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -2360,6 +2360,8 @@ class WM_OT_toolbar(Operator):
     bl_idname = "wm.toolbar"
     bl_label = "Toolbar"
 
+    keymap = None
+
     def execute(self, context):
         space_type = context.space_data.type
         from bl_ui.space_toolsystem_common import ToolSelectPanelHelper
@@ -2368,12 +2370,30 @@ class WM_OT_toolbar(Operator):
             self.report({'WARNING'}, f"Toolbar not found for {space_type!r}")
             return {'CANCELLED'}
 
+        wm = context.window_manager
+
+        if WM_OT_toolbar.keymap is None:
+            keyconf = wm.keyconfigs.active
+            km = keyconf.keymaps.new("Toolbar Popup", space_type='EMPTY', region_type='TEMPORARY')
+            WM_OT_toolbar.keymap = km
+
+            # Example
+            for key, value in (
+                    ('G', "Move"),
+                    ('R', "Rotate"),
+                    ('S', "Scale"),
+                    ('C', "Select Circle"),
+                    ('B', "Select Border"),
+            ):
+                kmi = km.keymap_items.new("wm.tool_set_by_name", key, 'PRESS')
+                kmi.properties.name = value
+
         def draw_menu(popover, context):
-            cls.draw_cls(popover.layout, context, detect_layout=False)
+            layout = popover.layout
+            cls.draw_cls(layout, context, detect_layout=False)
 
-        wm = context.window_manager
         # wm.popup_menu(draw_menu) # this also works
-        wm.popover(draw_menu)
+        wm.popover(draw_menu, keymap=WM_OT_toolbar.keymap)
         return {'FINISHED'}



More information about the Bf-blender-cvs mailing list