示例#1
0
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
示例#2
0
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
示例#3
0
    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)