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.
This commit is contained in:
parent
7192a9313e
commit
58114b3476
|
@ -13,6 +13,7 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <Alert.h>
|
||||||
#include <Catalog.h>
|
#include <Catalog.h>
|
||||||
|
|
||||||
#include <package/DownloadFileRequest.h>
|
#include <package/DownloadFileRequest.h>
|
||||||
|
@ -113,9 +114,16 @@ public:
|
||||||
try {
|
try {
|
||||||
fPackageManager->Install(&packageName, 1);
|
fPackageManager->Install(&packageName, 1);
|
||||||
} catch (BFatalErrorException ex) {
|
} catch (BFatalErrorException ex) {
|
||||||
fprintf(stderr, "Fatal error occurred while installing package "
|
_SetDownloadedPackagesState(NONE);
|
||||||
"%s: %s (%s)\n", packageName, ex.Message().String(),
|
BString errorString;
|
||||||
|
errorString.SetToFormat(
|
||||||
|
"Fatal error occurred while installing package %s: "
|
||||||
|
"%s (%s)\n", packageName, ex.Message().String(),
|
||||||
ex.Details().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();
|
return ex.Error();
|
||||||
} catch (BAbortedByUserException ex) {
|
} catch (BAbortedByUserException ex) {
|
||||||
_SetDownloadedPackagesState(NONE);
|
_SetDownloadedPackagesState(NONE);
|
||||||
|
@ -207,9 +215,15 @@ public:
|
||||||
try {
|
try {
|
||||||
fPackageManager->Uninstall(&packageName, 1);
|
fPackageManager->Uninstall(&packageName, 1);
|
||||||
} catch (BFatalErrorException ex) {
|
} catch (BFatalErrorException ex) {
|
||||||
fprintf(stderr, "Fatal error occurred while uninstalling package "
|
BString errorString;
|
||||||
"%s: %s (%s)\n", packageName, ex.Message().String(),
|
errorString.SetToFormat(
|
||||||
|
"Fatal error occurred while uninstalling package %s: "
|
||||||
|
"%s (%s)\n", packageName, ex.Message().String(),
|
||||||
ex.Details().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();
|
return ex.Error();
|
||||||
} catch (BAbortedByUserException ex) {
|
} catch (BAbortedByUserException ex) {
|
||||||
return B_OK;
|
return B_OK;
|
||||||
|
|
Loading…
Reference in New Issue