5#ifndef QMIMEPROVIDER_P_H
6#define QMIMEPROVIDER_P_H
24#include <QtCore/qdatetime.h>
25#include <QtCore/qset.h>
110 bool caseSensitiveCheck);
111 bool matchMagicRule(
CacheFile *cacheFile,
int numMatchlets,
int firstOffset,
114 void loadMimeTypeList();
115 bool checkCacheChanged();
117 std::unique_ptr<CacheFile> m_cacheFile;
119 QSet<QString> m_mimetypeNames;
120 bool m_mimetypeListLoaded;
123 QHash<QString, QString> localeComments;
125 bool hasGlobDeleteAll =
false;
127 using MimeTypeExtraMap = std::map<QString, MimeTypeExtra>;
128 MimeTypeExtraMap m_mimetypeExtra;
130 MimeTypeExtraMap::const_iterator loadMimeTypeExtra(
const QString &mimeName);
140#if QT_CONFIG(mimetype_database)
178 typedef QHash<QString, QMimeTypeXMLData> NameMimeTypeMap;
179 NameMimeTypeMap m_nameMimeTypeMap;
181 typedef QHash<QString, QString> AliasHash;
184 typedef QHash<QString, QStringList> ParentsHash;
185 ParentsHash m_parents;
188 QList<QMimeMagicRuleMatcher> m_magicMatchers;
Result of the globs parsing, as data structures ready for efficient MIME type matching.
void addFileNameMatches(const QString &fileName, QMimeGlobMatchResult &result) override
QString resolveAlias(const QString &name) override
void findByMagic(const QByteArray &data, QMimeMagicResult &result) override
bool knowsMimeType(const QString &name) override
bool hasGlobDeleteAll(const QString &name) override
void ensureLoaded() override
void addAliases(const QString &name, QStringList &result) override
virtual ~QMimeBinaryProvider()
void addAllMimeTypes(QList< QMimeType > &result) override
void addParents(const QString &mime, QStringList &result) override
QMimeBinaryProvider(QMimeDatabasePrivate *db, const QString &directory)
QStringList globPatterns(const QString &name) override
QString genericIcon(const QString &name) override
bool isInternalDatabase() const override
QMimeTypePrivate::LocaleHash localeComments(const QString &name) override
The QMimeGlobPattern class contains the glob pattern for file names for MIME type matching.
The QMimeMagicRuleMatcher class checks a number of rules based on operator "or".
bool isMimeTypeGlobsExcluded(const QString &name) const
QMimeProviderBase * m_overrideProvider
virtual void addAliases(const QString &name, QStringList &result)=0
virtual bool hasGlobDeleteAll(const QString &name)=0
virtual void ensureLoaded()
virtual QString icon(const QString &name)=0
QMimeProviderBase * overrideProvider() const
virtual void addFileNameMatches(const QString &fileName, QMimeGlobMatchResult &result)=0
virtual void findByMagic(const QByteArray &data, QMimeMagicResult &result)=0
virtual void addParents(const QString &mime, QStringList &result)=0
virtual bool isInternalDatabase() const =0
virtual QString genericIcon(const QString &name)=0
virtual QStringList globPatterns(const QString &name)=0
void setOverrideProvider(QMimeProviderBase *provider)
virtual bool knowsMimeType(const QString &name)=0
QMimeDatabasePrivate * m_db
QString directory() const
virtual void addAllMimeTypes(QList< QMimeType > &result)=0
virtual ~QMimeProviderBase()
virtual QMimeTypePrivate::LocaleHash localeComments(const QString &name)=0
virtual QString resolveAlias(const QString &name)=0
QMimeProviderBase(QMimeDatabasePrivate *db, const QString &directory)
void addFileNameMatches(const QString &fileName, QMimeGlobMatchResult &result) override
void addGlobPattern(const QMimeGlobPattern &glob)
void addAliases(const QString &name, QStringList &result) override
void addAlias(const QString &alias, const QString &name)
QMimeTypePrivate::LocaleHash localeComments(const QString &name) override
QStringList globPatterns(const QString &name) override
bool load(const QString &fileName, QString *errorMessage)
void ensureLoaded() override
bool knowsMimeType(const QString &name) override
bool isInternalDatabase() const override
QString resolveAlias(const QString &name) override
@ InternalDatabaseAvailable
void addMimeType(const QMimeTypeXMLData &mt)
void findByMagic(const QByteArray &data, QMimeMagicResult &result) override
void addParents(const QString &mime, QStringList &result) override
void addAllMimeTypes(QList< QMimeType > &result) override
QMimeXMLProvider(QMimeDatabasePrivate *db, InternalDatabaseEnum)
void addMagicMatcher(const QMimeMagicRuleMatcher &matcher)
bool hasGlobDeleteAll(const QString &name) override
void addParent(const QString &child, const QString &parent)
QString genericIcon(const QString &name) override
\macro QT_RESTRICTED_CAST_FROM_ASCII
bool isEmpty() const noexcept
Returns true if the string has no characters; otherwise returns false.
Combined button and popup list for selecting options.
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum GLuint GLintptr offset
#define QT_REQUIRE_CONFIG(feature)
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
application x qt windows mime
[2]
static const auto matcher
[0]
The QMimeGlobMatchResult class accumulates results from glob matching.