5#ifndef QMIMETYPEPARSER_P_H
6#define QMIMETYPEPARSER_P_H
19#include <QtCore/qtconfigmacros.h>
21QT_REQUIRE_CONFIG(mimetype);
53 bool parse(QIODevice *dev,
const QString &fileName, QString *errorMessage);
55 static bool parseNumber(QStringView n,
int *target, QString *errorMessage);
60 virtual void processParent(
const QString &child,
const QString &parent) = 0;
61 virtual void processAlias(
const QString &alias,
const QString &name) = 0;
78 ParseOtherMimeTypeSubTag,
82 static ParseState nextState(ParseState currentState, QStringView startElement);
104 inline void processParent(
const QString &child,
const QString &parent)
override
105 { m_provider.addParent(child, parent); }
107 inline void processAlias(
const QString &alias,
const QString &name)
override
108 { m_provider.addAlias(alias, name); }
114 QMimeXMLProvider &m_provider;
The QMimeGlobPattern class contains the glob pattern for file names for MIME type matching.
static QByteArray typeName(Type type)
QList< QMimeMagicRule > m_subMatches
static Type type(const QByteArray &type)
void swap(QMimeMagicRule &other) noexcept
static constexpr int MaxRecursionDepth
static bool matchSubstring(const char *dataPtr, qsizetype dataSize, quint64 rangeStart, quint64 rangeLength, quint64 valueLength, const char *valueData, const char *mask)
bool matches(const QMimeMagicData &data, int depth=MaxRecursionDepth) const
bool operator==(const QMimeMagicRule &other) const
QMimeMagicRule(const QString &typeStr, const QByteArray &value, const QString &offsets, const QByteArray &mask, RegexRules regexRules, QString *errorString)
virtual void processMagicMatcher(const QMimeMagicRuleMatcher &matcher)=0
static bool parseNumber(QStringView n, int *target, QString *errorMessage)
bool parse(QIODevice *dev, const QString &fileName, QString *errorMessage)
virtual bool process(const QMimeTypeXMLData &t, QString *errorMessage)=0
virtual bool process(const QMimeGlobPattern &t, QString *errorMessage)=0
virtual void processParent(const QString &child, const QString &parent)=0
virtual void processAlias(const QString &alias, const QString &name)=0
bool process(const QMimeTypeXMLData &t, QString *) override
~QMimeTypeParser() override
void processAlias(const QString &alias, const QString &name) override
void processParent(const QString &child, const QString &parent) override
QMimeTypeParser(QMimeXMLProvider &provider, QMimeMagicRule::RegexRules regexRules)
bool process(const QMimeGlobPattern &glob, QString *) override
void processMagicMatcher(const QMimeMagicRuleMatcher &matcher) override
QMimeTypePrivate::LocaleHash localeComments
void addGlobPattern(const QString &pattern)
void addGlobPattern(const QMimeGlobPattern &glob)
void addMimeType(const QMimeTypeXMLData &mt)
void addMagicMatcher(const QMimeMagicRuleMatcher &matcher)
Combined button and popup list for selecting options.
QT_REQUIRE_CONFIG(mimetype)
static QByteArray makePattern(const QByteArray &value)
static constexpr qsizetype RegExpLookAhead
static constexpr auto magicRuleTypes