def __init__(self, action, parent=None): QtWidgets.QAction.__init__(self, parent) self.setMenu(MimeMenu(action)) self.mime = get_mime_type(action.path()) self.setIcon(G.icon_provider.icon(action.data())) self.setText(str(self.mime))
def populate(self): self.clear() for entry in opens_with(get_mime_type(self.actions[0].path())): name, icon = entry_visuals(entry) act = QtWidgets.QAction(name, self) if icon and not icon.isNull(): act.setIcon(icon) act.triggered.connect(lambda dummy, path=entry.filename, acts=self.actions: self.open_it(path, self.actions)) self.addAction(act)
def prepare(self): self.clear() sibs = self.action.parent().children() self.actions = [] for act in sibs: if act.data(): if self.menuAction().mime == get_mime_type(act.path()): self.actions.append(act) self.open_action = QtWidgets.QAction("Open With", self) self.open_action.setMenu(OpenMenu(self.actions)) self.addAction(self.open_action) self.addActions(self.actions)