def keyPressEvent(self,event): if self.hasError: self.clearErrorHightlight() lcursor = self.textCursor() bbn = lcursor.blockNumber() if lcursor.selectionStart() == lcursor.selectionEnd() and (event.key() == Qt.Key_Delete or event.key() == Qt.Key_Backspace): if event.key() == Qt.Key_Backspace: lcursor.movePosition(QTextCursor.PreviousCharacter,QTextCursor.KeepAnchor) else: lcursor.movePosition(QTextCursor.NextCharacter,QTextCursor.KeepAnchor) if event.key() == Qt.Key_Tab and lcursor.hasSelection(): if event.modifiers() == Qt.NoModifier: self.tab() else: self.untab() else: seltxt = lcursor.selection().toPlainText() sbn = seltxt.count('\n') rev = self.document().revision() QTextEdit.keyPressEvent(self,event) if event.key() == Qt.Key_Return or event.key() == Qt.Key_Enter: self.returnEvent() sbn -=1 elif event.key() == Qt.Key_Tab : self.tabEvent() if rev != self.document().revision(): self.sidebar.decalMarkers(bbn+sbn,-sbn)
def __init__(self,parent): QTextEdit.__init__(self,parent) self.editor = None self.setAcceptDrops(True) self.setWordWrapMode(QTextOption.WrapAnywhere) self.findEdit = None self.gotoEdit = None self.matchCaseButton = None self.wholeWordButton = None self.nextButton = None self.previousButton = None self.replaceEdit = None self.replaceButton = None self.replaceAllButton = None self.replaceTab = True self.indentation = ' ' self.hasError = False self.defaultdoc = self.document().clone() self.setDocument(self.defaultdoc) self.syntaxhighlighter = LpySyntaxHighlighter(self) self.zoomFactor = 0 self.editionFont = None
def insertFromMimeData(self,source): if source.hasUrls(): if not self.editor is None: url = source.urls()[0] if len(url.host()) == 0 and url.path().startswith("/.file/id="): import os cmd = """osascript -e 'get posix path of posix file "{}" -- kthxbai'""".format(url.path()) path = os.popen(cmd).read().strip() else: path = url.toLocalFile() self.editor.openfile(path) else : nsource = QMimeData() nsource.setText(source.text()) return QTextEdit.insertFromMimeData(self,nsource)
def focusInEvent ( self, event ): if self.editor : self.editor.currentSimulation().monitorfile() return QTextEdit.focusInEvent ( self, event )
def scrollContentsBy(self,dx,dy): self.sidebar.update() self.sidebar.setFont(QFont(self.currentFont())) QTextEdit.scrollContentsBy(self,dx,dy)
def resizeEvent(self,event): self.sidebar.setGeometry(0,0,48,self.height()) QTextEdit.resizeEvent(self,event)