From 58784c3c3001ca7f0c5d1007532ca597c8accca9 Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Thu, 26 Aug 2010 14:02:55 +0200 Subject: [PATCH] Fixed doubling google translations --- trunk/src/base/backbone/backbone.cpp | 10 +++++++++- trunk/src/base/backbone/backbone.h | 1 + trunk/src/plugins/google/src/TranslationGoogle.cpp | 8 ++++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/trunk/src/base/backbone/backbone.cpp b/trunk/src/base/backbone/backbone.cpp index 6f55e4d..a1e8917 100644 --- a/trunk/src/base/backbone/backbone.cpp +++ b/trunk/src/base/backbone/backbone.cpp @@ -516,6 +516,11 @@ void Backbone::searchHtml(QList translations) { foreach(Translation* tr, translations) { if(containsDict(tr->dict()) || !tr->dict()) dummy.append(TranslationPtr(tr)); + foreach(CommonDictInterface* dict, activeDicts()) { + Translation* trans = dict->getTranslationFor(tr->key()); + if(trans) + dummy.append(TranslationPtr(trans)); + } } _innerHtmlResult = QtConcurrent::mapped(dummy, @@ -528,8 +533,11 @@ void Backbone::searchHtml(QList translations) { void Backbone::htmlTranslationReady() { QFutureIterator it(_innerHtmlResult); + QSet uniqe; while(it.hasNext()) - _htmlResult.append(it.next()); + uniqe.insert(it.next()); + _htmlResult.clear(); + _htmlResult = uniqe.toList(); if(!stopped) Q_EMIT htmlReady(); diff --git a/trunk/src/base/backbone/backbone.h b/trunk/src/base/backbone/backbone.h index fe3b178..5affa3a 100644 --- a/trunk/src/base/backbone/backbone.h +++ b/trunk/src/base/backbone/backbone.h @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/src/plugins/google/src/TranslationGoogle.cpp b/trunk/src/plugins/google/src/TranslationGoogle.cpp index 4a0ea9e..01528d6 100644 --- a/trunk/src/plugins/google/src/TranslationGoogle.cpp +++ b/trunk/src/plugins/google/src/TranslationGoogle.cpp @@ -59,8 +59,12 @@ QString TranslationGoogle::toHtml() const { return result+=_dictionaryInfo+ ""+_trans +""; QList translations=googlePlugin->searchWordList(_key); - if(translations.size()>0) - return translations.at(0)->toHtml(); + if(translations.size()>0 && translations.at(0)) { + QString res = translations.at(0)->toHtml(); + return res; + } + return ""; + } void TranslationGoogle::setKey(QString) { -- 1.7.9.5