def mousePressEvent(self, event): """Handle ctrl + click to follow links. Arguments: event -- the mouse event """ if (event.button() == Qt.LeftButton and event.modifiers() == Qt.ControlModifier): cell = self.itemAt(event.pos()) if cell and isinstance(cell, DataEditCell): xOffest = (event.pos().x() - self.columnViewportPosition(cell.column())) yOffset = (event.pos().y() - self.rowViewportPosition(cell.row())) pt = QPointF(xOffest, yOffset) pos = cell.doc.documentLayout().hitTest(pt, Qt.ExactHit) if pos >= 0: cursor = QTextCursor(cell.doc) cursor.setPosition(pos) address = cursor.charFormat().anchorHref() if address: if address.startswith('#'): (self.treeView.selectionModel().selectNodeById( address[1:])) else: # check for relative path if urltools.isRelative(address): defaultPath = ( globalref.mainControl.defaultPathObj(True)) address = urltools.toAbsolute( address, str(defaultPath)) dataeditors.openExtUrl(address) event.accept() else: super().mousePressEvent(event)
def mousePressEvent(self, event): """Handle ctrl + click to follow links. Arguments: event -- the mouse event """ if (event.button() == QtCore.Qt.LeftButton and event.modifiers() == QtCore.Qt.ControlModifier): cell = self.itemAt(event.pos()) if cell and isinstance(cell, DataEditCell): xOffest = (event.pos().x() - self.columnViewportPosition(cell.column())) yOffset = (event.pos().y() - self.rowViewportPosition(cell.row())) pt = QtCore.QPointF(xOffest, yOffset) pos = cell.doc.documentLayout().hitTest(pt, QtCore.Qt.ExactHit) if pos >= 0: cursor = QtGui.QTextCursor(cell.doc) cursor.setPosition(pos) address = cursor.charFormat().anchorHref() if address: if address.startswith('#'): self.selectModel.selectNodeById(address[1:]) else: # check for relative path if urltools.isRelative(address): defaultPath = (globalref.mainControl. defaultFilePath(True)) address = urltools.toAbsolute(address, defaultPath) dataeditors.openExtUrl(address) event.accept() else: super().mousePressEvent(event)
def setSource(self, url): """Called when a user clicks on a URL link. Selects an internal link or opens an external browser. Arguments: url -- the QUrl that is clicked """ name = url.toString() if name.startswith('#'): if not self.treeView.selectionModel().selectNodeById(name[1:]): super().setSource(url) else: if urltools.isRelative(name): # check for relative path defaultPath = globalref.mainControl.defaultPathObj(True) name = urltools.toAbsolute(name, str(defaultPath)) dataeditors.openExtUrl(name)
def setSource(self, url): """Called when a user clicks on a URL link. Selects an internal link or opens an external browser. Arguments: url -- the QUrl that is clicked """ name = url.toString() if name.startswith('#'): if not self.selectModel.selectNodeById(name[1:]): super().setSource(url) else: if urltools.isRelative(name): # check for relative path defaultPath = globalref.mainControl.defaultFilePath(True) name = urltools.toAbsolute(name, defaultPath) dataeditors.openExtUrl(name)