Exemplo n.º 1
0
 def transUserClickedPixelPosToIndexPos(self,xyClickedPixelPosTuple):
     x,y = xyClickedPixelPosTuple
     x = max([x,0])
     lineIndex = self.settings().getStartDisLineNumber() + int((y-CEGD.TextYOff)/self.settings().getFontMetrics().lineSpacing())
     lineIndex = FUF.calcMidNumberByRange(0, lineIndex, self.__textDocument.getLineCount()-1)
     
     charWidthArray = self.__textDocument.getLineCharWidthArrayByIndex(lineIndex)
             
     startX = 0 - self.settings().getStartDisLetterXOff()
     xIndex = 0
     while xIndex < len(charWidthArray):
         charWidth = charWidthArray[xIndex]
         startX += charWidth + CEGD.CharDistancePixel
         xIndex += 1
         if startX >= x:
             break
     if startX > x:
         if ( startX - (charWidth + CEGD.CharDistancePixel)/2 > x ):
             startX -= (charWidth + CEGD.CharDistancePixel)
             xIndex -= 1
     return RetuInfo.info( indexPos = ( xIndex,lineIndex ) , offset = x-startX )
 def setSelectedCode(self, code):
     code = FUF.calcMidNumberByRange(0, code, 0xFFFF)
     if code != self.__selectedCode:
         self.__selectedCode = code
         self.selectedCodeChanged.emit(code)
 def setStartDisCode(self, newStartDisCode):
     code = FUF.calcMidNumberByRange(0, newStartDisCode, 0xFFFF)
     code = (code // 16) * 16
     if code != self.__startDisCode:
         self.__startDisCode = code
         self.startDisCodeChanged.emit(code)
Exemplo n.º 4
0
 def showLineNumberAsTop(self,lineNumber,update=True):
     suitedLineNumber = FUF.calcMidNumberByRange( 0,lineNumber,self.document().getLineCount()-1 )
     self.settings().setStartDisLineNumber(suitedLineNumber,update)