diff --git a/yomi_base/japanese/translate.py b/yomi_base/japanese/translate.py index cdb5fca..e1cb0fa 100644 --- a/yomi_base/japanese/translate.py +++ b/yomi_base/japanese/translate.py @@ -41,7 +41,7 @@ class Translator: results = map(self.formatResult, groups.items()) results = filter(operator.truth, results) - results = sorted(results, key=lambda d: ('P' in d['tags'], len(d['source'])), reverse=True) + results = sorted(results, key=lambda d: (len(d['source']), 'P' in d['tags'], -len(d['rules'])), reverse=True) length = 0 for result in results: diff --git a/yomi_base/reader.py b/yomi_base/reader.py index 8928c5c..2a46438 100644 --- a/yomi_base/reader.py +++ b/yomi_base/reader.py @@ -269,8 +269,7 @@ class MainWindowReader(QtGui.QMainWindow, reader_ui.Ui_MainWindowReader): def onDefinitionSearchReturn(self): text = unicode(self.textDefinitionSearch.text()) - definitions, length = self.language.findTerm(text, True) - self.state.definitions = reader_util.convertDefinitions(definitions) + self.state.definitions, length = self.language.findTerm(text, True) self.updateDefinitions() @@ -489,10 +488,12 @@ class MainWindowReader(QtGui.QMainWindow, reader_ui.Ui_MainWindowReader): return contentSampleFlat = contentSample.replace('\n', unicode()) - definitionsMatched, lengthMatched = self.language.findTerm(contentSampleFlat) - sentence = reader_util.findSentence(content, samplePosStart) + self.state.definitions, lengthMatched = self.language.findTerm(contentSampleFlat) + + sentence = reader_util.findSentence(content, samplePosStart) + for definition in self.state.definitions: + definition['sentence'] = sentence - self.state.definitions = reader_util.convertDefinitions(definitionsMatched, sentence) self.updateDefinitions() lengthSelect = 0 diff --git a/yomi_base/reader_util.py b/yomi_base/reader_util.py index 2c3a964..07e32fe 100644 --- a/yomi_base/reader_util.py +++ b/yomi_base/reader_util.py @@ -117,14 +117,6 @@ def splitTags(tags): return filter(lambda tag: tag.strip(), re.split('[;,\s]', tags)) -def convertDefinitions(definitions, sentence=None): - if sentence is not None: - for definition in definitions: - definition['sentence'] = sentence - - return definitions - - def copyDefinitions(definitions): text = unicode()