hrev46361 adds 1 changeset to branch 'master' old head: 7192a9313eb0309039096f427d062c97d2119cf5 new head: 58114b347649d1a79bffe93baa10814dac078cec overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=58114b3+%5E7192a93 ---------------------------------------------------------------------------- 58114b3: HaikuDepot: Fix #10115. - Also reset package state in the BFatalErrorException case. - Show actual alerts for fatal install/uninstall errors rather than simply printing them to the console. [ Rene Gollent <rene@xxxxxxxxxxx> ] ---------------------------------------------------------------------------- Revision: hrev46361 Commit: 58114b347649d1a79bffe93baa10814dac078cec URL: http://cgit.haiku-os.org/haiku/commit/?id=58114b3 Author: Rene Gollent <rene@xxxxxxxxxxx> Date: Tue Nov 12 23:13:55 2013 UTC Ticket: https://dev.haiku-os.org/ticket/10115 ---------------------------------------------------------------------------- 1 file changed, 18 insertions(+), 4 deletions(-) src/apps/haiku-depot/PackageManager.cpp | 22 ++++++++++++++++++---- ---------------------------------------------------------------------------- diff --git a/src/apps/haiku-depot/PackageManager.cpp b/src/apps/haiku-depot/PackageManager.cpp index cc7c83b..a28046d 100644 --- a/src/apps/haiku-depot/PackageManager.cpp +++ b/src/apps/haiku-depot/PackageManager.cpp @@ -13,6 +13,7 @@ #include <stdio.h> +#include <Alert.h> #include <Catalog.h> #include <package/DownloadFileRequest.h> @@ -113,9 +114,16 @@ public: try { fPackageManager->Install(&packageName, 1); } catch (BFatalErrorException ex) { - fprintf(stderr, "Fatal error occurred while installing package " - "%s: %s (%s)\n", packageName, ex.Message().String(), + _SetDownloadedPackagesState(NONE); + BString errorString; + errorString.SetToFormat( + "Fatal error occurred while installing package %s: " + "%s (%s)\n", packageName, ex.Message().String(), ex.Details().String()); + BAlert* alert(new(std::nothrow) BAlert(B_TRANSLATE("Fatal error"), + errorString, B_TRANSLATE("Close"))); + if (alert != NULL) + alert->Go(NULL); return ex.Error(); } catch (BAbortedByUserException ex) { _SetDownloadedPackagesState(NONE); @@ -207,9 +215,15 @@ public: try { fPackageManager->Uninstall(&packageName, 1); } catch (BFatalErrorException ex) { - fprintf(stderr, "Fatal error occurred while uninstalling package " - "%s: %s (%s)\n", packageName, ex.Message().String(), + BString errorString; + errorString.SetToFormat( + "Fatal error occurred while uninstalling package %s: " + "%s (%s)\n", packageName, ex.Message().String(), ex.Details().String()); + BAlert* alert(new(std::nothrow) BAlert(B_TRANSLATE("Fatal error"), + errorString, B_TRANSLATE("Close"))); + if (alert != NULL) + alert->Go(NULL); return ex.Error(); } catch (BAbortedByUserException ex) { return B_OK;