forked from qt-creator/qt-creator
Utils: add permissions() to FilePath
Change-Id: I89082550a4f053c400d13a34df4f9c09c65bc326 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -1378,6 +1378,15 @@ QDateTime FilePath::lastModified() const
|
||||
return toFileInfo().lastModified();
|
||||
}
|
||||
|
||||
QFile::Permissions FilePath::permissions() const
|
||||
{
|
||||
if (needsDevice()) {
|
||||
QTC_ASSERT(s_deviceHooks.permissions, return {});
|
||||
return s_deviceHooks.permissions(*this);
|
||||
}
|
||||
return toFileInfo().permissions();
|
||||
}
|
||||
|
||||
bool FilePath::removeFile() const
|
||||
{
|
||||
if (needsDevice()) {
|
||||
|
||||
@@ -83,6 +83,7 @@ public:
|
||||
std::function<QByteArray(const FilePath &, int)> fileContents;
|
||||
std::function<bool(const FilePath &, const QByteArray &)> writeFileContents;
|
||||
std::function<QDateTime(const FilePath &)> lastModified;
|
||||
std::function<QFile::Permissions(const FilePath &)> permissions;
|
||||
};
|
||||
|
||||
class QTCREATOR_UTILS_EXPORT FilePath
|
||||
@@ -161,6 +162,7 @@ public:
|
||||
bool isDir() const;
|
||||
bool isNewerThan(const QDateTime &timeStamp) const;
|
||||
QDateTime lastModified() const;
|
||||
QFile::Permissions permissions() const;
|
||||
bool removeFile() const;
|
||||
bool copyFile(const FilePath &target) const;
|
||||
|
||||
|
||||
@@ -460,6 +460,12 @@ DeviceManager::DeviceManager(bool isInstance) : d(std::make_unique<DeviceManager
|
||||
return device->lastModified(filePath);
|
||||
};
|
||||
|
||||
deviceHooks.permissions = [](const FilePath &filePath) {
|
||||
auto device = DeviceManager::deviceForPath(filePath);
|
||||
QTC_ASSERT(device, return QFile::Permissions());
|
||||
return device->permissions(filePath);
|
||||
};
|
||||
|
||||
FilePath::setDeviceFileHooks(deviceHooks);
|
||||
|
||||
DeviceProcessHooks processHooks;
|
||||
|
||||
@@ -320,6 +320,13 @@ QDateTime IDevice::lastModified(const FilePath &filePath) const
|
||||
return {};
|
||||
}
|
||||
|
||||
QFileDevice::Permissions IDevice::permissions(const Utils::FilePath &filePath) const
|
||||
{
|
||||
Q_UNUSED(filePath);
|
||||
QTC_CHECK(false);
|
||||
return {};
|
||||
}
|
||||
|
||||
void IDevice::runProcess(QtcProcess &process) const
|
||||
{
|
||||
Q_UNUSED(process);
|
||||
|
||||
@@ -252,6 +252,7 @@ public:
|
||||
virtual QByteArray fileContents(const Utils::FilePath &filePath, int limit) const;
|
||||
virtual bool writeFileContents(const Utils::FilePath &filePath, const QByteArray &data) const;
|
||||
virtual QDateTime lastModified(const Utils::FilePath &filePath) const;
|
||||
virtual QFile::Permissions permissions(const Utils::FilePath &filePath) const;
|
||||
virtual void runProcess(Utils::QtcProcess &process) const;
|
||||
virtual Utils::Environment systemEnvironment() const;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user