def updateSampleFromPosition(self): samplePosStart = self.state.scanPosition samplePosEnd = self.state.scanPosition + self.preferences.searchScanMax cursor = self.textContent.textCursor() content = unicode(self.textContent.toPlainText()) contentSample = content[samplePosStart:samplePosEnd] if not contentSample or unicode.isspace(contentSample[0]): cursor.clearSelection() self.textContent.setTextCursor(cursor) return contentSampleFlat = contentSample.replace("\n", unicode()) definitionsMatched, lengthMatched = self.language().wordSearch( contentSampleFlat, self.preferences.searchResultMax, self.preferences.searchGroupByExp ) sentence = reader_util.findSentence(content, samplePosStart) self.state.definitions = reader_util.convertDefinitions(definitionsMatched, sentence) self.updateDefinitions() lengthSelect = 0 if lengthMatched: for c in contentSample: lengthSelect += 1 if c != "\n": lengthMatched -= 1 if lengthMatched <= 0: break cursor.setPosition(samplePosStart, QtGui.QTextCursor.MoveAnchor) cursor.setPosition(samplePosStart + lengthSelect, QtGui.QTextCursor.KeepAnchor) self.textContent.setTextCursor(cursor)
def onDefinitionSearchReturn(self): text = unicode(self.textDefinitionSearch.text()) definitions, length = self.language().wordSearch( text, self.preferences.searchResultMax, self.preferences.searchGroupByExp ) self.state.definitions = reader_util.convertDefinitions(definitions) self.updateDefinitions()