From: Bartosz Szatkowski Date: Mon, 23 Aug 2010 11:58:28 +0000 (+0200) Subject: Added saving changes before proceed to new dialog X-Git-Tag: 0.4~23 X-Git-Url: http://git.maemo.org/git/?p=mdictionary;a=commitdiff_plain;h=d2bd1bae703c6705bb678669896a20c3c66a6175 Added saving changes before proceed to new dialog --- diff --git a/trunk/src/base/gui/DictManagerWidget.cpp b/trunk/src/base/gui/DictManagerWidget.cpp index 19133b5..8059804 100644 --- a/trunk/src/base/gui/DictManagerWidget.cpp +++ b/trunk/src/base/gui/DictManagerWidget.cpp @@ -62,18 +62,24 @@ 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(itemActivated(QListWidgetItem*)), + connect(dictListWidget, SIGNAL(itemChanged(QListWidgetItem*)), this, SLOT(changed())); refreshDictsList(); @@ -120,12 +126,13 @@ void DictManagerWidget::refreshDictsList() { void DictManagerWidget::showEvent(QShowEvent *e) { _changed = false; + _save = false; refreshDictsList(); QWidget::showEvent(e); } -void DictManagerWidget::hideEvent(QHideEvent *e) -{ +void DictManagerWidget::saveChanges() { + #ifndef Q_WS_MAEMO_5 if(_save) { #else @@ -145,6 +152,11 @@ void DictManagerWidget::hideEvent(QHideEvent *e) } _changed = false; +} + +void DictManagerWidget::hideEvent(QHideEvent *e) +{ + saveChanges(); QWidget::hideEvent(e); } @@ -170,11 +182,15 @@ void DictManagerWidget::itemSelected(QListWidgetItem *) { } void DictManagerWidget::removeButtonClicked() { - QList selected = dictListWidget->selectedItems(); - if(selected.count() > 0) { - 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() { diff --git a/trunk/src/base/gui/DictManagerWidget.h b/trunk/src/base/gui/DictManagerWidget.h index fa80275..ab5547b 100644 --- a/trunk/src/base/gui/DictManagerWidget.h +++ b/trunk/src/base/gui/DictManagerWidget.h @@ -88,6 +88,9 @@ private Q_SLOTS: //! Each change of state (that needs to be saved) should call this to indicate state change void changed(); + //! saves changes + void saveChanges(); + private: QPushButton* addNewDictButton; QPushButton* removeDictButton;