Fixed closing menu, added bookmarks operations in different thread
[mdictionary] / trunk / src / base / backbone / backbone.h
index 267eb9e..21cb3df 100644 (file)
@@ -148,8 +148,8 @@ public Q_SLOTS:
       */
     void addBookmark(QList<Translation*> translations) {
         foreach(Translation* translation, translations)
-            _bookmarks.add(translation);
-            //QtConcurrent::run(&bookmarks, &Bookmarks::add, translation);
+            //_bookmarks.add(translation);
+            QtConcurrent::run(_bookmarks, &Bookmarks::add, translation);
     }
 
 
@@ -162,19 +162,35 @@ public Q_SLOTS:
     }
 
 
+
+    /*! Remove all bookmarks
+      */
+    void removeAllBookmark(){
+        _bookmarks.clear();
+    }
+
+
    /*! Searching for list of bookmarks may take some time, so i moved it to
        new thread (to avoid gui blocking), when ready bookmarksReady is emited
        and result is returned after calling getBookmarks()
        */
    void fetchBookmarks() {
-       _bookmarksResult.clear();
-       _innerListBookmarks = QtConcurrent::run(_bookmarks, &Bookmarks::list);
-       _bookmarkWatcher.setFuture(_innerListBookmarks);
+        _result.clear();
+
+        stopped = false;
+        dictFin = 1;
+        bookmarkFin = 0;
+
+        if(_searchBookmarks) {
+           _innerBookmarks = QtConcurrent::run(_bookmarks,
+                   &Bookmarks::searchWordList, QString("*"));
+           _bookmarkSearchWatcher.setFuture(_innerBookmarks);
+        }
    }
 
    /*! \return list of all bookmarks
      */
-   QList<Translation*> getBookmarks() {
+   QList<Translation*> bookmarks() {
        return _bookmarksResult;
    }