diff --git a/interface/src/ui/AssetUploadDialogFactory.cpp b/interface/src/ui/AssetUploadDialogFactory.cpp index 16d966fe66..e163947c7c 100644 --- a/interface/src/ui/AssetUploadDialogFactory.cpp +++ b/interface/src/ui/AssetUploadDialogFactory.cpp @@ -131,6 +131,9 @@ void AssetUploadDialogFactory::handleUploadFinished(AssetUpload* upload, const Q case AssetUpload::TooLarge: additionalError = "The uploaded content was too large and could not be stored in the asset-server."; break; + case AssetUpload::ErrorLoadingFile: + additionalError = "The file could not be opened. Please check your permissions and try again."; + break; default: // not handled, do not show a message box return; @@ -139,6 +142,8 @@ void AssetUploadDialogFactory::handleUploadFinished(AssetUpload* upload, const Q // display a message box with the error showErrorDialog(QFileInfo(upload->getFilename()).fileName(), additionalError); } + + upload->deleteLater(); } void AssetUploadDialogFactory::showErrorDialog(const QString& filename, const QString& additionalError) { diff --git a/libraries/networking/src/AssetUpload.cpp b/libraries/networking/src/AssetUpload.cpp index c9f5b804d4..780d062084 100644 --- a/libraries/networking/src/AssetUpload.cpp +++ b/libraries/networking/src/AssetUpload.cpp @@ -57,5 +57,11 @@ void AssetUpload::start() { emit finished(this, hash); } }); + } else { + // we couldn't open the file - set the error result + _result = ErrorLoadingFile; + + // emit that we are done + emit finished(this, QString()); } } diff --git a/libraries/networking/src/AssetUpload.h b/libraries/networking/src/AssetUpload.h index f55f4f9b71..a678c0dc7e 100644 --- a/libraries/networking/src/AssetUpload.h +++ b/libraries/networking/src/AssetUpload.h @@ -28,7 +28,8 @@ public: Success = 0, Timeout, TooLarge, - PermissionDenied + PermissionDenied, + ErrorLoadingFile }; AssetUpload(QObject* parent, const QString& filename);