def __deleteLineBreak(self,lineIndex): text1 = self.getLineText(lineIndex) text2 = self.getLineText(lineIndex+1,'') self.setLineText(lineIndex, text1+text2) self.delLine(lineIndex+1) return OperateRecord.insertText( (len(text1),lineIndex),self.getSplitedChar() )
def __insertTextWithoutLineBreak(self,xyIndexPosTuple,text): xPos,yPos = xyIndexPosTuple curLineText = self.getLineText(yPos) self.setLineText(yPos, curLineText[0:xPos] + text + curLineText[xPos:len(curLineText)]) newXYIndexPos = ( len(curLineText[0:xPos] + text) ,yPos) operateRecord = OperateRecord.deleteText( (xPos,yPos),len(text) ) return RetuInfo.info( newXYIndexPos=newXYIndexPos,operateRecord=operateRecord )
def __insertLineBreak(self,xyIndexPosTuple): xPos,yPos = xyIndexPosTuple curLineText = self.getLineText(yPos) self.setLineText(yPos,curLineText[0:xPos] ) self.addLine( yPos + 1,curLineText[xPos:len(curLineText)] ) newXYIndexPos = (0,yPos+1) operateRecord = OperateRecord.deleteText( (len(curLineText),yPos),1 ) return RetuInfo.info( newXYIndexPos=newXYIndexPos,operateRecord=operateRecord )
def __deleteText(self,xyIndexPosTuple,length): xPos,yPos = xyIndexPosTuple operateRecords = [] while len(self.getLineText(yPos))-xPos < length: retuRecord = self.__deleteLineBreak(yPos) operateRecords.append( retuRecord ) length -= 1 curLineText = self.getLineText(yPos) self.setLineText( yPos,curLineText[0:xPos]+curLineText[xPos+length:len(curLineText)] ) operateRecords.append( OperateRecord.insertText( (xPos,yPos),curLineText[xPos:xPos+length] ) ) return RetuInfo.info( indexPos = xyIndexPosTuple,operateRecords = operateRecords )