diff options
Diffstat (limited to 'src/libs/installer/fileutils.cpp')
-rw-r--r-- | src/libs/installer/fileutils.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp index 315a34f5d..be08aa8ad 100644 --- a/src/libs/installer/fileutils.cpp +++ b/src/libs/installer/fileutils.cpp @@ -393,8 +393,11 @@ void QInstaller::moveDirectoryContents(const QString &sourceDir, const QString & while (it.hasNext()) { const QFileInfo i(it.next()); if (i.isDir()) { - moveDirectoryContents(QDir(sourceDir).absoluteFilePath(i.fileName()), - QDir(targetDir).absoluteFilePath(i.fileName())); + // only copy directories that are not the target to avoid loop dir creations + QString newSource = QDir(sourceDir).absoluteFilePath(i.fileName()); + if (QDir(newSource) != QDir(targetDir)) { + moveDirectoryContents(newSource, QDir(targetDir).absoluteFilePath(i.fileName())); + } } else { QFile f(i.filePath()); const QString target = QDir(targetDir).absoluteFilePath(i.fileName()); |