summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qfsfileengine_win.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2017-07-19 09:47:29 +0200
committerSimon Hausmann <simon.hausmann@qt.io>2017-07-19 09:47:29 +0200
commit407302fb1b823fbe0ae09c031862f87b252489e6 (patch)
treef192faf40b9009ee6a884ed4b7d0b3942b6810ac /src/corelib/io/qfsfileengine_win.cpp
parent0f30dcaea8129092142fe87d2d14209c75363f66 (diff)
parentad3b41a06d9ba7219c79b5548c5b11698787288d (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts: src/corelib/io/qwindowspipewriter.cpp src/widgets/styles/qcommonstyle.cpp Change-Id: I0d33efdc4dc256e234abc490a18ccda72cd1d9e6
Diffstat (limited to 'src/corelib/io/qfsfileengine_win.cpp')
-rw-r--r--src/corelib/io/qfsfileengine_win.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/corelib/io/qfsfileengine_win.cpp b/src/corelib/io/qfsfileengine_win.cpp
index d749e32447..351c4601d1 100644
--- a/src/corelib/io/qfsfileengine_win.cpp
+++ b/src/corelib/io/qfsfileengine_win.cpp
@@ -285,7 +285,7 @@ qint64 QFSFileEnginePrivate::nativeSize() const
filled = doStat(QFileSystemMetaData::SizeAttribute);
if (!filled) {
- thatQ->setError(QFile::UnspecifiedError, qt_error_string(errno));
+ thatQ->setError(QFile::UnspecifiedError, QSystemError::stdString());
return 0;
}
return metaData.size();
@@ -352,7 +352,7 @@ qint64 QFSFileEnginePrivate::nativeRead(char *data, qint64 maxlen)
if (fh || fd != -1) {
// stdio / stdlib mode.
if (fh && nativeIsSequential() && feof(fh)) {
- q->setError(QFile::ReadError, qt_error_string(int(errno)));
+ q->setError(QFile::ReadError, QSystemError::stdString());
return -1;
}
@@ -751,6 +751,24 @@ QAbstractFileEngine::FileFlags QFSFileEngine::fileFlags(QAbstractFileEngine::Fil
return ret;
}
+QByteArray QFSFileEngine::id() const
+{
+ Q_D(const QFSFileEngine);
+ HANDLE h = d->fileHandle;
+ if (h == INVALID_HANDLE_VALUE) {
+ int localFd = d->fd;
+ if (d->fh && d->fileEntry.isEmpty())
+ localFd = QT_FILENO(d->fh);
+ if (localFd != -1)
+ h = HANDLE(_get_osfhandle(localFd));
+ }
+ if (h != INVALID_HANDLE_VALUE)
+ return QFileSystemEngine::id(h);
+
+ // file is not open, try by path
+ return QFileSystemEngine::id(d->fileEntry);
+}
+
QString QFSFileEngine::fileName(FileName file) const
{
Q_D(const QFSFileEngine);