diff options
author | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2022-10-25 13:52:04 +0200 |
---|---|---|
committer | Marcus Tillmanns <marcus.tillmanns@qt.io> | 2022-10-25 13:31:10 +0000 |
commit | d46a0797444df98aa3ae626599e4afea89573367 (patch) | |
tree | 06d8acbf2df95ec9d369c2d6138964086cabf62e /src | |
parent | b9062e9c80373b6af43110a986eb60364dbbd2d2 (diff) | |
download | qt-creator-d46a0797444df98aa3ae626599e4afea89573367.tar.gz |
Utils: Fix copyFile to include permissions
Also adds line breaks to info output.
Change-Id: I314ab87a47d7bd7541acb6a1553238fcfc27099d
Reviewed-by: David Schulz <david.schulz@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/libs/utils/filepath.cpp | 11 | ||||
-rw-r--r-- | src/plugins/remotelinux/linuxdevice.cpp | 4 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp index 4c816adb47..55d5ca89a0 100644 --- a/src/libs/utils/filepath.cpp +++ b/src/libs/utils/filepath.cpp @@ -1264,7 +1264,16 @@ bool FilePath::copyFile(const FilePath &target) const const std::optional<QByteArray> ba = fileContents(); if (!ba) return false; - return target.writeFileContents(*ba); + const auto perms = permissions(); + if (!target.writeFileContents(*ba)) + return false; + + if (!target.setPermissions(perms)) { + target.removeFile(); + return false; + } + + return true; } return fileAccess()->copyFile(*this, target); } diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index bb506b64cd..402109d6d0 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -1458,7 +1458,7 @@ private: const FilePath targetDir = target.parentDir(); if (!m_checkedDirectories.contains(targetDir)) { - emit progress(tr("Creating directory: %1") + emit progress(tr("Creating directory: %1\n") .arg(targetDir.toUserOutput())); if (!targetDir.ensureWritableDir()) { result.m_errorString = tr("Failed."); @@ -1469,7 +1469,7 @@ private: m_checkedDirectories.insert(targetDir); } - emit progress(tr("Copying %1/%2: %3 -> %4") + emit progress(tr("Copying %1/%2: %3 -> %4\n") .arg(m_currentIndex).arg(m_fileCount).arg(source.toUserOutput(), target.toUserOutput())); if (!source.copyFile(target)) { result.m_errorString = tr("Failed."); |