Commit bac6aa865b3dc98e9fbc17f11d4d513d6b0bc435

Authored by Michal Marek
1 parent eb4cf5a642

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>

Showing 2 changed files with 11 additions and 4 deletions Side-by-side Diff

scripts/kconfig/qconf.cc
... ... @@ -1478,10 +1478,13 @@
1478 1478 ConfigView::updateListAll();
1479 1479 }
1480 1480  
1481   -void ConfigMainWindow::saveConfig(void)
  1481 +bool ConfigMainWindow::saveConfig(void)
1482 1482 {
1483   - if (conf_write(NULL))
  1483 + if (conf_write(NULL)) {
1484 1484 QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
  1485 + return false;
  1486 + }
  1487 + return true;
1485 1488 }
1486 1489  
1487 1490 void ConfigMainWindow::saveConfigAs(void)
... ... @@ -1642,7 +1645,11 @@
1642 1645 mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
1643 1646 switch (mb.exec()) {
1644 1647 case QMessageBox::Yes:
1645   - saveConfig();
  1648 + if (saveConfig())
  1649 + e->accept();
  1650 + else
  1651 + e->ignore();
  1652 + break;
1646 1653 case QMessageBox::No:
1647 1654 e->accept();
1648 1655 break;
scripts/kconfig/qconf.h
... ... @@ -311,7 +311,7 @@
311 311 void listFocusChanged(void);
312 312 void goBack(void);
313 313 void loadConfig(void);
314   - void saveConfig(void);
  314 + bool saveConfig(void);
315 315 void saveConfigAs(void);
316 316 void searchConfig(void);
317 317 void showSingleView(void);