forked from qt-creator/qt-creator
Update mime database from Qt
qtbase/40dd38813cba4bc8425e846f220e358ffb0d19ac QMimeDatabase: don't stat() something that isn't a local file Change-Id: Id9af310b19649897c4bbaff0c5fb81e0f390bc20 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -507,10 +507,12 @@ MimeType MimeDatabasePrivate::mimeTypeForData(QIODevice *device)
|
|||||||
}
|
}
|
||||||
|
|
||||||
MimeType MimeDatabasePrivate::mimeTypeForFile(const QString &fileName,
|
MimeType MimeDatabasePrivate::mimeTypeForFile(const QString &fileName,
|
||||||
[[maybe_unused]] const QFileInfo *fileInfo,
|
const QFileInfo &fileInfo,
|
||||||
MimeDatabase::MatchMode mode)
|
MimeDatabase::MatchMode mode)
|
||||||
{
|
{
|
||||||
|
if (false) {
|
||||||
#ifdef Q_OS_UNIX
|
#ifdef Q_OS_UNIX
|
||||||
|
} else if (fileInfo.isNativePath()) {
|
||||||
// Cannot access statBuf.st_mode from the filesystem engine, so we have to stat again.
|
// Cannot access statBuf.st_mode from the filesystem engine, so we have to stat again.
|
||||||
// In addition we want to follow symlinks.
|
// In addition we want to follow symlinks.
|
||||||
const QByteArray nativeFilePath = QFile::encodeName(fileName);
|
const QByteArray nativeFilePath = QFile::encodeName(fileName);
|
||||||
@@ -527,11 +529,10 @@ MimeType MimeDatabasePrivate::mimeTypeForFile(const QString &fileName,
|
|||||||
if (S_ISSOCK(statBuffer.st_mode))
|
if (S_ISSOCK(statBuffer.st_mode))
|
||||||
return mimeTypeForName(QStringLiteral("inode/socket"));
|
return mimeTypeForName(QStringLiteral("inode/socket"));
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
const bool isDirectory = fileInfo ? fileInfo->isDir() : QFileInfo(fileName).isDir();
|
|
||||||
if (isDirectory)
|
|
||||||
return mimeTypeForName(directoryMimeType());
|
|
||||||
#endif
|
#endif
|
||||||
|
} else if (fileInfo.isDir()) {
|
||||||
|
return mimeTypeForName(directoryMimeType());
|
||||||
|
}
|
||||||
|
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case MimeDatabase::MatchDefault:
|
case MimeDatabase::MatchDefault:
|
||||||
@@ -680,7 +681,7 @@ MimeType MimeDatabase::mimeTypeForFile(const QFileInfo &fileInfo, MatchMode mode
|
|||||||
d->checkInitPhase(fileInfo.filePath());
|
d->checkInitPhase(fileInfo.filePath());
|
||||||
QMutexLocker locker(&d->mutex);
|
QMutexLocker locker(&d->mutex);
|
||||||
|
|
||||||
return d->mimeTypeForFile(fileInfo.filePath(), &fileInfo, mode);
|
return d->mimeTypeForFile(fileInfo.filePath(), fileInfo, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@@ -696,7 +697,8 @@ MimeType MimeDatabase::mimeTypeForFile(const QString &fileName, MatchMode mode)
|
|||||||
if (mode == MatchExtension) {
|
if (mode == MatchExtension) {
|
||||||
return d->mimeTypeForFileExtension(fileName);
|
return d->mimeTypeForFileExtension(fileName);
|
||||||
} else {
|
} else {
|
||||||
return d->mimeTypeForFile(fileName, nullptr, mode);
|
QFileInfo fileInfo(fileName);
|
||||||
|
return d->mimeTypeForFile(fileName, fileInfo, mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -64,7 +64,7 @@ public:
|
|||||||
MimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device);
|
MimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device);
|
||||||
MimeType mimeTypeForFileExtension(const QString &fileName);
|
MimeType mimeTypeForFileExtension(const QString &fileName);
|
||||||
MimeType mimeTypeForData(QIODevice *device);
|
MimeType mimeTypeForData(QIODevice *device);
|
||||||
MimeType mimeTypeForFile(const QString &fileName, const QFileInfo *fileInfo, MimeDatabase::MatchMode mode);
|
MimeType mimeTypeForFile(const QString &fileName, const QFileInfo &fileInfo, MimeDatabase::MatchMode mode);
|
||||||
MimeType findByData(const QByteArray &data, int *priorityPtr);
|
MimeType findByData(const QByteArray &data, int *priorityPtr);
|
||||||
QStringList mimeTypeForFileName(const QString &fileName);
|
QStringList mimeTypeForFileName(const QString &fileName);
|
||||||
MimeGlobMatchResult findByFileName(const QString &fileName);
|
MimeGlobMatchResult findByFileName(const QString &fileName);
|
||||||
|
Reference in New Issue
Block a user