Message ID | 20110525131854.GF2276@sepie.suse.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 25.5.2011 15:18, Michal Marek wrote: > The following patch avoids the data loss if the configuration cannot be > saved. > > Michal > > Subject: [PATCH] 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> I completely forgot about this patch. It's applied now and will be in 3.1. Michal > > diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc > index c2796b8..92bf576 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 91677d9..3715b3e 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); > -- > To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Michal, On Mon, Jul 25, 2011 at 9:53 AM, Michal Marek <mmarek@suse.cz> wrote: > On 25.5.2011 15:18, Michal Marek wrote: >> >> The following patch avoids the data loss if the configuration cannot be >> saved. >> >> Michal >> >> Subject: [PATCH] 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> > > I completely forgot about this patch. It's applied now and will be in 3.1. > gni ? isn't this issue already fixed by https://patchwork.kernel.org/patch/812862/ which went in v3.0 ?? - Arnaud > Michal >> >> diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc >> index c2796b8..92bf576 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 91677d9..3715b3e 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); >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 25.7.2011 17:25, Arnaud Lacombe wrote: > Hi Michal, > > On Mon, Jul 25, 2011 at 9:53 AM, Michal Marek <mmarek@suse.cz> wrote: >> On 25.5.2011 15:18, Michal Marek wrote: >>> >>> The following patch avoids the data loss if the configuration cannot be >>> saved. >>> >>> Michal >>> >>> Subject: [PATCH] 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> >> >> I completely forgot about this patch. It's applied now and will be in 3.1. >> > gni ? isn't this issue already fixed by > https://patchwork.kernel.org/patch/812862/ which went in v3.0 ?? That's the prerequisite. This patch makes sure that xconfig does not exit if the save failed. Michal -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc index c2796b8..92bf576 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 91677d9..3715b3e 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);