def __onDeleteKey(self,event): if self.selectedTextManager().getSelectedTextIndexPos() != None: self.deleteSelectText(True) return curCursorIndexPos = self.cursor().getCursorIndexPos() if FUF.hasModifier(event.modifiers()) == False: if event.key() == QtCore.Qt.Key_Delete: newCursorIndexPos = self.document().moveIndexPosRight(curCursorIndexPos) else: newCursorIndexPos = self.document().moveIndexPosLeft(curCursorIndexPos) elif FUF.onlyCtrlModifier(event.modifiers()): if event.key() == QtCore.Qt.Key_Delete: newCursorIndexPos = self.document().moveIndexPosRightByWord(curCursorIndexPos) else: newCursorIndexPos = self.document().moveIndexPosLeftByWord(curCursorIndexPos) else: return distance = self.document().calcIndexPosDistance(curCursorIndexPos, newCursorIndexPos, False) if distance > 0: self.cursor().setGlobalCursorPos(curCursorIndexPos) self.document().deleteText(curCursorIndexPos,distance ) elif distance < 0: self.cursor().setGlobalCursorPos(newCursorIndexPos) self.document().deleteText(newCursorIndexPos,-distance ) self.update()
def __onDisplayLetterKey(self,event): if (FUF.hasModifier(event.modifiers()) == False) or (FUF.onlyShiftModifier(event.modifiers()) == True): self.deleteSelectText(False) indexPos = self.document().insertText(self.cursor().getCursorIndexPos(), event.text()) self.cursor().setGlobalCursorPos(indexPos) self.update() elif FUF.onlyCtrlModifier(event.modifiers()): self.onQuickCtrlKeySignal.emit(event.key()) elif FUF.onlyAltModifier(event.modifiers()): self.onQuickAltKeySignal.emit(event.key())
def __onHomeEndKey(self,event): if FUF.hasModifier(event.modifiers()) == False: curIndexPos = self.cursor().getCursorIndexPos() if event.key() == QtCore.Qt.Key_Home: newIndexPos = ( 0,curIndexPos[1] ) else: newIndexPos = ( len(self.document().getLineText(curIndexPos[1])),curIndexPos[1] ) self.cursor().setGlobalCursorPos( newIndexPos ) else: if FUF.onlyCtrlModifier(event.modifiers()): if event.key() == QtCore.Qt.Key_Home: lineIndex = 0 newIndexPos = ( 0,0 ) else: lineIndex = self.calcMaxStartDisLineNumber() lineCount = self.document().getLineCount()-1 newIndexPos = ( len(self.document().getLineText(lineCount)),lineCount ) self.cursor().setGlobalCursorPos( newIndexPos ) self.showLineNumberAsTop(lineIndex)
def __onPageKey(self,event): if FUF.hasModifier(event.modifiers()) == False: if event.key() == QtCore.Qt.Key_PageUp: newLineNumber = max([ self.settings().getStartDisLineNumber()-self.calcDisLineNumber(),0 ]) elif event.key() == QtCore.Qt.Key_PageDown: newLineNumber = min([ self.settings().getStartDisLineNumber()+self.calcDisLineNumber(),self.document().getLineCount()-1 ]) else: if FUF.onlyCtrlModifier(event.modifiers()): if event.key() == QtCore.Qt.Key_PageUp: newLineNumber = 0 elif event.key() == QtCore.Qt.Key_PageDown: newLineNumber = self.calcMaxStartDisLineNumber() else: return curIndexPos = self.cursor().getCursorIndexPos() newIndexPos = self.document().formatIndexPos( (curIndexPos[0],curIndexPos[1] - (self.settings().getStartDisLineNumber() - newLineNumber)) ) self.showLineNumberAsTop( newLineNumber ) self.cursor().setGlobalCursorPos( newIndexPos )