summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcus Tillmanns <marcus.tillmanns@qt.io>2022-10-25 13:52:04 +0200
committerMarcus Tillmanns <marcus.tillmanns@qt.io>2022-10-25 13:31:10 +0000
commitd46a0797444df98aa3ae626599e4afea89573367 (patch)
tree06d8acbf2df95ec9d369c2d6138964086cabf62e /src
parentb9062e9c80373b6af43110a986eb60364dbbd2d2 (diff)
downloadqt-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.cpp11
-rw-r--r--src/plugins/remotelinux/linuxdevice.cpp4
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.");