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);