diff options
author | Katja Marttila <katja.marttila@qt.io> | 2018-06-04 13:07:45 +0300 |
---|---|---|
committer | Katja Marttila <katja.marttila@qt.io> | 2018-06-06 10:50:59 +0300 |
commit | cf8d5b9a650cc413dde79cf7d72da407c8993ddc (patch) | |
tree | 2d56955b2471facc250229ab92be1bfb2a62d176 /src/libs/kdtools | |
parent | 83cc3b6b88e40353cd0e03e88a6fe1abeba038d5 (diff) | |
parent | 28316fbb7efb95f7d0a3cdee4f601f1190f598aa (diff) |
Merge remote-tracking branch 'origin/3.0' into master
Change-Id: Ia00c88061f15fc9c9517b536609ac3260c0df2ef
Diffstat (limited to 'src/libs/kdtools')
-rw-r--r-- | src/libs/kdtools/filedownloader.cpp | 13 | ||||
-rw-r--r-- | src/libs/kdtools/filedownloader.h | 1 |
2 files changed, 14 insertions, 0 deletions
diff --git a/src/libs/kdtools/filedownloader.cpp b/src/libs/kdtools/filedownloader.cpp index 8032bbe22..5574a3af6 100644 --- a/src/libs/kdtools/filedownloader.cpp +++ b/src/libs/kdtools/filedownloader.cpp @@ -660,6 +660,17 @@ void KDUpdater::FileDownloader::resetCheckSumData() d->m_hash.reset(); } +/*! + Creates a directory structure for \a fileName if it does not exist. +*/ +void KDUpdater::FileDownloader::createDirectoryForFile(const QString fileName) +{ + QFileInfo fileInfo(fileName); + if (!fileInfo.absoluteDir().exists()) { + QDir filePath = fileInfo.absoluteDir(); + filePath.mkdir(filePath.absolutePath()); + } +} /*! Returns a copy of the proxy factory that this FileDownloader object is using to determine the @@ -814,6 +825,7 @@ void KDUpdater::LocalFileDownloader::doDownload() file->open(); d->destination = file; } else { + createDirectoryForFile(d->destFileName); d->destination = new QFile(d->destFileName, this); d->destination->open(QIODevice::ReadWrite | QIODevice::Truncate); } @@ -1466,6 +1478,7 @@ void KDUpdater::HttpDownloader::startDownload(const QUrl &url) file->open(); d->destination = file; } else { + createDirectoryForFile(d->destFileName); d->destination = new QFile(d->destFileName, this); d->destination->open(QIODevice::ReadWrite | QIODevice::Truncate); } diff --git a/src/libs/kdtools/filedownloader.h b/src/libs/kdtools/filedownloader.h index ede20dcfa..10a041fba 100644 --- a/src/libs/kdtools/filedownloader.h +++ b/src/libs/kdtools/filedownloader.h @@ -140,6 +140,7 @@ protected: void addCheckSumData(const QByteArray &data); void addCheckSumData(const char *data, int length); void resetCheckSumData(); + void createDirectoryForFile(const QString fileName); private Q_SLOTS: virtual void doDownload() = 0; |