Exemplo n.º 1
0
 def setup(self):
     logging.root.addHandler(self.handler)
     self.debug_levels_menu = QtGui.QMenu()
     self.debug_levels_action_group = QtGui.QActionGroup(self)
     for level, value in filter(lambda (key, value): type(key) == str,
                                logging._levelNames.iteritems()):
         action = QtGui.QAction(level.title(), self)
         action.setData({'name': level, 'level': value})
         action.setCheckable(True)
         self.debug_levels_action_group.addAction(action)
         self.debug_levels_menu.addAction(action)
Exemplo n.º 2
0
def extend_menu(menu, items, useSeparatorName=False):
    actions = []
    for item in items:
        if item == "-":
            action = menu.addSeparator()
            actions.append(action)
        elif isinstance(item, basestring) and item.startswith("--"):
            name = item[item.rfind("-") + 1:]
            action = menu.addSeparator()
            action.setObjectName(text2objectname(name, prefix="section"))
            if useSeparatorName:
                action.setText(name)
            actions.append(action)
        elif isinstance(item, dict) and 'items' in item:
            submenu, subactions = create_menu(menu, item)
            subaction = menu.addMenu(submenu)
            actions.append(subaction)
            actions.extend(subactions)
        elif isinstance(item, dict):
            action = create_action(menu, item)
            actions.append(action)
            menu.addAction(action)
        elif isinstance(item, QtGui.QAction):
            menu.addAction(item)
        elif isinstance(item, QtGui.QMenu):
            menu.addMenu(item)
        elif isinstance(item, list):
            actionGroup = QtGui.QActionGroup(menu)
            actions.append(actionGroup)
            actionGroup.setExclusive(False)
            map(menu.addAction, item)
            map(lambda action: action.setActionGroup(actionGroup), item)
        elif isinstance(item, tuple):
            actionGroup = QtGui.QActionGroup(menu)
            actions.append(actionGroup)
            actionGroup.setExclusive(True)
            map(menu.addAction, item)
            map(lambda action: action.setActionGroup(actionGroup), item)
        else:
            raise Exception("%s" % item)
    return actions