UI: add search to popup toolbar
Add for convenience only.
This commit is contained in:
		@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user