Exemplo n.º 1
0
def setup_menu(
    api: Api,
    parent: QWidget,
    root_item: MenuItem,
    context: HotkeyContext,
) -> Any:
    for action in parent.actions():
        parent.removeAction(action)

    if hasattr(parent, "aboutToShow"):
        parent.aboutToShow.connect(
            partial(_on_menu_about_to_show, api.log, parent))
        parent.aboutToHide.connect(partial(_on_menu_about_to_hide, parent))

    menu_builder = MenuBuilder(api, context)
    for node in root_item.children or []:
        menu_builder.build(parent, node)