summaryrefslogtreecommitdiffstats
path: root/src/corelib/mimetypes/qmimetypeparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/mimetypes/qmimetypeparser.cpp')
-rw-r--r--src/corelib/mimetypes/qmimetypeparser.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/corelib/mimetypes/qmimetypeparser.cpp b/src/corelib/mimetypes/qmimetypeparser.cpp
index 66cbc32b5c..3f1e53b25d 100644
--- a/src/corelib/mimetypes/qmimetypeparser.cpp
+++ b/src/corelib/mimetypes/qmimetypeparser.cpp
@@ -165,8 +165,7 @@ static CreateMagicMatchRuleResult createMagicMatchRule(const QXmlStreamAttribute
bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString *errorMessage)
{
#if QT_CONFIG(xmlstreamreader)
- QMimeTypePrivate data;
- data.loaded = true;
+ QMimeTypeXMLData data;
int priority = 50;
QStack<QMimeMagicRule *> currentRules; // stack for the nesting of rules
QList<QMimeMagicRule> rules; // toplevel rules
@@ -273,7 +272,7 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString
{
const auto elementName = reader.name();
if (elementName == QLatin1StringView(mimeTypeTagC)) {
- if (!process(QMimeType(data), errorMessage))
+ if (!process(data, errorMessage))
return false;
data.clear();
} else if (elementName == QLatin1StringView(matchTagC)) {
@@ -314,4 +313,19 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString
#endif // feature xmlstreamreader
}
+void QMimeTypeXMLData::clear()
+{
+ hasGlobDeleteAll = false;
+ name.clear();
+ localeComments.clear();
+ genericIconName.clear();
+ iconName.clear();
+ globPatterns.clear();
+}
+
+void QMimeTypeXMLData::addGlobPattern(const QString &pattern)
+{
+ globPatterns.append(pattern);
+}
+
QT_END_NAMESPACE