X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=trunk%2Fsrc%2Fbase%2Fgui%2FDictManagerWidget.cpp;fp=trunk%2Fsrc%2Fbase%2Fgui%2FDictManagerWidget.cpp;h=157aa2f8139c523cb99bcd2f92b3e29d6075f76b;hb=9660133be5aa271331c77b7c4bf395af184b2f6a;hp=22fe2417b22a557cd84e9d7d4bbfd7b1dbf0c809;hpb=1ca94b3e0480aa432eac4189e46318344e0f604b;p=mdictionary diff --git a/trunk/src/base/gui/DictManagerWidget.cpp b/trunk/src/base/gui/DictManagerWidget.cpp index 22fe241..157aa2f 100644 --- a/trunk/src/base/gui/DictManagerWidget.cpp +++ b/trunk/src/base/gui/DictManagerWidget.cpp @@ -62,21 +62,33 @@ DictManagerWidget::DictManagerWidget(GUIInterface *parent) : 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 } @@ -113,22 +125,39 @@ void DictManagerWidget::refreshDictsList() { } 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 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 checkedDicts; - for(int i=0; icount(); i++) { - QListWidgetItem* item = dictListWidget->item(i); - if(item->checkState() == Qt::Checked) { - checkedDicts.push_back(dictsHash[item]); + for(int i=0; icount(); 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); } @@ -154,11 +183,15 @@ void DictManagerWidget::itemSelected(QListWidgetItem *) { } void DictManagerWidget::removeButtonClicked() { - QList 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 selected = dictListWidget->selectedItems(); + if(selected.count() > 0) { + emit removeDictionary(dictsHash[selected[0]]); + refreshDictsList(); + } + } } void DictManagerWidget::settingsButtonClicked() { @@ -168,3 +201,16 @@ void DictManagerWidget::settingsButtonClicked() { refreshDictsList(); } } + + +void DictManagerWidget::changed() { + _changed=true; +} + + +#ifndef Q_WS_MAEMO_5 + void DictManagerWidget::save() { + _save = true; + hide(); + } +#endif