Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
qmimetypeparser_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
5#ifndef QMIMETYPEPARSER_P_H
6#define QMIMETYPEPARSER_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include "qmimedatabase_p.h"
20
22
23#include "qmimeprovider_p.h"
24
26
27class QIODevice;
28
30{
31 Q_DISABLE_COPY_MOVE(QMimeTypeParserBase)
32
33public:
36
38
40
41protected:
42 virtual bool process(const QMimeType &t, QString *errorMessage) = 0;
43 virtual bool process(const QMimeGlobPattern &t, QString *errorMessage) = 0;
44 virtual void processParent(const QString &child, const QString &parent) = 0;
45 virtual void processAlias(const QString &alias, const QString &name) = 0;
47
48private:
49 enum ParseState {
50 ParseBeginning,
51 ParseMimeInfo,
52 ParseMimeType,
53 ParseComment,
54 ParseGenericIcon,
55 ParseIcon,
56 ParseGlobPattern,
57 ParseGlobDeleteAll,
58 ParseSubClass,
59 ParseAlias,
60 ParseMagic,
61 ParseMagicMatchRule,
62 ParseOtherMimeTypeSubTag,
63 ParseError
64 };
65
66 static ParseState nextState(ParseState currentState, QStringView startElement);
67};
68
69
71{
72public:
73 explicit QMimeTypeParser(QMimeXMLProvider &provider) : m_provider(provider) {}
74
75protected:
76 inline bool process(const QMimeType &t, QString *) override
77 { m_provider.addMimeType(t); return true; }
78
79 inline bool process(const QMimeGlobPattern &glob, QString *) override
80 { m_provider.addGlobPattern(glob); return true; }
81
82 inline void processParent(const QString &child, const QString &parent) override
83 { m_provider.addParent(child, parent); }
84
85 inline void processAlias(const QString &alias, const QString &name) override
86 { m_provider.addAlias(alias, name); }
87
89 { m_provider.addMagicMatcher(matcher); }
90
91private:
92 QMimeXMLProvider &m_provider;
93};
94
96
97#endif // MIMETYPEPARSER_P_H
\inmodule QtCore \reentrant
Definition qiodevice.h:34
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".
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 QMimeType &t, QString *errorMessage)=0
Overwrite to process the sequence of parsed data.
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
\inmodule QtCore
void processAlias(const QString &alias, const QString &name) override
QMimeTypeParser(QMimeXMLProvider &provider)
void processParent(const QString &child, const QString &parent) override
bool process(const QMimeType &t, QString *) override
Overwrite to process the sequence of parsed data.
bool process(const QMimeGlobPattern &glob, QString *) override
void processMagicMatcher(const QMimeMagicRuleMatcher &matcher) override
\inmodule QtCore
Definition qmimetype.h:25
void addGlobPattern(const QMimeGlobPattern &glob)
void addAlias(const QString &alias, const QString &name)
void addMagicMatcher(const QMimeMagicRuleMatcher &matcher)
void addMimeType(const QMimeType &mt)
void addParent(const QString &child, const QString &parent)
\inmodule QtCore
Definition qstringview.h:76
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:127
Combined button and popup list for selecting options.
GLenum target
GLuint name
GLfloat n
GLdouble GLdouble t
Definition qopenglext.h:243
#define QT_REQUIRE_CONFIG(feature)
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
Definition qurl.cpp:3503
static const auto matcher
[0]
QLayoutItem * child
[0]
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent