diff options
Diffstat (limited to 'src/corelib/mimetypes')
-rw-r--r-- | src/corelib/mimetypes/qmimedatabase.cpp | 24 | ||||
-rw-r--r-- | src/corelib/mimetypes/qmimeglobpattern.cpp | 44 | ||||
-rw-r--r-- | src/corelib/mimetypes/qmimemagicrule.cpp | 12 | ||||
-rw-r--r-- | src/corelib/mimetypes/qmimeprovider.cpp | 35 | ||||
-rw-r--r-- | src/corelib/mimetypes/qmimetype.cpp | 26 | ||||
-rw-r--r-- | src/corelib/mimetypes/qmimetypeparser.cpp | 8 |
6 files changed, 81 insertions, 68 deletions
diff --git a/src/corelib/mimetypes/qmimedatabase.cpp b/src/corelib/mimetypes/qmimedatabase.cpp index 518da4316c..8510bdca93 100644 --- a/src/corelib/mimetypes/qmimedatabase.cpp +++ b/src/corelib/mimetypes/qmimedatabase.cpp @@ -62,6 +62,8 @@ QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + static QString directoryMimeType() { return QStringLiteral("inode/directory"); @@ -116,7 +118,7 @@ void QMimeDatabasePrivate::loadProviders() // We use QStandardPaths every time to check if new files appeared const QStringList mimeDirs = locateMimeDirectories(); const auto fdoIterator = std::find_if(mimeDirs.constBegin(), mimeDirs.constEnd(), [](const QString &mimeDir) -> bool { - return QFileInfo::exists(mimeDir + QLatin1String("/packages/freedesktop.org.xml")); } + return QFileInfo::exists(mimeDir + "/packages/freedesktop.org.xml"_L1); } ); const bool needInternalDB = QMimeXMLProvider::InternalDatabaseAvailable && fdoIterator == mimeDirs.constEnd(); //qDebug() << "mime dirs:" << mimeDirs; @@ -127,7 +129,7 @@ void QMimeDatabasePrivate::loadProviders() m_providers.reserve(mimeDirs.size() + (needInternalDB ? 1 : 0)); for (const QString &mimeDir : mimeDirs) { - const QString cacheFile = mimeDir + QLatin1String("/mime.cache"); + const QString cacheFile = mimeDir + "/mime.cache"_L1; // Check if we already have a provider for this dir const auto predicate = [mimeDir](const std::unique_ptr<QMimeProviderBase> &prov) { @@ -219,7 +221,7 @@ QMimeType QMimeDatabasePrivate::mimeTypeForName(const QString &nameOrAlias) QStringList QMimeDatabasePrivate::mimeTypeForFileName(const QString &fileName) { - if (fileName.endsWith(QLatin1Char('/'))) + if (fileName.endsWith(u'/')) return { directoryMimeType() }; const QMimeGlobMatchResult result = findByFileName(fileName); @@ -252,7 +254,7 @@ void QMimeDatabasePrivate::loadMimeTypePrivate(QMimeTypePrivate &mimePrivate) } } if (!found) { - const QString file = mimePrivate.name + QLatin1String(".xml"); + const QString file = mimePrivate.name + ".xml"_L1; qWarning() << "No file found for" << file << ", even though update-mime-info said it would exist.\n" "Either it was just removed, or the directory doesn't have executable permission..." << locateMimeDirectories(); @@ -289,14 +291,14 @@ void QMimeDatabasePrivate::loadIcon(QMimeTypePrivate &mimePrivate) QString QMimeDatabasePrivate::fallbackParent(const QString &mimeTypeName) const { - const QStringView myGroup = QStringView{mimeTypeName}.left(mimeTypeName.indexOf(QLatin1Char('/'))); + const QStringView myGroup = QStringView{mimeTypeName}.left(mimeTypeName.indexOf(u'/')); // All text/* types are subclasses of text/plain. - if (myGroup == QLatin1String("text") && mimeTypeName != plainTextMimeType()) + if (myGroup == "text"_L1 && mimeTypeName != plainTextMimeType()) return plainTextMimeType(); // All real-file mimetypes implicitly derive from application/octet-stream - if (myGroup != QLatin1String("inode") && + if (myGroup != "inode"_L1 && // ignore non-file extensions - myGroup != QLatin1String("all") && myGroup != QLatin1String("fonts") && myGroup != QLatin1String("print") && myGroup != QLatin1String("uri") + myGroup != "all"_L1 && myGroup != "fonts"_L1 && myGroup != "print"_L1 && myGroup != "uri"_L1 && mimeTypeName != defaultMimeType()) { return defaultMimeType(); } @@ -752,7 +754,7 @@ QMimeType QMimeDatabase::mimeTypeForUrl(const QUrl &url) const return mimeTypeForFile(url.toLocalFile()); const QString scheme = url.scheme(); - if (scheme.startsWith(QLatin1String("http")) || scheme == QLatin1String("mailto")) + if (scheme.startsWith("http"_L1) || scheme == "mailto"_L1) return mimeTypeForName(d->defaultMimeType()); return mimeTypeForFile(url.path(), MatchExtension); @@ -781,7 +783,7 @@ QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, QIO { QMutexLocker locker(&d->mutex); - if (fileName.endsWith(QLatin1Char('/'))) + if (fileName.endsWith(u'/')) return d->mimeTypeForName(directoryMimeType()); const QMimeType result = d->mimeTypeForFileNameAndData(fileName, device); @@ -808,7 +810,7 @@ QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, con { QMutexLocker locker(&d->mutex); - if (fileName.endsWith(QLatin1Char('/'))) + if (fileName.endsWith(u'/')) return d->mimeTypeForName(directoryMimeType()); QBuffer buffer(const_cast<QByteArray *>(&data)); diff --git a/src/corelib/mimetypes/qmimeglobpattern.cpp b/src/corelib/mimetypes/qmimeglobpattern.cpp index d36c29a82d..be38f071df 100644 --- a/src/corelib/mimetypes/qmimeglobpattern.cpp +++ b/src/corelib/mimetypes/qmimeglobpattern.cpp @@ -47,6 +47,8 @@ QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + /*! \internal \class QMimeGlobMatchResult @@ -97,17 +99,17 @@ QMimeGlobPattern::PatternType QMimeGlobPattern::detectPatternType(const QString if (!patternLength) return OtherPattern; - const int starCount = pattern.count(QLatin1Char('*')); - const bool hasSquareBracket = pattern.indexOf(QLatin1Char('[')) != -1; - const bool hasQuestionMark = pattern.indexOf(QLatin1Char('?')) != -1; + const int starCount = pattern.count(u'*'); + const bool hasSquareBracket = pattern.indexOf(u'[') != -1; + const bool hasQuestionMark = pattern.indexOf(u'?') != -1; if (!hasSquareBracket && !hasQuestionMark) { if (starCount == 1) { // Patterns like "*~", "*.extension" - if (pattern.at(0) == QLatin1Char('*')) + if (pattern.at(0) == u'*') return SuffixPattern; // Patterns like "README*" (well this is currently the only one like that...) - if (pattern.at(patternLength - 1) == QLatin1Char('*')) + if (pattern.at(patternLength - 1) == u'*') return PrefixPattern; } else if (starCount == 0) { // Names without any wildcards like "README" @@ -115,10 +117,10 @@ QMimeGlobPattern::PatternType QMimeGlobPattern::detectPatternType(const QString } } - if (pattern == QLatin1String("[0-9][0-9][0-9].vdr")) + if (pattern == "[0-9][0-9][0-9].vdr"_L1) return VdrPattern; - if (pattern == QLatin1String("*.anim[1-9j]")) + if (pattern == "*.anim[1-9j]"_L1) return AnimPattern; return OtherPattern; @@ -175,14 +177,14 @@ bool QMimeGlobPattern::matchFileName(const QString &inputFileName) const case VdrPattern: // "[0-9][0-9][0-9].vdr" case return fileNameLength == 7 && fileName.at(0).isDigit() && fileName.at(1).isDigit() && fileName.at(2).isDigit() - && QStringView{fileName}.mid(3, 4) == QLatin1String(".vdr"); + && QStringView{fileName}.mid(3, 4) == ".vdr"_L1; case AnimPattern: { // "*.anim[1-9j]" case if (fileNameLength < 6) return false; const QChar lastChar = fileName.at(fileNameLength - 1); - const bool lastCharOK = (lastChar.isDigit() && lastChar != QLatin1Char('0')) - || lastChar == QLatin1Char('j'); - return lastCharOK && QStringView{fileName}.mid(fileNameLength - 6, 5) == QLatin1String(".anim"); + const bool lastCharOK = (lastChar.isDigit() && lastChar != u'0') + || lastChar == u'j'; + return lastCharOK && QStringView{fileName}.mid(fileNameLength - 6, 5) == ".anim"_L1; } case OtherPattern: // Other fallback patterns: slow but correct method @@ -199,23 +201,23 @@ bool QMimeGlobPattern::matchFileName(const QString &inputFileName) const static bool isSimplePattern(const QString &pattern) { // starts with "*.", has no other '*' - return pattern.lastIndexOf(QLatin1Char('*')) == 0 + return pattern.lastIndexOf(u'*') == 0 && pattern.length() > 1 - && pattern.at(1) == QLatin1Char('.') // (other dots are OK, like *.tar.bz2) + && pattern.at(1) == u'.' // (other dots are OK, like *.tar.bz2) // and contains no other special character - && !pattern.contains(QLatin1Char('?')) - && !pattern.contains(QLatin1Char('[')) + && !pattern.contains(u'?') + && !pattern.contains(u'[') ; } static bool isFastPattern(const QString &pattern) { // starts with "*.", has no other '*' and no other '.' - return pattern.lastIndexOf(QLatin1Char('*')) == 0 - && pattern.lastIndexOf(QLatin1Char('.')) == 1 + return pattern.lastIndexOf(u'*') == 0 + && pattern.lastIndexOf(u'.') == 1 // and contains no other special character - && !pattern.contains(QLatin1Char('?')) - && !pattern.contains(QLatin1Char('[')) + && !pattern.contains(u'?') + && !pattern.contains(u'[') ; } @@ -276,14 +278,14 @@ void QMimeAllGlobPatterns::matchingGlobs(const QString &fileName, QMimeGlobMatch // Now use the "fast patterns" dict, for simple *.foo patterns with weight 50 // (which is most of them, so this optimization is definitely worth it) - const int lastDot = fileName.lastIndexOf(QLatin1Char('.')); + const int lastDot = fileName.lastIndexOf(u'.'); if (lastDot != -1) { // if no '.', skip the extension lookup const int ext_len = fileName.length() - lastDot - 1; const QString simpleExtension = fileName.right(ext_len).toLower(); // (toLower because fast patterns are always case-insensitive and saved as lowercase) const QStringList matchingMimeTypes = m_fastPatterns.value(simpleExtension); - const QString simplePattern = QLatin1String("*.") + simpleExtension; + const QString simplePattern = "*."_L1 + simpleExtension; for (const QString &mime : matchingMimeTypes) result.addMatch(mime, 50, simplePattern, simpleExtension.size()); // Can't return yet; *.tar.bz2 has to win over *.bz2, so we need the low-weight mimetypes anyway, diff --git a/src/corelib/mimetypes/qmimemagicrule.cpp b/src/corelib/mimetypes/qmimemagicrule.cpp index 3cf5ba2d7f..13e60739e0 100644 --- a/src/corelib/mimetypes/qmimemagicrule.cpp +++ b/src/corelib/mimetypes/qmimemagicrule.cpp @@ -50,6 +50,8 @@ QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + // in the same order as Type! static const char magicRuleTypes_string[] = "invalid\0" @@ -234,12 +236,12 @@ QMimeMagicRule::QMimeMagicRule(const QString &type, { if (Q_UNLIKELY(m_type == Invalid)) { if (errorString) - *errorString = QLatin1String("Type ") + type + QLatin1String(" is not supported"); + *errorString = "Type "_L1 + type + " is not supported"_L1; return; } // Parse for offset as "1" or "1:10" - const int colonIndex = offsets.indexOf(QLatin1Char(':')); + const int colonIndex = offsets.indexOf(u':'); const QStringView startPosStr = QStringView{offsets}.mid(0, colonIndex); // \ These decay to returning 'offsets' const QStringView endPosStr = QStringView{offsets}.mid(colonIndex + 1);// / unchanged when colonIndex == -1 if (Q_UNLIKELY(!QMimeTypeParserBase::parseNumber(startPosStr, &m_startPos, errorString)) || @@ -261,7 +263,7 @@ QMimeMagicRule::QMimeMagicRule(const QString &type, if (Q_UNLIKELY(!ok)) { m_type = Invalid; if (errorString) - *errorString = QLatin1String("Invalid magic rule value \"") + QLatin1String(m_value) + QLatin1Char('"'); + *errorString = "Invalid magic rule value \""_L1 + QLatin1String(m_value) + u'"'; return; } m_numberMask = !m_mask.isEmpty() ? m_mask.toUInt(&ok, 0) : 0; // autodetect base @@ -275,7 +277,7 @@ QMimeMagicRule::QMimeMagicRule(const QString &type, if (Q_UNLIKELY(m_mask.size() < 4 || !m_mask.startsWith("0x"))) { m_type = Invalid; if (errorString) - *errorString = QLatin1String("Invalid magic rule mask \"") + QLatin1String(m_mask) + QLatin1Char('"'); + *errorString = "Invalid magic rule mask \""_L1 + QLatin1String(m_mask) + u'"'; return; } const QByteArray &tempMask = QByteArray::fromHex(QByteArray::fromRawData( @@ -283,7 +285,7 @@ QMimeMagicRule::QMimeMagicRule(const QString &type, if (Q_UNLIKELY(tempMask.size() != m_pattern.size())) { m_type = Invalid; if (errorString) - *errorString = QLatin1String("Invalid magic rule mask size \"") + QLatin1String(m_mask) + QLatin1Char('"'); + *errorString = "Invalid magic rule mask size \""_L1 + QLatin1String(m_mask) + u'"'; return; } m_mask = tempMask; diff --git a/src/corelib/mimetypes/qmimeprovider.cpp b/src/corelib/mimetypes/qmimeprovider.cpp index 6aa59e56f4..951ad2ca49 100644 --- a/src/corelib/mimetypes/qmimeprovider.cpp +++ b/src/corelib/mimetypes/qmimeprovider.cpp @@ -85,6 +85,8 @@ __attribute__((section(".qtmimedatabase"), aligned(4096))) QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + QMimeProviderBase::QMimeProviderBase(QMimeDatabasePrivate *db, const QString &directory) : m_db(db), m_directory(directory) { @@ -201,7 +203,7 @@ bool QMimeBinaryProvider::checkCacheChanged() void QMimeBinaryProvider::ensureLoaded() { if (!m_cacheFile) { - const QString cacheFileName = m_directory + QLatin1String("/mime.cache"); + const QString cacheFileName = m_directory + "/mime.cache"_L1; m_cacheFile = new CacheFile(cacheFileName); m_mimetypeListLoaded = false; m_mimetypeExtra.clear(); @@ -317,7 +319,8 @@ bool QMimeBinaryProvider::matchSuffixTree(QMimeGlobMatchResult &result, QMimeBin const bool caseSensitive = flagsAndWeight & 0x100; if (caseSensitiveCheck || !caseSensitive) { result.addMatch(QLatin1String(mimeType), weight, - QLatin1Char('*') + QStringView{fileName}.mid(charPos + 1), fileName.size() - charPos - 2); + u'*' + QStringView{fileName}.mid(charPos + 1), + fileName.size() - charPos - 2); success = true; } } @@ -507,9 +510,9 @@ bool QMimeBinaryProvider::loadMimeTypePrivate(QMimeTypePrivate &data) // load comment and globPatterns // shared-mime-info since 1.3 lowercases the xml files - QString mimeFile = m_directory + QLatin1Char('/') + data.name.toLower() + QLatin1String(".xml"); + QString mimeFile = m_directory + u'/' + data.name.toLower() + ".xml"_L1; if (!QFile::exists(mimeFile)) - mimeFile = m_directory + QLatin1Char('/') + data.name + QLatin1String(".xml"); // pre-1.3 + mimeFile = m_directory + u'/' + data.name + ".xml"_L1; // pre-1.3 QFile qfile(mimeFile); if (!qfile.open(QFile::ReadOnly)) @@ -522,10 +525,10 @@ bool QMimeBinaryProvider::loadMimeTypePrivate(QMimeTypePrivate &data) QXmlStreamReader xml(&qfile); if (xml.readNextStartElement()) { - if (xml.name() != QLatin1String("mime-type")) { + if (xml.name() != "mime-type"_L1) { return false; } - const auto name = xml.attributes().value(QLatin1String("type")); + const auto name = xml.attributes().value("type"_L1); if (name.isEmpty()) return false; if (name.compare(data.name, Qt::CaseInsensitive)) @@ -533,20 +536,20 @@ bool QMimeBinaryProvider::loadMimeTypePrivate(QMimeTypePrivate &data) while (xml.readNextStartElement()) { const auto tag = xml.name(); - if (tag == QLatin1String("comment")) { - QString lang = xml.attributes().value(QLatin1String("xml:lang")).toString(); + if (tag == "comment"_L1) { + QString lang = xml.attributes().value("xml:lang"_L1).toString(); const QString text = xml.readElementText(); if (lang.isEmpty()) { - lang = QLatin1String("default"); // no locale attribute provided, treat it as default. + lang = "default"_L1; // no locale attribute provided, treat it as default. } extra.localeComments.insert(lang, text); continue; // we called readElementText, so we're at the EndElement already. - } else if (tag == QLatin1String("glob-deleteall")) { // as written out by shared-mime-info >= 0.70 + } else if (tag == "glob-deleteall"_L1) { // as written out by shared-mime-info >= 0.70 extra.globPatterns.clear(); mainPattern.clear(); - } else if (tag == QLatin1String("glob")) { // as written out by shared-mime-info >= 0.70 - const QString pattern = xml.attributes().value(QLatin1String("pattern")).toString(); - if (mainPattern.isEmpty() && pattern.startsWith(QLatin1Char('*'))) { + } else if (tag == "glob"_L1) { // as written out by shared-mime-info >= 0.70 + const QString pattern = xml.attributes().value("pattern"_L1).toString(); + if (mainPattern.isEmpty() && pattern.startsWith(u'*')) { mainPattern = pattern; } if (!extra.globPatterns.contains(pattern)) @@ -554,7 +557,7 @@ bool QMimeBinaryProvider::loadMimeTypePrivate(QMimeTypePrivate &data) } xml.skipCurrentElement(); } - Q_ASSERT(xml.name() == QLatin1String("mime-type")); + Q_ASSERT(xml.name() == "mime-type"_L1); } // Let's assume that shared-mime-info is at least version 0.70 @@ -734,7 +737,7 @@ void QMimeXMLProvider::ensureLoaded() const QStringList files = dir.entryList(QDir::Files | QDir::NoDotAndDotDot); allFiles.reserve(files.count()); for (const QString &xmlFile : files) - allFiles.append(packageDir + QLatin1Char('/') + xmlFile); + allFiles.append(packageDir + u'/' + xmlFile); if (m_allFiles == allFiles) return; @@ -764,7 +767,7 @@ bool QMimeXMLProvider::load(const QString &fileName, QString *errorMessage) QFile file(fileName); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { if (errorMessage) - *errorMessage = QLatin1String("Cannot open ") + fileName + QLatin1String(": ") + file.errorString(); + *errorMessage = "Cannot open "_L1 + fileName + ": "_L1 + file.errorString(); return false; } diff --git a/src/corelib/mimetypes/qmimetype.cpp b/src/corelib/mimetypes/qmimetype.cpp index 4308665730..746776fdf2 100644 --- a/src/corelib/mimetypes/qmimetype.cpp +++ b/src/corelib/mimetypes/qmimetype.cpp @@ -54,6 +54,8 @@ QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + QMimeTypePrivate::QMimeTypePrivate() : loaded(false), fromCache(false) {} @@ -258,13 +260,13 @@ QString QMimeType::comment() const QStringList languageList; languageList << QLocale().name(); languageList << QLocale().uiLanguages(); - languageList << QLatin1String("default"); // use the default locale if possible. + languageList << u"default"_qs; // use the default locale if possible. for (const QString &language : qAsConst(languageList)) { - const QString lang = language == QLatin1String("C") ? QLatin1String("en_US") : language; + const QString lang = language == "C"_L1 ? u"en_US"_qs : language; const QString comm = d->localeComments.value(lang); if (!comm.isEmpty()) return comm; - const int pos = lang.indexOf(QLatin1Char('_')); + const int pos = lang.indexOf(u'_'); if (pos != -1) { // "pt_BR" not found? try just "pt" const QString shortLang = lang.left(pos); @@ -303,19 +305,19 @@ QString QMimeType::genericIconName() const // (i.e. "video-x-generic" in the previous example). const QString group = name(); QStringView groupRef(group); - const int slashindex = groupRef.indexOf(QLatin1Char('/')); + const int slashindex = groupRef.indexOf(u'/'); if (slashindex != -1) groupRef = groupRef.left(slashindex); - return groupRef + QLatin1String("-x-generic"); + return groupRef + "-x-generic"_L1; } return d->genericIconName; } static QString make_default_icon_name_from_mimetype_name(QString iconName) { - const int slashindex = iconName.indexOf(QLatin1Char('/')); + const int slashindex = iconName.indexOf(u'/'); if (slashindex != -1) - iconName[slashindex] = QLatin1Char('-'); + iconName[slashindex] = u'-'; return iconName; } @@ -446,9 +448,9 @@ QStringList QMimeType::suffixes() const QStringList result; for (const QString &pattern : qAsConst(d->globPatterns)) { // Not a simple suffix if it looks like: README or *. or *.* or *.JP*G or *.JP? - if (pattern.startsWith(QLatin1String("*.")) && + if (pattern.startsWith("*."_L1) && pattern.length() > 2 && - pattern.indexOf(QLatin1Char('*'), 2) < 0 && pattern.indexOf(QLatin1Char('?'), 2) < 0) { + pattern.indexOf(u'*', 2) < 0 && pattern.indexOf(u'?', 2) < 0) { const QString suffix = pattern.mid(2); result.append(suffix); } @@ -488,13 +490,13 @@ QString QMimeType::filterString() const QString filter; if (!d->globPatterns.empty()) { - filter += comment() + QLatin1String(" ("); + filter += comment() + " ("_L1; for (int i = 0; i < d->globPatterns.size(); ++i) { if (i != 0) - filter += QLatin1Char(' '); + filter += u' '; filter += d->globPatterns.at(i); } - filter += QLatin1Char(')'); + filter += u')'; } return filter; diff --git a/src/corelib/mimetypes/qmimetypeparser.cpp b/src/corelib/mimetypes/qmimetypeparser.cpp index ff9936d335..af96d9b2d7 100644 --- a/src/corelib/mimetypes/qmimetypeparser.cpp +++ b/src/corelib/mimetypes/qmimetypeparser.cpp @@ -53,6 +53,8 @@ QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + // XML tags in MIME files static const char mimeInfoTagC[] = "mime-info"; static const char mimeTypeTagC[] = "mime-type"; @@ -167,7 +169,7 @@ bool QMimeTypeParserBase::parseNumber(QStringView n, int *target, QString *error *target = n.toInt(&ok); if (Q_UNLIKELY(!ok)) { if (errorMessage) - *errorMessage = QLatin1String("Not a number '") + n + QLatin1String("'."); + *errorMessage = "Not a number '"_L1 + n + "'."_L1; return false; } return true; @@ -235,7 +237,7 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString case ParseGlobPattern: { const QString pattern = atts.value(QLatin1String(patternAttributeC)).toString(); unsigned weight = atts.value(QLatin1String(weightAttributeC)).toInt(); - const bool caseSensitive = atts.value(QLatin1String(caseSensitiveAttributeC)) == QLatin1String("true"); + const bool caseSensitive = atts.value(QLatin1String(caseSensitiveAttributeC)) == "true"_L1; if (weight == 0) weight = QMimeGlobPattern::DefaultWeight; @@ -299,7 +301,7 @@ bool QMimeTypeParserBase::parse(QIODevice *dev, const QString &fileName, QString break; } case ParseError: - reader.raiseError(QLatin1String("Unexpected element <") + reader.name() + QLatin1Char('>')); + reader.raiseError("Unexpected element <"_L1 + reader.name() + u'>'); break; default: break; |