def links(document): try: return _cache[document] except KeyError: l = _cache[document] = Links() with l: import popplerqt4 with qpopplerview.lock(document): for num in range(document.numPages()): page = document.page(num) for link in page.links(): if isinstance(link, popplerqt4.Poppler.LinkBrowse): t = textedit.link(link.url()) if t: l.add_link(t.filename, t.line, t.column, (num, link.linkArea())) return l
def links(document): try: return _cache[document] except KeyError: l = _cache[document] = Links() with l: import popplerqt4 with qpopplerview.lock(document): for num in range(document.numPages()): page = document.page(num) for link in page.links(): if isinstance(link, popplerqt4.Poppler.LinkBrowse): t = textedit.link(link.url()) if t: filename = util.normpath(t.filename) l.add_link(filename, t.line, t.column, (num, link.linkArea())) return l
def __init__(self, document): self._links = {} self._docs = {} import popplerqt4 with qpopplerview.lock(document): for num in range(document.numPages()): page = document.page(num) for link in page.links(): if isinstance(link, popplerqt4.Poppler.LinkBrowse): m = textedit_match(link.url()) if m: filename, line, col = readurl(m) l = self._links.setdefault(filename, {}) l.setdefault((line, col), []).append((num, link.linkArea())) for filename in self._links: for d in app.documents: s = scratchdir.scratchdir(d) if (s.directory() and util.equal_paths(filename, s.path()) or d.url().toLocalFile() == filename): self.bind(filename, d) app.documentLoaded.connect(self.slotDocumentLoaded) app.documentClosed.connect(self.slotDocumentClosed)