提交 bac6aa86 编写于 作者: M Michal Marek

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: NHiromu Yakura <hiromu1996@gmail.com>
Signed-off-by: NMichal Marek <mmarek@suse.cz>
上级 eb4cf5a6
...@@ -1478,10 +1478,13 @@ void ConfigMainWindow::loadConfig(void) ...@@ -1478,10 +1478,13 @@ void ConfigMainWindow::loadConfig(void)
ConfigView::updateListAll(); 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!")); QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
return false;
}
return true;
} }
void ConfigMainWindow::saveConfigAs(void) void ConfigMainWindow::saveConfigAs(void)
...@@ -1642,7 +1645,11 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e) ...@@ -1642,7 +1645,11 @@ void ConfigMainWindow::closeEvent(QCloseEvent* e)
mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit")); mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
switch (mb.exec()) { switch (mb.exec()) {
case QMessageBox::Yes: case QMessageBox::Yes:
saveConfig(); if (saveConfig())
e->accept();
else
e->ignore();
break;
case QMessageBox::No: case QMessageBox::No:
e->accept(); e->accept();
break; break;
......
...@@ -311,7 +311,7 @@ public slots: ...@@ -311,7 +311,7 @@ public slots:
void listFocusChanged(void); void listFocusChanged(void);
void goBack(void); void goBack(void);
void loadConfig(void); void loadConfig(void);
void saveConfig(void); bool saveConfig(void);
void saveConfigAs(void); void saveConfigAs(void);
void searchConfig(void); void searchConfig(void);
void showSingleView(void); void showSingleView(void);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册