Mimetypes v3: Add static wrappers for MimeDatabase

Avoids "MimeDatabase db; db...." everywhere in user code.

Add overload for FilePath.

Change-Id: I68d07f20159d970cd5ee2eab995bab46ef0da669
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
Eike Ziller
2022-02-18 11:12:33 +01:00
parent f112fd0572
commit f8d7542fe6
2 changed files with 64 additions and 0 deletions

View File

@@ -46,6 +46,8 @@
#include "mimeprovider_p.h"
#include "mimetype_p.h"
#include "filepath.h"
#include <QtCore/QFile>
#include <QtCore/QFileInfo>
#include <QtCore/QStandardPaths>
@@ -827,4 +829,48 @@ QList<MimeType> 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<MimeType> mimeTypesForFileName(const QString &fileName)
{
MimeDatabase mdb;
return mdb.mimeTypesForFileName(fileName);
}
MimeType mimeTypeForData(const QByteArray &data)
{
MimeDatabase mdb;
return mdb.mimeTypeForData(data);
}
QList<MimeType> allMimeTypes()
{
MimeDatabase mdb;
return mdb.allMimeTypes();
}
} // namespace Utils

View File

@@ -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<MimeType> mimeTypesForFileName(const QString &fileName);
QTCREATOR_UTILS_EXPORT MimeType mimeTypeForData(const QByteArray &data);
QTCREATOR_UTILS_EXPORT QList<MimeType> allMimeTypes();
class MimeDatabasePrivate;
class QTCREATOR_UTILS_EXPORT MimeDatabase
{