aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/utils/fileutils.cpp
diff options
context:
space:
mode:
authorhjk <[email protected]>2021-05-31 18:20:46 +0200
committerhjk <[email protected]>2021-06-01 14:24:52 +0000
commitc2bc7b8d3c4a7d3c497517c23bc5b45722a217ab (patch)
tree977bdccb018daa6b195f0c4dee92e914c7d0f077 /src/libs/utils/fileutils.cpp
parent2672bb2930367b375a63e36d8a4b26999d21b4da (diff)
Utils: Introduce FilePath::ensureWritableDir()
Combine the test and potential creation in one operation to potentially reduce the number of remote calls. Change-Id: I06ffa1256593afec430eb35605ba3b249f1da97c Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/libs/utils/fileutils.cpp')
-rw-r--r--src/libs/utils/fileutils.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 7353693e16d..03c912e01f7 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -793,6 +793,18 @@ bool FilePath::isWritableDir() const
return exists() && fi.isDir() && fi.isWritable();
}
+bool FilePath::ensureWritableDir() const
+{
+ if (needsDevice()) {
+ QTC_ASSERT(s_deviceHooks.ensureWritableDir, return false);
+ return s_deviceHooks.ensureWritableDir(*this);
+ }
+ const QFileInfo fi{m_data};
+ if (exists() && fi.isDir() && fi.isWritable())
+ return true;
+ return QDir().mkpath(m_data);
+}
+
bool FilePath::isExecutableFile() const
{
if (needsDevice()) {