diff --git a/src/libs/utils/mimetypes2/mimedatabase.cpp b/src/libs/utils/mimetypes2/mimedatabase.cpp index 8d9fd8a65ca..15ab4dcb9cc 100644 --- a/src/libs/utils/mimetypes2/mimedatabase.cpp +++ b/src/libs/utils/mimetypes2/mimedatabase.cpp @@ -46,6 +46,8 @@ #include "mimeprovider_p.h" #include "mimetype_p.h" +#include "filepath.h" + #include #include #include @@ -827,4 +829,48 @@ QList MimeDatabase::allMimeTypes() const \value MatchContent The file content is used to look for a match */ +MimeType mimeTypeForName(const QString &nameOrAlias) +{ + MimeDatabase mdb; + return mdb.mimeTypeForName(nameOrAlias); +} + +MimeType mimeTypeForFile(const QString &fileName, MimeMatchMode mode) +{ + MimeDatabase mdb; + return mdb.mimeTypeForFile(fileName, MimeDatabase::MatchMode(mode)); +} + +MimeType mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode) +{ + MimeDatabase mdb; + return mdb.mimeTypeForFile(fileInfo, MimeDatabase::MatchMode(mode)); +} + +MimeType mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode) +{ + MimeDatabase mdb; + if (filePath.needsDevice()) + return mdb.mimeTypeForUrl(filePath.toUrl()); + return mdb.mimeTypeForFile(filePath.toString(), MimeDatabase::MatchMode(mode)); +} + +QList mimeTypesForFileName(const QString &fileName) +{ + MimeDatabase mdb; + return mdb.mimeTypesForFileName(fileName); +} + +MimeType mimeTypeForData(const QByteArray &data) +{ + MimeDatabase mdb; + return mdb.mimeTypeForData(data); +} + +QList allMimeTypes() +{ + MimeDatabase mdb; + return mdb.allMimeTypes(); +} + } // namespace Utils diff --git a/src/libs/utils/mimetypes2/mimedatabase.h b/src/libs/utils/mimetypes2/mimedatabase.h index 4280b48d457..2c5104ffad8 100644 --- a/src/libs/utils/mimetypes2/mimedatabase.h +++ b/src/libs/utils/mimetypes2/mimedatabase.h @@ -55,6 +55,24 @@ QT_END_NAMESPACE namespace Utils { +class FilePath; + +// Wrapped QMimeDataBase functions +QTCREATOR_UTILS_EXPORT MimeType mimeTypeForName(const QString &nameOrAlias); + +enum class MimeMatchMode { + MatchDefault = 0x0, + MatchExtension = 0x1, + MatchContent = 0x2 +}; + +QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QString &fileName, MimeMatchMode mode = MimeMatchMode::MatchDefault); +QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const QFileInfo &fileInfo, MimeMatchMode mode = MimeMatchMode::MatchDefault); +QTCREATOR_UTILS_EXPORT MimeType mimeTypeForFile(const FilePath &filePath, MimeMatchMode mode = MimeMatchMode::MatchDefault); +QTCREATOR_UTILS_EXPORT QList mimeTypesForFileName(const QString &fileName); +QTCREATOR_UTILS_EXPORT MimeType mimeTypeForData(const QByteArray &data); +QTCREATOR_UTILS_EXPORT QList allMimeTypes(); + class MimeDatabasePrivate; class QTCREATOR_UTILS_EXPORT MimeDatabase {