aboutsummaryrefslogtreecommitdiff
path: root/lib/jobs/downloadfilejob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/jobs/downloadfilejob.cpp')
-rw-r--r--lib/jobs/downloadfilejob.cpp61
1 files changed, 27 insertions, 34 deletions
diff --git a/lib/jobs/downloadfilejob.cpp b/lib/jobs/downloadfilejob.cpp
index 2bf9dd8f..12aacb8b 100644
--- a/lib/jobs/downloadfilejob.cpp
+++ b/lib/jobs/downloadfilejob.cpp
@@ -1,23 +1,24 @@
#include "downloadfilejob.h"
-#include <QtNetwork/QNetworkReply>
#include <QtCore/QFile>
#include <QtCore/QTemporaryFile>
+#include <QtNetwork/QNetworkReply>
using namespace QMatrixClient;
class DownloadFileJob::Private
{
public:
- Private() : tempFile(new QTemporaryFile()) { }
+ Private() : tempFile(new QTemporaryFile()) {}
- explicit Private(const QString& localFilename)
- : targetFile(new QFile(localFilename))
- , tempFile(new QFile(targetFile->fileName() + ".qmcdownload"))
- { }
+ explicit Private(const QString& localFilename)
+ : targetFile(new QFile(localFilename)),
+ tempFile(new QFile(targetFile->fileName() + ".qmcdownload"))
+ {
+ }
- QScopedPointer<QFile> targetFile;
- QScopedPointer<QFile> tempFile;
+ QScopedPointer<QFile> targetFile;
+ QScopedPointer<QFile> tempFile;
};
QUrl DownloadFileJob::makeRequestUrl(QUrl baseUrl, const QUrl& mxcUri)
@@ -28,8 +29,8 @@ QUrl DownloadFileJob::makeRequestUrl(QUrl baseUrl, const QUrl& mxcUri)
DownloadFileJob::DownloadFileJob(const QString& serverName,
const QString& mediaId,
const QString& localFilename)
- : GetContentJob(serverName, mediaId)
- , d(localFilename.isEmpty() ? new Private : new Private(localFilename))
+ : GetContentJob(serverName, mediaId),
+ d(localFilename.isEmpty() ? new Private : new Private(localFilename))
{
setObjectName("DownloadFileJob");
}
@@ -41,16 +42,15 @@ QString DownloadFileJob::targetFileName() const
void DownloadFileJob::beforeStart(const ConnectionData*)
{
- if (d->targetFile && !d->targetFile->isReadable() &&
- !d->targetFile->open(QIODevice::WriteOnly))
- {
- qCWarning(JOBS) << "Couldn't open the file"
- << d->targetFile->fileName() << "for writing";
+ if (d->targetFile && !d->targetFile->isReadable()
+ && !d->targetFile->open(QIODevice::WriteOnly)) {
+ qCWarning(JOBS) << "Couldn't open the file" << d->targetFile->fileName()
+ << "for writing";
setStatus(FileError, "Could not open the target file for writing");
return;
}
- if (!d->tempFile->isReadable() && !d->tempFile->open(QIODevice::WriteOnly))
- {
+ if (!d->tempFile->isReadable()
+ && !d->tempFile->open(QIODevice::WriteOnly)) {
qCWarning(JOBS) << "Couldn't open the temporary file"
<< d->tempFile->fileName() << "for writing";
setStatus(FileError, "Could not open the temporary download file");
@@ -61,16 +61,14 @@ void DownloadFileJob::beforeStart(const ConnectionData*)
void DownloadFileJob::afterStart(const ConnectionData*, QNetworkReply* reply)
{
- connect(reply, &QNetworkReply::metaDataChanged, this, [this,reply] {
+ connect(reply, &QNetworkReply::metaDataChanged, this, [this, reply] {
if (!status().good())
return;
auto sizeHeader = reply->header(QNetworkRequest::ContentLengthHeader);
- if (sizeHeader.isValid())
- {
+ if (sizeHeader.isValid()) {
auto targetSize = sizeHeader.value<qint64>();
if (targetSize != -1)
- if (!d->tempFile->resize(targetSize))
- {
+ if (!d->tempFile->resize(targetSize)) {
qCWarning(JOBS) << "Failed to allocate" << targetSize
<< "bytes for" << d->tempFile->fileName();
setStatus(FileError,
@@ -78,16 +76,15 @@ void DownloadFileJob::afterStart(const ConnectionData*, QNetworkReply* reply)
}
}
});
- connect(reply, &QIODevice::readyRead, this, [this,reply] {
+ connect(reply, &QIODevice::readyRead, this, [this, reply] {
if (!status().good())
return;
auto bytes = reply->read(reply->bytesAvailable());
if (!bytes.isEmpty())
d->tempFile->write(bytes);
else
- qCWarning(JOBS)
- << "Unexpected empty chunk when downloading from"
- << reply->url() << "to" << d->tempFile->fileName();
+ qCWarning(JOBS) << "Unexpected empty chunk when downloading from"
+ << reply->url() << "to" << d->tempFile->fileName();
});
}
@@ -100,22 +97,18 @@ void DownloadFileJob::beforeAbandon(QNetworkReply*)
BaseJob::Status DownloadFileJob::parseReply(QNetworkReply*)
{
- if (d->targetFile)
- {
+ if (d->targetFile) {
d->targetFile->close();
- if (!d->targetFile->remove())
- {
+ if (!d->targetFile->remove()) {
qCWarning(JOBS) << "Failed to remove the target file placeholder";
return { FileError, "Couldn't finalise the download" };
}
- if (!d->tempFile->rename(d->targetFile->fileName()))
- {
+ if (!d->tempFile->rename(d->targetFile->fileName())) {
qCWarning(JOBS) << "Failed to rename" << d->tempFile->fileName()
<< "to" << d->targetFile->fileName();
return { FileError, "Couldn't finalise the download" };
}
- }
- else
+ } else
d->tempFile->close();
qCDebug(JOBS) << "Saved a file as" << targetFileName();
return Success;