summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/libs/utils/fileutils.cpp10
-rw-r--r--src/libs/utils/fileutils.h7
2 files changed, 15 insertions, 2 deletions
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index 160d1b9dea..f7b9935465 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -792,6 +792,16 @@ QTextStream &operator<<(QTextStream &s, const FileName &fn)
return s << fn.toString();
}
+#ifdef Q_OS_WIN
+template <>
+void withNTFSPermissions(const std::function<void()> &task)
+{
+ qt_ntfs_permission_lookup++;
+ task();
+ qt_ntfs_permission_lookup--;
+}
+#endif
+
} // namespace Utils
QT_BEGIN_NAMESPACE
diff --git a/src/libs/utils/fileutils.h b/src/libs/utils/fileutils.h
index 3fccf41f31..d3c4044eba 100644
--- a/src/libs/utils/fileutils.h
+++ b/src/libs/utils/fileutils.h
@@ -133,7 +133,7 @@ public:
#ifdef Q_OS_WIN
template <typename T>
-static T withNTFSPermissions(const std::function<T()> &task)
+T withNTFSPermissions(const std::function<T()> &task)
{
qt_ntfs_permission_lookup++;
T result = task();
@@ -141,10 +141,13 @@ static T withNTFSPermissions(const std::function<T()> &task)
return result;
}
+template <>
+QTCREATOR_UTILS_EXPORT void withNTFSPermissions(const std::function<void()> &task);
+
#else // Q_OS_WIN
template <typename T>
-static T withNTFSPermissions(const std::function<T()> &task)
+T withNTFSPermissions(const std::function<T()> &task)
{
return task();
}