Clean and order documentation in source files. Source ready to beta 2 release
[mdictionary] / src / mdictionary / gui / WordListWidget.cpp
index 40b30d1..d568fb7 100644 (file)
 
 *******************************************************************************/
 
-//! \file WordListWidget.cpp
-//! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+/*! \file WordListwidget.cpp
+    \brief Displays list of words found in dictionaries
+
+    \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+*/
 
 #include "WordListWidget.h"
 #include "WordListProxyStyle.h"
@@ -97,17 +100,28 @@ void WordListWidget::showSearchResults(
     clear();
     searchResult = result;
 
-    model->setColumnCount(2);
-    model->setRowCount(result.count());
+    if(searchResult.count()>0) {
+        setEnabled(true);
+        model->setColumnCount(2);
+        model->setRowCount(result.count());
 
-    int row=0;
-    QHash<QString, QList<Translation*> >::iterator i;
-    for(i = searchResult.begin(); i != searchResult.end(); i++) {
-           addWord(i.key(), row++);
+        int row=0;
+        QHash<QString, QList<Translation*> >::iterator i;
+        for(i = searchResult.begin(); i != searchResult.end(); i++) {
+               addWord(i.key(), row++);
+        }
+
+        model->sort(0);
+        resizeColumns();
     }
+    else {
+        QStandardItem* item = new QStandardItem(tr("Can't find any matching words"));
+        item->setFlags(item->flags() ^ Qt::ItemIsEditable);
+        item->setTextAlignment(Qt::AlignCenter);
+        setEnabled(false);
 
-    model->sort(0);
-    resizeColumns();    
+        model->setItem(0,item);
+    }
 
     setFocus();
 }
@@ -143,10 +157,14 @@ void WordListWidget::wordChecked(QModelIndex index) {
         Translation* t;
         bool onlyBookmarks = true;
         foreach(t, searchResult[item.data().toString()]) {
-            if(t->isBookmark() == 1) {
+            if(t->isBookmark() == 1 || t->isBookmark()==0) {
+
                 onlyBookmarks = false;
                 t->setBookmark(0);
             }
+            else {
+                searchResult[item.data().toString()].removeAt(searchResult[item.data().toString()].indexOf(t));
+            }
         }
 
         if(onlyBookmarks) {