diff options
Diffstat (limited to 'src/corelib/mimetypes/qmimetypeparser.cpp')
-rw-r--r-- | src/corelib/mimetypes/qmimetypeparser.cpp | 20 |
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 |