Fix bug with app crash on exit. Add keyboard support in wordList, DictTypeSelectDialo...
[mdictionary] / src / mdictionary / gui / WordListWidget.cpp
index 37eae2f..acd9660 100644 (file)
@@ -75,6 +75,7 @@ WordListWidget::WordListWidget(QWidget *parent):
     verticalLayout->addWidget(qmlView);
 
     connect(rootObject, SIGNAL(wordSelected(QString)), this, SLOT(wordClicked(QString)));
+    connect(rootObject, SIGNAL(wordSelectedByIndex(int)), this, SLOT(wordClickedByIndex(int)));
     connect(listModel, SIGNAL(addToBookmarks(QString)), this, SLOT(addToBookmarks(QString)));
     connect(listModel, SIGNAL(removeFromBookmarks(QString)), this, SLOT(removeFromBookmarks(QString)));
 
@@ -97,15 +98,10 @@ WordListWidget::WordListWidget(QWidget *parent):
 
 
 WordListWidget::~WordListWidget() {
+#ifdef Q_WS_MAEMO_5
     if(proxyStyle)
         delete proxyStyle;
-}
-
-void WordListWidget::setFocusOnElement(){
-    setFocus();
-    qmlView->setFocus();
-    Q_EMIT setFocusOnQML();
-    qDebug()<<hasFocus()<<" "<<qmlView->hasFocus();
+#endif
 }
 
 void WordListWidget::addWord(QString word, int row) {
@@ -259,23 +255,7 @@ void WordListWidget::wordChecked(QModelIndex index) {
         }
     }
 }
-#else
-    void WordListWidget::wordClicked(QString word){
-        emit showTranslation(searchResult[word]);
-    }
-
-    void WordListWidget::addToBookmarks(QString word){
-        emit addBookmark(searchResult[word]);
-    }
-
-    void WordListWidget::removeFromBookmarks(QString word){
-        emit removeBookmark(searchResult[word]);
-    }
-
-#endif
 
-
-#ifdef Q_WS_MAEMO_5
 void WordListWidget::mouseReleaseEvent(QMouseEvent *event) {
 
     //firstly we normally handle this event
@@ -317,6 +297,29 @@ void WordListWidget::keyPressEvent(QKeyEvent *event) {
         wordClicked(selectedIndexes().at(0));
     }
 }
+#else
+    void WordListWidget::wordClicked(QString word){
+        emit showTranslation(searchResult[word]);
+    }
+
+    void WordListWidget::addToBookmarks(QString word){
+        emit addBookmark(searchResult[word]);
+    }
+
+    void WordListWidget::removeFromBookmarks(QString word){
+        emit removeBookmark(searchResult[word]);
+    }
+
+    void WordListWidget::wordClickedByIndex(int index){
+        emit showTranslation(searchResult[listModel->wordOnPosition(index)]);
+    }
+
+    void WordListWidget::setFocusOnElement(){
+        setFocus();
+        qmlView->setFocus();
+        Q_EMIT setFocusOnQML();
+    }
+
 #endif
 
 void WordListWidget::resizeColumns() {