diff options
Diffstat (limited to 'src/corelib/io/qfsfileengine_unix.cpp')
-rw-r--r-- | src/corelib/io/qfsfileengine_unix.cpp | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index bbd262e2f9..90ad0126d6 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -82,12 +82,11 @@ static inline int openModeToOpenFlags(QIODevice::OpenMode mode) if (QFSFileEnginePrivate::openModeCanCreate(mode)) oflags |= QT_OPEN_CREAT; - if (mode & QFile::Append) { + if (mode & QFile::Truncate) + oflags |= QT_OPEN_TRUNC; + + if (mode & QFile::Append) oflags |= QT_OPEN_APPEND; - } else if (mode & QFile::WriteOnly) { - if ((mode & QFile::Truncate) || !(mode & QFile::ReadOnly)) - oflags |= QT_OPEN_TRUNC; - } if (mode & QFile::NewOnly) oflags |= QT_OPEN_EXCL; @@ -531,29 +530,32 @@ QByteArray QFSFileEngine::id() const QString QFSFileEngine::fileName(FileName file) const { Q_D(const QFSFileEngine); - if (file == BundleName) { + switch (file) { + case BundleName: return QFileSystemEngine::bundleName(d->fileEntry); - } else if (file == BaseName) { + case BaseName: return d->fileEntry.fileName(); - } else if (file == PathName) { + case PathName: return d->fileEntry.path(); - } else if (file == AbsoluteName || file == AbsolutePathName) { + case AbsoluteName: + case AbsolutePathName: { QFileSystemEntry entry(QFileSystemEngine::absoluteName(d->fileEntry)); - if (file == AbsolutePathName) { - return entry.path(); - } - return entry.filePath(); - } else if (file == CanonicalName || file == CanonicalPathName) { + return file == AbsolutePathName ? entry.path() : entry.filePath(); + } + case CanonicalName: + case CanonicalPathName: { QFileSystemEntry entry(QFileSystemEngine::canonicalName(d->fileEntry, d->metaData)); - if (file == CanonicalPathName) - return entry.path(); - return entry.filePath(); - } else if (file == LinkName) { + return file == CanonicalPathName ? entry.path() : entry.filePath(); + } + case LinkName: if (d->isSymlink()) { QFileSystemEntry entry = QFileSystemEngine::getLinkTarget(d->fileEntry, d->metaData); return entry.filePath(); } return QString(); + case DefaultName: + case NFileNames: + break; } return d->fileEntry.filePath(); } |