def getSelectedTextIndexPosSorted(self): selectedTextIndexPosRange = self.getSelectedTextIndexPos() if selectedTextIndexPosRange == None: return None selectedStart,selectedEnd = selectedTextIndexPosRange sortedInfoDict = FUF.sortedIndexPos( selectedStart , selectedEnd ) return ( sortedInfoDict['first'],sortedInfoDict['second'] )
def calcIndexPosDistance(self,indexPos1,indexPos2,absValue = True): sortedIndexPosDict = FUF.sortedIndexPos(indexPos1, indexPos2) positiveSign = -1 if (sortedIndexPosDict['changed'] == True) and (absValue == False) else 1 indexPosA = sortedIndexPosDict['first'] indexPosB = sortedIndexPosDict['second'] if indexPosA[1] == indexPosB[1]: absV = indexPosB[0] - indexPosA[0] else: absV = len(self.getLineText(indexPosA[1])) - indexPosA[0] + 1 absV += indexPosB[0] for index in range( indexPosA[1]+1,indexPosB[1] ): absV += len(self.getLineText(index)) + 1 return positiveSign * absV
def __onTabKey(self,event): if self.selectedTextManager().getSelectedTextIndexPos() == None: insertSpaceLen = 4 - (self.cursor().getCursorIndexPos()[0] % 4) indexPos = self.document().insertText(self.cursor().getCursorIndexPos(), ' '*insertSpaceLen) self.cursor().setGlobalCursorPos(indexPos) else: curSelectedIndexPos = self.selectedTextManager().getSelectedTextIndexPos() retuSortedPoses = FUF.sortedIndexPos( curSelectedIndexPos[0],curSelectedIndexPos[1]) affectedLineIndexList = list(range( retuSortedPoses['first'][1],retuSortedPoses['second'][1]+1 )) for lineIndex in affectedLineIndexList: self.document().insertText( (0,lineIndex),' '*CEGD.spaceToInsertTOL ) curCursorPos = self.cursor().getCursorIndexPos() if affectedLineIndexList.count(curCursorPos[1]) != 0: self.cursor().setGlobalCursorPos( (curCursorPos[0]+CEGD.spaceToInsertTOL,curCursorPos[1]) ) self.selectedTextManager().setSelectTextIndexPos( (curSelectedIndexPos[0][0]+CEGD.spaceToInsertTOL,curSelectedIndexPos[0][1]) ,\ (curSelectedIndexPos[1][0]+CEGD.spaceToInsertTOL,curSelectedIndexPos[1][1]) ) self.update()