summaryrefslogtreecommitdiffstats
path: root/src/libs/kdtools
diff options
context:
space:
mode:
authorKatja Marttila <katja.marttila@qt.io>2018-06-04 13:07:45 +0300
committerKatja Marttila <katja.marttila@qt.io>2018-06-06 10:50:59 +0300
commitcf8d5b9a650cc413dde79cf7d72da407c8993ddc (patch)
tree2d56955b2471facc250229ab92be1bfb2a62d176 /src/libs/kdtools
parent83cc3b6b88e40353cd0e03e88a6fe1abeba038d5 (diff)
parent28316fbb7efb95f7d0a3cdee4f601f1190f598aa (diff)
Merge remote-tracking branch 'origin/3.0' into master
Diffstat (limited to 'src/libs/kdtools')
-rw-r--r--src/libs/kdtools/filedownloader.cpp13
-rw-r--r--src/libs/kdtools/filedownloader.h1
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;