X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=trunk%2Fsrc%2Fbase%2Fgui%2FDictManagerWidget.cpp;h=5ff23fe32ad690a8b434535f119e3c722b18485f;hb=8518946d17889ac93058ebd210a2a817f01b2e0d;hp=c718908ab7eb6333fa37c3abfa081f276bf23483;hpb=d87d8c6647d042828af8d163fdd39c2f02eab33f;p=mdictionary diff --git a/trunk/src/base/gui/DictManagerWidget.cpp b/trunk/src/base/gui/DictManagerWidget.cpp index c718908..5ff23fe 100644 --- a/trunk/src/base/gui/DictManagerWidget.cpp +++ b/trunk/src/base/gui/DictManagerWidget.cpp @@ -127,7 +127,7 @@ void DictManagerWidget::refreshDictsList() { void DictManagerWidget::showEvent(QShowEvent *e) { _changed = false; #ifndef Q_WS_MAEMO_5 - _save = false; + _save = false; #endif refreshDictsList(); QWidget::showEvent(e); @@ -150,32 +150,39 @@ void DictManagerWidget::saveChanges() { checkedDicts.push_back(dictsHash[item]); } } + _changed = false; emit selectedDictionaries(checkedDicts); } - _changed = false; } void DictManagerWidget::hideEvent(QHideEvent *e) { - qDebug()<<"hide"; saveChanges(); QWidget::hideEvent(e); } void DictManagerWidget::addNewDictButtonClicked() { - CommonDictInterface* selectedPlugin = - DictTypeSelectDialog::addNewDict(guiInterface->getPlugins(),this); - if(selectedPlugin != NULL) { - Settings* settings = - selectedPlugin->dictDialog()->addNewDictionary(this); - - if(settings != NULL) { - CommonDictInterface* newDict = selectedPlugin->getNew(settings); - Q_EMIT addDictionary(newDict); - refreshDictsList(); - } + if(!_changed || QMessageBox::question(this, + "Save", "Do you want to save changes?", + QMessageBox::Save, QMessageBox::Cancel) == QMessageBox::Save) { + _save = true; + saveChanges(); + _save = false; } + + CommonDictInterface* selectedPlugin = + DictTypeSelectDialog::addNewDict(guiInterface->getPlugins(),this); + if(selectedPlugin != NULL) { + Settings* settings = + selectedPlugin->dictDialog()->addNewDictionary(this); + + if(settings != NULL) { + CommonDictInterface* newDict = selectedPlugin->getNew(settings); + Q_EMIT addDictionary(newDict); + } + } + refreshDictsList(); } void DictManagerWidget::itemSelected(QListWidgetItem *) { @@ -189,18 +196,25 @@ void DictManagerWidget::removeButtonClicked() { QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok) { QList selected = dictListWidget->selectedItems(); if(selected.count() > 0) { - emit removeDictionary(dictsHash[selected[0]]); refreshDictsList(); + emit removeDictionary(dictsHash[selected[0]]); } } } void DictManagerWidget::settingsButtonClicked() { - QList selected = dictListWidget->selectedItems(); - if(selected.count() > 0) { - dictsHash[selected[0]]->dictDialog()->changeSettings(this); - refreshDictsList(); + if(!_changed || QMessageBox::question(this, + "Save", "Do you want to save changes?", + QMessageBox::Save, QMessageBox::Cancel) == QMessageBox::Save) { + _save = true; + saveChanges(); + _save = false; } + QList selected = dictListWidget->selectedItems(); + if(selected.count() > 0) { + dictsHash[selected[0]]->dictDialog()->changeSettings(this); + } + refreshDictsList(); }