Fix bug with app crash on exit. Add keyboard support in wordList, DictTypeSelectDialo...
[mdictionary] / src / mdictionary / gui / DictTypeSelectDialog.cpp
index 62c7f42..abe5552 100644 (file)
@@ -28,7 +28,7 @@
 #include "DictTypeSelectDialog.h"
 
 DictTypeSelectDialog::DictTypeSelectDialog(QList<CommonDictInterface *> plugins, QWidget *parent) :
-    QDialog(parent) {
+    QDialog(parent), model(plugins, this) {
 
     setWindowTitle(tr("Select dictionary type"));
 
@@ -37,6 +37,27 @@ DictTypeSelectDialog::DictTypeSelectDialog(QList<CommonDictInterface *> plugins,
     verticalLayout = new QVBoxLayout(this);
     setLayout(verticalLayout);
 
+#ifndef Q_WS_MAEMO_5
+    qmlView = new QDeclarativeView(this);
+
+    ctxt = qmlView->rootContext();
+    ctxt->setContextProperty("dictTypeModel", &model);
+
+    qmlView->setSource(QUrl::fromLocalFile("/usr/share/mdictionary/qml/DictTypeSelectDialog.qml"));
+
+    _selectedPlugin = 0;
+
+    QGraphicsObject *rootObject = qmlView->rootObject();
+    connect(rootObject, SIGNAL(selectedRow(int)),
+            this, SLOT(pluginSelected(int)));
+
+    qmlView->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+//    qmlView->setFocus();
+    verticalLayout->addWidget(qmlView);
+
+#endif
+#ifdef Q_WS_MAEMO_5
+
     pluginsListWidget = new QListWidget(this);
 
     verticalLayout->addWidget(pluginsListWidget);
@@ -51,6 +72,7 @@ DictTypeSelectDialog::DictTypeSelectDialog(QList<CommonDictInterface *> plugins,
 
     connect(pluginsListWidget, SIGNAL(itemActivated(QListWidgetItem*)),
             this, SLOT(pluginSelected(QListWidgetItem*)));
+#endif
 }
 
 void DictTypeSelectDialog::pluginSelected(QListWidgetItem *item) {
@@ -58,6 +80,11 @@ void DictTypeSelectDialog::pluginSelected(QListWidgetItem *item) {
     accept();
 }
 
+void DictTypeSelectDialog::pluginSelected(int item) {
+    _selectedPlugin = plugins[item];
+    accept();
+}
+
 CommonDictInterface* DictTypeSelectDialog::selectedPlugin() {
     return _selectedPlugin;
 }