diff options
author | Michal Marek <mmarek@suse.cz> | 2011-05-25 15:10:25 +0200 |
---|---|---|
committer | Michal Marek <mmarek@suse.cz> | 2011-07-25 15:50:34 +0200 |
commit | bac6aa865b3dc98e9fbc17f11d4d513d6b0bc435 (patch) | |
tree | 26b8c3a2567286ea4da5489ac7df1c51a1f94026 | |
parent | eb4cf5a642f6430cffff7ba5d8d9bd46ea409281 (diff) | |
download | linux-3.10-bac6aa865b3dc98e9fbc17f11d4d513d6b0bc435.tar.gz linux-3.10-bac6aa865b3dc98e9fbc17f11d4d513d6b0bc435.tar.bz2 linux-3.10-bac6aa865b3dc98e9fbc17f11d4d513d6b0bc435.zip |
xconfig: Abort close if configuration cannot be saved
Give the user an opportunity to fix the error or save the configuration
under a different path.
Reported-by: Hiromu Yakura <hiromu1996@gmail.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
-rw-r--r-- | scripts/kconfig/qconf.cc | 13 | ||||
-rw-r--r-- | scripts/kconfig/qconf.h | 2 |
2 files changed, 11 insertions, 4 deletions
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc index 31e01cdbfc6..df274febb3e 100644 --- a/scripts/kconfig/qconf.cc +++ b/scripts/kconfig/qconf.cc @@ -1478,10 +1478,13 @@ void ConfigMainWindow::loadConfig(void) ConfigView::updateListAll(); } -void ConfigMainWindow::saveConfig(void) +bool ConfigMainWindow::saveConfig(void) { - if (conf_write(NULL)) + if (conf_write(NULL)) { QMessageBox::information(this, "qconf", _("Unable to save configuration!")); + return false; + } + return true; } void ConfigMainWindow::saveConfigAs(void) @@ -1642,7 +1645,11 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e) mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit")); switch (mb.exec()) { case QMessageBox::Yes: - saveConfig(); + if (saveConfig()) + e->accept(); + else + e->ignore(); + break; case QMessageBox::No: e->accept(); break; diff --git a/scripts/kconfig/qconf.h b/scripts/kconfig/qconf.h index 91677d900db..3715b3e7212 100644 --- a/scripts/kconfig/qconf.h +++ b/scripts/kconfig/qconf.h @@ -311,7 +311,7 @@ public slots: void listFocusChanged(void); void goBack(void); void loadConfig(void); - void saveConfig(void); + bool saveConfig(void); void saveConfigAs(void); void searchConfig(void); void showSingleView(void); |