add google bookmark work correctly
[mdictionary] / src / mdictionary / backbone / backbone.cpp
index 721decc..ad8147b 100644 (file)
@@ -96,6 +96,8 @@ void Backbone::init() {
            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
@@ -514,8 +516,9 @@ QStringList Backbone::xmls() {
     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());
@@ -530,20 +533,29 @@ void Backbone::addBookmark(QList<Translation*> translations) {
     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();
@@ -563,15 +575,12 @@ void Backbone::searchXml(QList<Translation *> translations) {
         }
     }
 
-   _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())
@@ -595,15 +604,12 @@ QList<CommonDictInterface*> Backbone::activeDicts() {
 }
 
 
-
 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();
@@ -625,8 +631,6 @@ void Backbone::setSettings(Settings *settings) {
 }
 
 
-
-
 Settings* Backbone::settings() {
     Settings * settings = new Settings();
     settings->setValue("history_size", QString("%1").arg(_historyLen));