*******************************************************************************/
-//! \file DictManagerWidget.cpp
-//! \brief Dictionaries management widget
-//! \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+/*! \file DictManagerWidget.cpp
+ \brief Implements dictionaries management widget
+
+ \author Mateusz Półrola <mateusz.polrola@comarch.pl>
+*/
#include "DictManagerWidget.h"
#include "DictTypeSelectDialog.h"
#include <QDebug>
#include "../../include/DictDialog.h"
+#include "MenuWidget.h"
DictManagerWidget::DictManagerWidget(GUIInterface *parent) :
QDialog(parent) {
setWindowTitle(tr("Dictionaries"));
this->guiInterface = parent;
+ #ifndef Q_WS_MAEMO_5
+ model = 0;
+ #endif
initalizeUI();
+
+ setModal(true);
}
void DictManagerWidget::initalizeUI() {
verticalLayout = new QVBoxLayout;
setLayout(verticalLayout);
- dictListWidget = new QListWidget;
- verticalLayout->addWidget(dictListWidget);
+ #ifndef Q_WS_MAEMO_5
+ qmlView = new QDeclarativeView(this);
+ qmlView->setSource(QUrl::fromLocalFile("/usr/share/mdictionary/qml/DictManagerWidget.qml"));
+ ctxt = qmlView->rootContext();
+
+ refreshDictsList();
+ ctxt->setContextProperty("dictModel", &(*model));
+
+ QGraphicsObject *rootObject = qmlView->rootObject();
+ //connect(rootObject, SIGNAL(selectedRow(int)),
+ // this, SLOT(pluginSelected(int)));
+
+ qmlView->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ verticalLayout->addWidget(qmlView);
- dictListWidget->setSelectionMode(QAbstractItemView::SingleSelection);
- dictListWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ //connecty zwrotne
+ #endif
+
+ #ifdef Q_WS_MAEMO_5
+ dictList = new QListWidget;
+ verticalLayout->addWidget(dictList);
+
+ dictList->setSelectionMode(QAbstractItemView::SingleSelection);
+ dictList->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
addNewDictButton = new QPushButton(tr("Add"));
removeDictButton = new QPushButton(tr("Remove"));
connect(settingsButton, SIGNAL(clicked()),
this, SLOT(settingsButtonClicked()));
- connect(dictListWidget, SIGNAL(itemClicked(QListWidgetItem*)),
+ connect(dictList, SIGNAL(itemClicked(QListWidgetItem*)),
this, SLOT(itemSelected(QListWidgetItem*)));
- connect(dictListWidget, SIGNAL(itemChanged(QListWidgetItem*)),
+ connect(dictList, SIGNAL(itemChanged(QListWidgetItem*)),
this, SLOT(changed()));
+ #endif
+ #ifndef Q_WS_MAEMO_5
+ //pozmieniać connecty
+// connect(dictList, SIGNAL(itemActivated(QListWidgetItem*)),
+// this, SLOT(saveChanges()));
+// connect(dictList, SIGNAL(itemActivated(QListWidgetItem*)),
+// this, SLOT(itemSelected(QListWidgetItem*)));
+// connect(dictList, SIGNAL(itemActivated(QListWidgetItem*)),
+// settingsButton, SIGNAL(clicked()));
+ #endif
+
+ #ifdef Q_WS_MAEMO_5
refreshDictsList();
+ #endif
#ifndef Q_WS_MAEMO_5
setMinimumSize(500,300);
- closeButton = new QPushButton(tr("Save"));
- buttonGroup->addWidget(closeButton);
- connect(closeButton, SIGNAL(clicked()), this, SLOT(save()));
+ //closeButton = new QPushButton(tr("Save"));
+ //buttonGroup->addWidget(closeButton);
+
+// setMinimumWidth(sizeHint().width()*1.2);
+// setMaximumWidth(sizeHint().width()*2);
+// setMinimumHeight(sizeHint().height());
+// setMaximumHeight(sizeHint().height()*2);
+ //connect(closeButton, SIGNAL(clicked()), this, SLOT(save()));
#endif
}
void DictManagerWidget::refreshDictsList() {
- dictListWidget->clear();
+ #ifndef Q_WS_MAEMO_5
+ QHash<CommonDictInterface*, bool> dicts = guiInterface->getDictionaries();
+
+ if (model == 0){
+ qDebug("ok");
+ model = new DictManagerModel(dicts, this);
+ } else {
+ qDebug("lol");
+ model->clear();
+ model->setDictionaries(dicts);
+ }
+
+ #endif
+
+ #ifdef Q_WS_MAEMO_5
+ dictList->clear();
dictsHash.clear();
removeDictButton->setEnabled(false);
settingsButton->setEnabled(false);
while(i.hasNext()) {
i.next();
+
QListWidgetItem* item = new QListWidgetItem();
- QString name = i.key()->langFrom() + " - " + i.key()->langTo() + " (" +
- i.key()->type() + " " + i.key()->name() + ")";
+ QString name;
+ if (i.key()->type() == "stardict") {
+ name = i.key()->name() + " (" + i.key()->type() + ")";
+ }
+ else {
+ name = i.key()->langFrom() + " - " + i.key()->langTo() +
+ " (" + i.key()->type() + " " +
+ i.key()->name() + ")";
+ }
item->setText(name);
item->setFlags(item->flags() | Qt::ItemIsUserCheckable);
if(i.value()) {
}
item->setIcon(*i.key()->icon());
- dictListWidget->addItem(item);
+ dictList->addItem(item);
dictsHash.insert(item, i.key());
}
+
+ dictList->sortItems();
+ #endif
}
void DictManagerWidget::showEvent(QShowEvent *e) {
#endif
QList<CommonDictInterface*> checkedDicts;
- for(int i=0; i<dictListWidget->count(); i++) {
- QListWidgetItem* item = dictListWidget->item(i);
+ for(int i=0; i<dictList->count(); i++) {
+ QListWidgetItem* item = dictList->item(i);
if(item->checkState() == Qt::Checked) {
checkedDicts.push_back(dictsHash[item]);
}
DictTypeSelectDialog::addNewDict(guiInterface->getPlugins(),this);
if(selectedPlugin) {
Settings* settings =
- selectedPlugin->dictDialog()->addNewDictionary(this);
+ selectedPlugin->dictDialog()->addNewDictionary(this->parentWidget());
if(settings) {
CommonDictInterface* newDict = selectedPlugin->getNew(settings);
void DictManagerWidget::itemSelected(QListWidgetItem *) {
removeDictButton->setEnabled(true);
settingsButton->setEnabled(true);
+ dictList->setFocus();
}
void DictManagerWidget::removeButtonClicked() {
tr("Do you want to remove selected dictionary?"),
QMessageBox::Yes, QMessageBox::No) == QMessageBox::Yes) {
- QList<QListWidgetItem*> selected = dictListWidget->selectedItems();
+ QList<QListWidgetItem*> selected = dictList->selectedItems();
if(selected.count() > 0) {
emit removeDictionary(dictsHash[selected[0]]);
refreshDictsList();
_save = false;
}
#endif
- QList<QListWidgetItem*> selected = dictListWidget->selectedItems();
+ QList<QListWidgetItem*> selected = dictList->selectedItems();
if(selected.count() > 0) {
- dictsHash[selected[0]]->dictDialog()->changeSettings(this);
+ dictsHash[selected[0]]->dictDialog()->changeSettings(this->parentWidget());
}
refreshDictsList();
}
hide();
}
#endif
+
+
+void DictManagerWidget::keyPressEvent(QKeyEvent *e) {
+ if (!e->modifiers() || (e->modifiers() & Qt::KeypadModifier && e->key() == Qt::Key_Enter)) {
+ switch (e->key()) {
+ case Qt::Key_Escape:
+ reject();
+ break;
+ default:
+ e->ignore();
+ return;
+ }
+ } else {
+ e->ignore();
+ }
+}