SLOT(bookmarksListReady()));
connect(&_bookmarkSearchWatcher, SIGNAL(finished()), this,
SLOT(translationReady()));
+ connect(&_translationsListWatcher, SIGNAL(finished()),
+ this, SLOT(bookmarkReadyFuture()));
// In common opinion perfect thread count is cores_number+1 (in qt perfect
// thread count is set to cores number) so iam changin it
return _xmlResult;
}
-void Backbone::addBookmark(QList<Translation*> translations) {
+void Backbone::addBookmarkFuture(QList<Translation*> translations) {
if(translations.size()>0) {
+ qDebug()<<"size"<<translations.size();
Translation *tr = translations.at(0);
foreach(CommonDictInterface* dict, activeDicts()) {
Translation* trans = dict->getTranslationFor(tr->key());
foreach(translation,translations){
translation->setBookmark(true);
trans.insert(translation->toXml(),translation->key());
-
}
+ _xmlResult.clear();
foreach(QString value,trans.keys()){
+ qDebug()<<"dodaje"<<value;
QString key= trans.value(value);
- _bookmarks.add(key,key,value);
+ _bookmarks.add(key,value);
+ _xmlResult.append(value);
}
+}
+
+void Backbone::addBookmark(QList<Translation*> translations) {
+ _translationsListWatcher.setFuture(QtConcurrent::run(this ,
+ &Backbone::addBookmarkFuture,translations));
+ /* foreach(Translation *trans,translations){
+ _bookmarks.add(trans); */
- // Translation* translation;
- // foreach(translation, translations)
- // _bookmarks.add(translation);
- // emit bookmarkReady();
}
+void Backbone::bookmarkReadyFuture(){
+ qDebug()<<"zaraz stop";
+ emit xmlReady();
+}
void Backbone::searchXml(QList<Translation *> translations) {
_xmlResult.clear();
}
}
- _innerXmlResult = QtConcurrent::mapped(dummy,
- &TranslationPtr::toHtml);
+ _innerXmlResult = QtConcurrent::mapped(dummy, &TranslationPtr::toHtml);
_xmlResultWatcher.setFuture(_innerXmlResult);
}
-
void Backbone::xmlTranslationReady() {
-
QFutureIterator<QString> it(_innerXmlResult);
QSet<QString> uniqe;
while(it.hasNext())
}
-
void Backbone::bookmarksListReady() {
_bookmarksResult = _innerBookmarks.result();
Q_EMIT bookmarksReady();
}
-
-
void Backbone::setSettings(Settings *settings) {
_historyLen = settings->value("history_size").toInt();
_searchLimit = settings->value("search_limit").toInt();
}
-
-
Settings* Backbone::settings() {
Settings * settings = new Settings();
settings->setValue("history_size", QString("%1").arg(_historyLen));