def get_menu_items(menu: QW.QWidget, parent_name: str) -> list: result = [] for action in menu.actions(): actionText = action.text().replace("&", "") if action.menu(): new_parent_name = parent_name + " | " + actionText if parent_name else actionText result.extend( get_menu_items(action.menu(), new_parent_name)) else: if not query in action.text() and not query in actionText: continue primary_text = highlight_result_text(actionText, query) secondary_text = escape(parent_name) result.append( QLocatorSearchResult(self.result_id_counter, 'images.png', 'images.png', True, [primary_text, secondary_text])) self.result_ids_to_actions[self.result_id_counter] = action self.result_id_counter += 1 return result
def get_menu_items(menu: QW.QWidget, parent_name: str) -> list: result = [] for action in menu.actions(): actionText = action.text().replace("&", "") if action.menu(): new_parent_name = parent_name + " | " + actionText if parent_name else actionText result.extend( get_menu_items(action.menu(), new_parent_name)) else: if not query in action.text() and not query in actionText: continue primary_text = highlight_result_text(actionText, query) secondary_text = escape(parent_name) normal_png = 'lightning.png' toggled = False toggled_png = 'lightning.png' if action.isCheckable(): toggled = action.isChecked() normal_png = 'lightning_unchecked.png' toggled_png = 'lightning_checked.png' result.append( QLocatorSearchResult(self.result_id_counter, normal_png, normal_png, True, [primary_text, secondary_text], toggled, toggled_png, toggled_png)) self.result_ids_to_actions[self.result_id_counter] = action self.result_id_counter += 1 return result