bool DictWidget::lookup(const QString &word) { if (word.isEmpty() || word_ == word.trimmed()) { return false; } resetSimilarWordsOffset(); // Clean the word. word_ = word.trimmed(); // Title QString result; QString fuzzy_word(""); bool ret = dict_.fuzzyTranslate(word_, result, fuzzy_word); formatResult(result, fuzzy_word); // Result doc_.setHtml(result); // Always stop timer as the screen can be updated later. launchTimer(false); update_parent_ = false; updateVisibleWidgets(); onDetailsClicked(true); return ret; }
void DictWidget::updateSimilarWordsModel(int count) { // Pick up similar words from current dictionary. similar_words_.clear(); dict_.similarWords(word_, similar_words_, similar_words_offset_, count); if(similar_words_.isEmpty()) { if(!fuzzy_word_.isEmpty()) { similar_words_.clear(); dict_.similarWords(fuzzy_word_, similar_words_, similar_words_offset_, count); } } QString result; QString fuzzy_word(""); if(similar_words_.isEmpty()) { dict_.fuzzyTranslate(word_, result, fuzzy_word); result.replace("<k>", ""); int index = result.indexOf("</k>"); result = result.remove(index, result.length()); similar_words_.clear(); dict_.similarWords(result, similar_words_, similar_words_offset_, count); } similar_words_model_.clear(); QStandardItem *parentItem = similar_words_model_.invisibleRootItem(); QString explanation; foreach(QString item, similar_words_) { // Get explanation. dict_.translate(item, explanation); QStandardItem *ptr = new QStandardItem(); ptr->setData(item); item = item.trimmed(); explanation = explanation.trimmed(); item += "\t"; item += explanation; // replace any tags in the similar word item item.replace(QRegExp("<[/a-zA-Z]*>"), " "); ptr->setText(item); parentItem->appendRow(ptr); }
bool DictWidget::lookup(const QString &word, bool update_screen) { if (word.isEmpty() || word_ == word.trimmed()) { return false; } resetSimilarWordsOffset(); // Clean the word. word_ = word.trimmed(); // Title QString result; QString fuzzy_word(""); bool ret = dict_.fuzzyTranslate(word_, result, fuzzy_word); formatResult(result, fuzzy_word); // Result doc_.setHtml(result); // Always stop timer as the screen can be updated later. launchTimer(false); updateVisibleWidgets(); changeInternalState(EXPLANATION); checkSelectedButton(); explanation_text_.show(); explanation_text_.setFocus(); similar_words_view_.hide(); s_enable_update = update_screen; return ret; }