summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qfileinfo.cpp
diff options
context:
space:
mode:
authorThomas Zander <t.zander@nokia.com>2010-09-10 15:15:43 +0200
committerThomas Zander <t.zander@nokia.com>2010-09-10 15:15:43 +0200
commitcc23ac99d68af5c9bf537e5451b7ee7c7698e954 (patch)
treefe91ec2dd40894369ce0b76f9c74c2e140765486 /src/corelib/io/qfileinfo.cpp
parent69b8cf630e9cc83cd678814bf88495c7fbb438f4 (diff)
Move resolving of user/group name to the engine.
Reviewed-by: João Abecasis
Diffstat (limited to 'src/corelib/io/qfileinfo.cpp')
-rw-r--r--src/corelib/io/qfileinfo.cpp25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp
index 68f1f55b4e..d49ee74e5e 100644
--- a/src/corelib/io/qfileinfo.cpp
+++ b/src/corelib/io/qfileinfo.cpp
@@ -101,10 +101,21 @@ QString QFileInfoPrivate::getFileName(QAbstractFileEngine::FileName name) const
QString QFileInfoPrivate::getFileOwner(QAbstractFileEngine::FileOwner own) const
{
- Q_ASSERT(fileEngine); // should never be called when using the native FS
if (cache_enabled && !fileOwners[(int)own].isNull())
return fileOwners[(int)own];
- QString ret = fileEngine->owner(own);
+ QString ret;
+ if (fileEngine == 0) {
+ switch (own) {
+ case QAbstractFileEngine::OwnerUser:
+ ret = QFileSystemEngine::resolveUserName(fileEntry, metaData);
+ break;
+ case QAbstractFileEngine::OwnerGroup:
+ ret = QFileSystemEngine::resolveGroupName(fileEntry, metaData);
+ break;
+ }
+ } else {
+ ret = fileEngine->owner(own);
+ }
if (ret.isNull())
ret = QLatin1String("");
if (cache_enabled)
@@ -1078,11 +1089,6 @@ QString QFileInfo::owner() const
Q_D(const QFileInfo);
if (d->isDefaultConstructed)
return QLatin1String("");
- if (d->fileEngine == 0) {
- if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::UserName))
- QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::UserName);
- return d->metaData.user();
- }
return d->getFileOwner(QAbstractFileEngine::OwnerUser);
}
@@ -1122,11 +1128,6 @@ QString QFileInfo::group() const
Q_D(const QFileInfo);
if (d->isDefaultConstructed)
return QLatin1String("");
- if (d->fileEngine == 0) {
- if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::GroupName))
- QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::GroupName);
- return d->metaData.group();
- }
return d->getFileOwner(QAbstractFileEngine::OwnerGroup);
}