From 94ccdec7f35361c64c4b986c97672610972a58fb Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Mon, 23 Aug 2010 11:41:56 +0200 Subject: [PATCH] Added saving confirmation for dictionary list widget --- trunk/src/base/gui/DictManagerWidget.cpp | 30 ++++++++++++++++++++++++------ trunk/src/base/gui/DictManagerWidget.h | 8 ++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/trunk/src/base/gui/DictManagerWidget.cpp b/trunk/src/base/gui/DictManagerWidget.cpp index 6209364..9023f08 100644 --- a/trunk/src/base/gui/DictManagerWidget.cpp +++ b/trunk/src/base/gui/DictManagerWidget.cpp @@ -77,6 +77,9 @@ DictManagerWidget::DictManagerWidget(GUIInterface *parent) : #ifndef Q_WS_MAEMO_5 setMinimumSize(500,300); + closeButton = new QPushButton(tr("Save")); + buttonGroup->addWidget(closeButton); + connect(closeButton, SIGNAL(clicked()), this, SLOT(save())); #endif } @@ -119,15 +122,22 @@ void DictManagerWidget::showEvent(QShowEvent *e) { void DictManagerWidget::hideEvent(QHideEvent *e) { - QList checkedDicts; + #ifndef Q_WS_MAEMO_5 + if(_save) { + #else + if(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); } - emit selectedDictionaries(checkedDicts); QWidget::hideEvent(e); } @@ -168,3 +178,11 @@ void DictManagerWidget::settingsButtonClicked() { refreshDictsList(); } } + + +#ifndef Q_WS_MAEMO_5 + void DictManagerWidget::save() { + _save = true; + hide(); + } +#endif diff --git a/trunk/src/base/gui/DictManagerWidget.h b/trunk/src/base/gui/DictManagerWidget.h index 324ae11..1af98e4 100644 --- a/trunk/src/base/gui/DictManagerWidget.h +++ b/trunk/src/base/gui/DictManagerWidget.h @@ -99,6 +99,14 @@ private: GUIInterface* guiInterface; void refreshDictsList(); + #ifndef Q_WS_MAEMO_5 + QPushButton* closeButton; + QHBoxLayout* footerLayout; + bool _save; + + public Q_SLOTS: + void save(); + #endif }; #endif // DICTMANAGERWIDGET_H -- 1.7.9.5