UI: add search to popup toolbar
Add for convenience only.
This commit is contained in:
parent
be8855a2ef
commit
cf9f0b35be
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue