From 81fb773fdb360f8fc3842a32847857793fc8d116 Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Fri, 20 Aug 2010 12:02:00 +0200 Subject: [PATCH] Fixed doubling ready() signal when searching for word list --- trunk/src/base/backbone/backbone.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/trunk/src/base/backbone/backbone.cpp b/trunk/src/base/backbone/backbone.cpp index 360448d..05e17f0 100644 --- a/trunk/src/base/backbone/backbone.cpp +++ b/trunk/src/base/backbone/backbone.cpp @@ -180,6 +180,7 @@ void Backbone::stopSearching() { void Backbone::search(QString word){ + qDebug() << "SEEEEEEEEEARCH"; _result.clear(); mappedSearch = word.toLower(); @@ -244,7 +245,11 @@ void Backbone::addDictionary(CommonDictInterface *dict, bool active) { void Backbone::translationReady() { + bool changed = 0; // prevents doubling ready() signal, when both if are + // executed in one translationReady() call then second + // call doubles ready*() emit without any new data if(!dictFin && _innerResult.isFinished()) { + changed = 1; dictFin = 1; QFutureIterator > it(_innerResult); @@ -256,6 +261,7 @@ void Backbone::translationReady() { } if(!bookmarkFin && _innerBookmarks.isFinished()) { + changed = 1; bookmarkFin = 1; QList list = _innerBookmarks.result(); @@ -263,8 +269,10 @@ void Backbone::translationReady() { _result.insert(trans->key().toLower(), trans); } - if(!stopped && bookmarkFin && dictFin) + if(!stopped && bookmarkFin && dictFin && changed) { + qDebug() << "EMITTTTTT"; Q_EMIT ready(); + } } QStringList Backbone::getFilesFromDir(QString dir, QStringList nameFilter) { -- 1.7.9.5