Merge branch 'cache'
[mdictionary] / trunk / src / base / backbone / Bookmarks.cpp
index c23aff7..dfee9c8 100644 (file)
@@ -9,11 +9,15 @@ Bookmarks::Bookmarks() {
 }
 
 
+QSqlDatabase Bookmarks::getDbCnx(QString dbName) {
+    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE",
+            QString("%2").arg((int)QThread::currentThreadId()));
+    db.setDatabaseName(dbName);
+    return db;
+}
 
 bool Bookmarks::checkAndCreateDb() {
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-    db.setDatabaseName(dbName);
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return false;
@@ -28,9 +32,7 @@ bool Bookmarks::checkAndCreateDb() {
 
 
 void Bookmarks::clear() {
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-    db.setDatabaseName(dbName);
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return ;
@@ -44,13 +46,12 @@ void Bookmarks::clear() {
 
 
 void Bookmarks::add(Translation* translation) {
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-    db.setDatabaseName(dbName);
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return ;
     }
+    translation->setBookmark(true);
     QSqlQuery cur(db);
     cur.prepare("insert into bookmarks values (?,?)");
     cur.addBindValue(translation->key());
@@ -60,12 +61,8 @@ void Bookmarks::add(Translation* translation) {
 }
 
 
-
 void Bookmarks::remove(Translation* translation) {
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-
-    db.setDatabaseName(dbName);
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return ;
@@ -81,9 +78,7 @@ void Bookmarks::remove(Translation* translation) {
 
 QList<Translation*> Bookmarks::list() {
     QList<Translation*> res;
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-    db.setDatabaseName(dbName);
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return res;
@@ -107,10 +102,7 @@ QList<Translation*> Bookmarks::searchWordList(QString word) {
     word = removeAccents(word);
 
     QList<Translation*> tr;
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-    db.setDatabaseName(dbName);
-    qDebug()<<dbName;
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return tr;
@@ -122,7 +114,6 @@ QList<Translation*> Bookmarks::searchWordList(QString word) {
     QSet<QString> res;
     while(cur.next())
         res.insert(cur.value(0).toString());
-    qDebug() << "searchWordList " << res.size();
     foreach(QString str, res.toList())
         tr.append(new BookmarkTranslation(str, this, dbName));
     db.close();
@@ -132,25 +123,19 @@ QList<Translation*> Bookmarks::searchWordList(QString word) {
 
 
 QStringList Bookmarks::search(QString word, QString dbName) {
-    qDebug() << "bookmarks::search  " << word << " |" << dbName;
     QStringList result;
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-    db.setDatabaseName(dbName);
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return result;
     }
-    qDebug() << "bookmarks::search " << word;
     QSqlQuery cur(db);
-    qDebug() << "bookmarks::search " << word;
     cur.prepare("select translation from bookmarks where key=?");
     cur.addBindValue(word);
     cur.exec();
     while(cur.next())
         result << cur.value(0).toString();
 
-    qDebug() << result.size() << " " << result;
     db.close();
     return result;
 }
@@ -176,9 +161,7 @@ QString Bookmarks::removeAccents(QString string) {
 
 
 bool Bookmarks::inBookmarks(QString word) {
-    QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
-            QString((int)QThread::currentThreadId()));
-    db.setDatabaseName(dbName);
+    QSqlDatabase db = getDbCnx(dbName);
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return false;