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-07-09 18:36:25 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-07-09 18:37:15 +0300
commitcf9f0b35be1b489c03f015b5ee78d0042fa4c9fb (patch)
tree25c156f62c7f9f269686df1fbc4a751b5fb4c999 /release/scripts
parentbe8855a2ef03c918cd8a7bd13dc315a37d5bfc80 (diff)
UI: add search to popup toolbar
Add for convenience only.
Diffstat (limited to 'release/scripts')
-rw-r--r--release/scripts/startup/bl_operators/wm.py4
-rw-r--r--release/scripts/startup/bl_ui/space_toolsystem_common.py17
2 files changed, 21 insertions, 0 deletions
diff --git a/release/scripts/startup/bl_operators/wm.py b/release/scripts/startup/bl_operators/wm.py
index 30a90fb11d4..a01298f5696 100644
--- a/release/scripts/startup/bl_operators/wm.py
+++ b/release/scripts/startup/bl_operators/wm.py
@@ -2398,6 +2398,10 @@ class WM_OT_toolbar(Operator):
def draw_menu(popover, context):
layout = popover.layout
+
+ layout.operator_context = 'INVOKE_DEFAULT'
+ layout.operator("wm.search_menu", text="Search Commands...", icon='VIEWZOOM')
+
cls.draw_cls(layout, context, detect_layout=False, scale_y=1.0)
wm.popover(draw_menu, ui_units_x=8, keymap=keymap)
diff --git a/release/scripts/startup/bl_ui/space_toolsystem_common.py b/release/scripts/startup/bl_ui/space_toolsystem_common.py
index 2d7afb7a56a..7fe8360b4da 100644
--- a/release/scripts/startup/bl_ui/space_toolsystem_common.py
+++ b/release/scripts/startup/bl_ui/space_toolsystem_common.py
@@ -624,7 +624,10 @@ def keymap_from_context(context, space_type):
"""
Keymap for popup toolbar, currently generated each time.
"""
+
+ use_search = False # allows double tap
use_simple_keymap = False
+
km_name = "Toolbar Popup"
wm = context.window_manager
keyconf = wm.keyconfigs.active
@@ -634,6 +637,10 @@ def keymap_from_context(context, space_type):
for kmi in keymap.keymap_items:
keymap.keymap_items.remove(kmi)
+ if use_search:
+ kmi_search = wm.keyconfigs.find_item_from_operator(idname="wm.toolbar")[1]
+ kmi_search_type = None if not kmi_search else kmi_search.type
+
items = []
cls = ToolSelectPanelHelper._tool_class_from_space_type(space_type)
for i, item in enumerate(
@@ -679,6 +686,16 @@ def keymap_from_context(context, space_type):
)
kmi.properties.name = item.text
+ if use_search:
+ # Disallow overlap
+ if kmi_search_type == kmi_found_type:
+ kmi_search_type = None
+
+ if use_search:
+ # Support double-tap for search.
+ if kmi_search_type:
+ keymap.keymap_items.new("wm.search_menu", type=kmi_search_type, value='PRESS')
+
wm.keyconfigs.update()
return keymap