def initPlugins(self): if get_settings().get_plugins_enabled(): from yapsy.PluginManager import PluginManagerSingleton from lunchinator.plugin import NotificationPluginManager PluginManagerSingleton.setBehaviour([ NotificationPluginManager, ]) self.plugin_manager = PluginManagerSingleton.get() self.plugin_manager.app = self self.plugin_manager.setConfigParser(get_settings().get_config_file(), get_settings().write_config_to_hd) self.plugin_manager.setPluginPlaces(get_settings().get_plugin_dirs()) try: self.plugin_manager.collectPlugins() except: getCoreLogger().exception("problem when loading plugins") get_peer_actions().initialize() else: getCoreLogger().info("lunchinator initialised without plugins")
def _fillPeerActionsMenu(popupMenu, peerID, filterFunc, parentWidget): peerInfo = get_peers().getPeerInfo(pID=peerID) actionsDict = get_peer_actions().getPeerActions(peerID, peerInfo, filterFunc) if actionsDict: actionsList = [] # tuples (sort key, displayed name, [actions]) first = True for actionKey in actionsDict: actions = actionsDict[actionKey] if actionKey == PeerActions.STANDARD_PEER_ACTIONS_KEY: displayedName = "General" sortKey = u"" else: displayedName = actions[0].getPluginObject().get_displayed_name() if not displayedName: displayedName = actionKey sortKey = displayedName actionsList.append((sortKey, displayedName, actions)) actionsList = sorted(actionsList, key=lambda tup:tup[0].lower()) for _, displayedName, actions in actionsList: if not first: popupMenu.addSeparator() else: first = False header = popupMenu.addAction(displayedName) header.setEnabled(False) for action in actions: icon = action.getIcon() if icon is not None: popupMenu.addAction(icon, action.getDisplayedName(peerID), partial(action.performAction, peerID, peerInfo, parentWidget)) else: popupMenu.addAction(action.getDisplayedName(peerID), partial(action.performAction, peerID, peerInfo, parentWidget)) return popupMenu