Fixed removing from bookmarks database
authorMateusz Półrola <mateusz.polrola@comarch.pl>
Tue, 17 Aug 2010 12:56:40 +0000 (14:56 +0200)
committerMateusz Półrola <mateusz.polrola@comarch.pl>
Tue, 17 Aug 2010 12:56:40 +0000 (14:56 +0200)
trunk/src/base/backbone/Bookmarks.cpp
trunk/src/base/backbone/backbone.cpp
trunk/src/base/gui/WordListWidget.cpp

index ff44f84..c23aff7 100644 (file)
@@ -71,8 +71,7 @@ void Bookmarks::remove(Translation* translation) {
         return ;
     }
     QSqlQuery cur(db);
-    cur.prepare("delete from bookmarks where key=? and translation=?");
-    cur.addBindValue(translation->key());
+    cur.prepare("delete from bookmarks where key=?");
     cur.addBindValue(translation->key());
     cur.exec();
     db.close();
@@ -111,6 +110,7 @@ QList<Translation*> Bookmarks::searchWordList(QString word) {
     QSqlDatabase db =QSqlDatabase::addDatabase("QSQLITE", 
             QString((int)QThread::currentThreadId()));
     db.setDatabaseName(dbName);
+    qDebug()<<dbName;
     if(!db.isOpen() && !db.open()) {
         qDebug() << "Database error: " << db.lastError().text() << endl;
         return tr;
index 74d9952..7dd9856 100644 (file)
@@ -247,6 +247,7 @@ void Backbone::translationReady() {
         bookmarkFin = 1;
         QList<Translation*> list = _innerBookmarks.result();
         qDebug() << "translation bookmarks" << list.size();
+
         foreach(Translation* trans, list)
                 _result.insert(trans->key().toLower(), trans);
     }
index 360d423..fed3397 100644 (file)
@@ -57,7 +57,20 @@ void WordListWidget::addWord(QString word, int row) {
     QStandardItem* itemCheckBox = new QStandardItem();
     itemCheckBox->setFlags(itemCheckBox->flags() ^ Qt::ItemIsEditable |
                            Qt::ItemIsUserCheckable);
-    itemCheckBox->setCheckState(Qt::Checked);
+
+    bool bookmark = false;
+    Translation* t;
+    foreach(t, searchResult[word]) {
+        if(t->isBookmark()) {
+            bookmark = true;
+            break;
+        }
+    }
+
+    if(bookmark)
+        itemCheckBox->setCheckState(Qt::Checked);
+    else
+        itemCheckBox->setCheckState(Qt::Unchecked);
 
     model->setItem(row,0, item);
     model->setItem(row,1, itemCheckBox);
@@ -79,7 +92,6 @@ void WordListWidget::showSearchResults(
            addWord(i.key(), row++);
     }
 
-    qDebug()<<width();
     setColumnWidth(0, width()-checkBoxWidth - 20);
     setColumnWidth(1, checkBoxWidth);
     setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -112,6 +124,7 @@ void WordListWidget::mouseReleaseEvent(QMouseEvent *event) {
 
 
     QModelIndex index = indexAt(event->pos());
+    if(!index.isValid()) return;
     int c = index.column();
     if(c==0)
         wordClicked(index);