connect(addNewDictButton, SIGNAL(clicked()),
+ this, SLOT(saveChanges()));
+ connect(addNewDictButton, SIGNAL(clicked()),
this, SLOT(addNewDictButtonClicked()));
connect(removeDictButton, SIGNAL(clicked()),
+ this, SLOT(saveChanges()));
+ connect(removeDictButton, SIGNAL(clicked()),
this, SLOT(removeButtonClicked()));
connect(settingsButton, SIGNAL(clicked()),
+ this, SLOT(saveChanges()));
+ connect(settingsButton, SIGNAL(clicked()),
this, SLOT(settingsButtonClicked()));
connect(dictListWidget, SIGNAL(itemClicked(QListWidgetItem*)),
this, SLOT(itemSelected(QListWidgetItem*)));
+ connect(dictListWidget, SIGNAL(itemChanged(QListWidgetItem*)),
+ this, SLOT(changed()));
+
refreshDictsList();
#ifndef Q_WS_MAEMO_5
setMinimumSize(500,300);
+ closeButton = new QPushButton(tr("Save"));
+ buttonGroup->addWidget(closeButton);
+ connect(closeButton, SIGNAL(clicked()), this, SLOT(save()));
#endif
}
}
void DictManagerWidget::showEvent(QShowEvent *e) {
+ _changed = false;
+ #ifndef Q_WS_MAEMO_5
+ _save = false;
+ #endif
refreshDictsList();
QWidget::showEvent(e);
}
-void DictManagerWidget::hideEvent(QHideEvent *e)
-{
- QList<CommonDictInterface*> checkedDicts;
+void DictManagerWidget::saveChanges() {
+
+ #ifndef Q_WS_MAEMO_5
+ if(_save) {
+ #else
+ if(_changed &&
+ QMessageBox::question(this, "Save", "Do you want to save changes?",
+ QMessageBox::Save, QMessageBox::Cancel) == QMessageBox::Save) {
+ #endif
+ QList<CommonDictInterface*> checkedDicts;
- for(int i=0; i<dictListWidget->count(); i++) {
- QListWidgetItem* item = dictListWidget->item(i);
- if(item->checkState() == Qt::Checked) {
- checkedDicts.push_back(dictsHash[item]);
+ for(int i=0; i<dictListWidget->count(); i++) {
+ QListWidgetItem* item = dictListWidget->item(i);
+ if(item->checkState() == Qt::Checked) {
+ checkedDicts.push_back(dictsHash[item]);
+ }
}
+ emit selectedDictionaries(checkedDicts);
}
- Q_EMIT selectedDictionaries(checkedDicts);
+ _changed = false;
+}
+void DictManagerWidget::hideEvent(QHideEvent *e)
+{
+ saveChanges();
QWidget::hideEvent(e);
}
}
void DictManagerWidget::removeButtonClicked() {
- QList<QListWidgetItem*> selected = dictListWidget->selectedItems();
- if(selected.count() > 0) {
- Q_EMIT removeDictionary(dictsHash[selected[0]]);
- refreshDictsList();
- }
+ if(QMessageBox::question(this, "Remove dictionary",
+ "Do you want to remove selected dictionary?",
+ QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) {
+ QList<QListWidgetItem*> selected = dictListWidget->selectedItems();
+ if(selected.count() > 0) {
+ emit removeDictionary(dictsHash[selected[0]]);
+ refreshDictsList();
+ }
+ }
}
void DictManagerWidget::settingsButtonClicked() {
refreshDictsList();
}
}
+
+
+void DictManagerWidget::changed() {
+ _changed=true;
+}
+
+
+#ifndef Q_WS_MAEMO_5
+ void DictManagerWidget::save() {
+ _save = true;
+ hide();
+ }
+#endif