diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp index 75478f04670..b7f2f0d6452 100644 --- a/src/corelib/io/qfsfileengine.cpp +++ b/src/corelib/io/qfsfileengine.cpp @@ -524,6 +524,25 @@ bool QFSFileEngine::seek(qint64 pos) return d->nativeSeek(pos); } +/*! + \reimp +*/ +QDateTime QFSFileEngine::fileTime(FileTime time) const +{ + Q_D(const QFSFileEngine); + + if (time == AccessTime) { + // always refresh for the access time + d->metaData.clearFlags(QFileSystemMetaData::AccessTime); + } + + if (d->doStat(QFileSystemMetaData::Times)) + return d->metaData.fileTime(time); + + return QDateTime(); +} + + /*! \internal */ @@ -708,6 +727,7 @@ qint64 QFSFileEnginePrivate::readLineFdFh(char *data, qint64 maxlen) qint64 QFSFileEngine::write(const char *data, qint64 len) { Q_D(QFSFileEngine); + d->metaData.clearFlags(QFileSystemMetaData::Times); // On Windows' stdlib implementation, the results of calling fread and // fwrite are undefined if not called either in sequence, or if preceded diff --git a/src/corelib/io/qfsfileengine_unix.cpp b/src/corelib/io/qfsfileengine_unix.cpp index 9f081e92959..62e613ed145 100644 --- a/src/corelib/io/qfsfileengine_unix.cpp +++ b/src/corelib/io/qfsfileengine_unix.cpp @@ -699,16 +699,6 @@ bool QFSFileEngine::setFileTime(const QDateTime &newDate, FileTime time) #endif } -QDateTime QFSFileEngine::fileTime(FileTime time) const -{ - Q_D(const QFSFileEngine); - - if (d->doStat(QFileSystemMetaData::Times)) - return d->metaData.fileTime(time); - - return QDateTime(); -} - uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) { #if (defined(Q_OS_LINUX) || defined(Q_OS_ANDROID)) && Q_PROCESSOR_WORDSIZE == 4 diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp index 5c6098c3b0b..d749e324470 100644 --- a/src/corelib/io/qfsfileengine_win.cpp +++ b/src/corelib/io/qfsfileengine_win.cpp @@ -947,16 +947,6 @@ bool QFSFileEngine::setFileTime(const QDateTime &newDate, FileTime time) return true; } -QDateTime QFSFileEngine::fileTime(FileTime time) const -{ - Q_D(const QFSFileEngine); - - if (d->doStat(QFileSystemMetaData::Times)) - return d->metaData.fileTime(time); - - return QDateTime(); -} - uchar *QFSFileEnginePrivate::map(qint64 offset, qint64 size, QFile::MemoryMapFlags flags) {