def create_action_for_item(self, item): """ Create a QAction instance for the widget description item. """ name = item.text() tooltip = item.toolTip() whatsThis = item.whatsThis() icon = item.icon() if icon: action = QAction(icon, name, self, toolTip=tooltip, whatsThis=whatsThis, statusTip=name) else: action = QAction(name, self, toolTip=tooltip, whatsThis=whatsThis, statusTip=name) widget_desc = item.data(self.WIDGET_DESC_ROLE) action.setData(widget_desc) action.setProperty("item", item) return action
def test_extra_actions(self): model, widgets = create_workflow() wm = model.widget_manager # set debug level - implicit 'Show properties' action log = logging.getLogger("orangewidget.workflow.widgetsscheme") level = log.level try: log.setLevel(logging.DEBUG) actions = wm.actions_for_context_menu(widgets.w1_node) finally: log.setLevel(level) self.assertTrue(any(a.objectName() == "show-settings" for a in actions)) a = QAction("A", widgets.w1, objectName="-extra-action") a.setProperty("ext-workflow-node-menu-action", True) widgets.w1.addAction(a) actions = wm.actions_for_context_menu(widgets.w1_node) self.assertIn(a, actions)