def __onLeftMouseDoubleClicked(self,clickedPixelPos): retuDict = self.transUserClickedPixelPosToIndexPos( clickedPixelPos ) xPos,yPos = retuDict['indexPos'] offset = retuDict['offset'] lineText = self.document().getLineText(yPos) if len(lineText) == 0: self.selectedTextManager().clearSelectedText() return prevClickedPixelPos = self.settings().getUserDataByKey('leftMouseDoubleClickedPos') if prevClickedPixelPos == clickedPixelPos: self.settings().setUserDataByKey('leftMouseDoubleClickedPos',None) self.selectedTextManager().setSelectTextIndexPos( (0,yPos),(len(lineText),yPos) ) self.cursor().setGlobalCursorPos( (len(lineText),yPos) ) else: self.settings().setUserDataByKey('leftMouseDoubleClickedPos',clickedPixelPos) if xPos == 0: length = TextDocument.skipSpaceAndWordByRight(lineText, xPos)['offset'] elif xPos == len(lineText): length = TextDocument.skipSpaceAndWordByLeft(lineText, xPos)['offset'] xPos -= length else: toLeftRetuDict = TextDocument.skipSpaceAndWordByLeft(lineText, xPos) toRightRetuDict = TextDocument.skipSpaceAndWordByRight(lineText, xPos) if toLeftRetuDict['searcher'] == toRightRetuDict['searcher'] and toLeftRetuDict['searcher'] != None: length = toLeftRetuDict['offset'] + toRightRetuDict['offset'] xPos -= toLeftRetuDict['offset'] else: if offset >= 0: length = toRightRetuDict['offset'] else: length = toLeftRetuDict['offset'] xPos -= length self.selectedTextManager().setSelectTextIndexPos( (xPos,yPos),(xPos+length,yPos) ) self.cursor().setGlobalCursorPos( (xPos+length,yPos) )