From 803d65dc125d91675e074fa798e88039ddf63cb4 Mon Sep 17 00:00:00 2001 From: Ahmad Samir Date: Sun, 4 Feb 2024 16:15:43 +0200 Subject: [PATCH] QFileSystemMetaData: add is{Readable,Writable,Executable} getters Change-Id: I18cc56435f5e725ad6b80797291cabaf63fc2fb3 Reviewed-by: Thiago Macieira --- src/corelib/io/qfileinfo.cpp | 6 +++--- src/corelib/io/qfilesystemmetadata_p.h | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index c52b42841b..a12a228964 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -969,7 +969,7 @@ bool QFileInfo::isReadable() const Q_D(const QFileInfo); return d->checkAttribute( QFileSystemMetaData::UserReadPermission, - [d]() { return (d->metaData.permissions() & QFile::ReadUser) != 0; }, + [d]() { return d->metaData.isReadable(); }, [d]() { return d->getFileFlags(QAbstractFileEngine::ReadUserPerm); }); } @@ -989,7 +989,7 @@ bool QFileInfo::isWritable() const Q_D(const QFileInfo); return d->checkAttribute( QFileSystemMetaData::UserWritePermission, - [d]() { return (d->metaData.permissions() & QFile::WriteUser) != 0; }, + [d]() { return d->metaData.isWritable(); }, [d]() { return d->getFileFlags(QAbstractFileEngine::WriteUserPerm); }); } @@ -1009,7 +1009,7 @@ bool QFileInfo::isExecutable() const Q_D(const QFileInfo); return d->checkAttribute( QFileSystemMetaData::UserExecutePermission, - [d]() { return (d->metaData.permissions() & QFile::ExeUser) != 0; }, + [d]() { return d->metaData.isExecutable(); }, [d]() { return d->getFileFlags(QAbstractFileEngine::ExeUserPerm); }); } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index cb19b98c33..3e4d06e761 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -191,6 +191,10 @@ public: uint groupId() const; uint ownerId(QAbstractFileEngine::FileOwner owner) const; + bool isReadable() const { return permissions().testAnyFlags(QFile::ReadUser); } + bool isWritable() const { return permissions().testAnyFlags(QFile::WriteUser); } + bool isExecutable() const { return permissions().testAnyFlags(QFile::ExeUser); } + #ifdef Q_OS_UNIX void fillFromStatxBuf(const struct statx &statBuffer); void fillFromStatBuf(const QT_STATBUF &statBuffer);