diff options
| author | Jonah BrĂ¼chert <jbb.prv@gmx.de> | 2020-03-22 22:24:26 +0100 |
|---|---|---|
| committer | LNJ <lnj@kaidan.im> | 2020-03-28 18:07:47 +0100 |
| commit | 1ac7b9d2a25d50b7680bd75ff68f29055b196d80 (patch) | |
| tree | 9adf6bbeefd37ed2fe1dbd23592d321183c6e87b /src/base | |
| parent | 88451aa1597afd0a1a1c3b3fb59d5a95d3011736 (diff) | |
| download | qxmpp-1ac7b9d2a25d50b7680bd75ff68f29055b196d80.tar.gz | |
base: Convert to QStringLiteral
Two new macros were added:
* QBL (short alias for QByteArrayLiteral)
* QSL (short alias for QStringLiteral)
Diffstat (limited to 'src/base')
35 files changed, 1101 insertions, 1095 deletions
diff --git a/src/base/QXmppArchiveIq.cpp b/src/base/QXmppArchiveIq.cpp index 290a3ef0..38fdde2b 100644 --- a/src/base/QXmppArchiveIq.cpp +++ b/src/base/QXmppArchiveIq.cpp @@ -88,22 +88,22 @@ QXmppArchiveChat::QXmppArchiveChat() /// \cond void QXmppArchiveChat::parse(const QDomElement &element) { - m_with = element.attribute("with"); - m_start = QXmppUtils::datetimeFromString(element.attribute("start")); - m_subject = element.attribute("subject"); - m_thread = element.attribute("thread"); - m_version = element.attribute("version").toInt(); + m_with = element.attribute(QSL("with")); + m_start = QXmppUtils::datetimeFromString(element.attribute(QSL("start"))); + m_subject = element.attribute(QSL("subject")); + m_thread = element.attribute(QSL("thread")); + m_version = element.attribute(QSL("version")).toInt(); QDateTime timeAccu = m_start; QDomElement child = element.firstChildElement(); while (!child.isNull()) { - if ((child.tagName() == "from") || (child.tagName() == "to")) { + if ((child.tagName() == QSL("from")) || (child.tagName() == QSL("to"))) { QXmppArchiveMessage message; - message.setBody(child.firstChildElement("body").text()); - timeAccu = timeAccu.addSecs(child.attribute("secs").toInt()); + message.setBody(child.firstChildElement(QSL("body")).text()); + timeAccu = timeAccu.addSecs(child.attribute(QSL("secs")).toInt()); message.setDate(timeAccu); - message.setReceived(child.tagName() == "from"); + message.setReceived(child.tagName() == QSL("from")); m_messages << message; } child = child.nextSiblingElement(); @@ -112,22 +112,22 @@ void QXmppArchiveChat::parse(const QDomElement &element) void QXmppArchiveChat::toXml(QXmlStreamWriter *writer, const QXmppResultSetReply &rsm) const { - writer->writeStartElement("chat"); + writer->writeStartElement(QSL("chat")); writer->writeDefaultNamespace(ns_archive); - helperToXmlAddAttribute(writer, "with", m_with); + helperToXmlAddAttribute(writer, QSL("with"), m_with); if (m_start.isValid()) - helperToXmlAddAttribute(writer, "start", QXmppUtils::datetimeToString(m_start)); - helperToXmlAddAttribute(writer, "subject", m_subject); - helperToXmlAddAttribute(writer, "thread", m_thread); + helperToXmlAddAttribute(writer, QSL("start"), QXmppUtils::datetimeToString(m_start)); + helperToXmlAddAttribute(writer, QSL("subject"), m_subject); + helperToXmlAddAttribute(writer, QSL("thread"), m_thread); if (m_version) - helperToXmlAddAttribute(writer, "version", QString::number(m_version)); + helperToXmlAddAttribute(writer, QSL("version"), QString::number(m_version)); QDateTime prevTime = m_start; for (const QXmppArchiveMessage &message : m_messages) { - writer->writeStartElement(message.isReceived() ? "from" : "to"); - helperToXmlAddAttribute(writer, "secs", QString::number(prevTime.secsTo(message.date()))); - writer->writeTextElement("body", message.body()); + writer->writeStartElement(message.isReceived() ? QSL("from") : QSL("to")); + helperToXmlAddAttribute(writer, QSL("secs"), QString::number(prevTime.secsTo(message.date()))); + writer->writeTextElement(QSL("body"), message.body()); writer->writeEndElement(); prevTime = message.date(); } @@ -256,14 +256,14 @@ void QXmppArchiveChatIq::setResultSetReply(const QXmppResultSetReply &rsm) /// \cond bool QXmppArchiveChatIq::isArchiveChatIq(const QDomElement &element) { - QDomElement chatElement = element.firstChildElement("chat"); - return !chatElement.attribute("with").isEmpty(); + QDomElement chatElement = element.firstChildElement(QSL("chat")); + return !chatElement.attribute(QSL("with")).isEmpty(); //return (chatElement.namespaceURI() == ns_archive); } void QXmppArchiveChatIq::parseElementFromChild(const QDomElement &element) { - QDomElement chatElement = element.firstChildElement("chat"); + QDomElement chatElement = element.firstChildElement(QSL("chat")); m_chat.parse(chatElement); m_rsmReply.parse(chatElement); } @@ -385,23 +385,23 @@ void QXmppArchiveListIq::setResultSetReply(const QXmppResultSetReply &rsm) /// \cond bool QXmppArchiveListIq::isArchiveListIq(const QDomElement &element) { - QDomElement listElement = element.firstChildElement("list"); + QDomElement listElement = element.firstChildElement(QSL("list")); return (listElement.namespaceURI() == ns_archive); } void QXmppArchiveListIq::parseElementFromChild(const QDomElement &element) { - QDomElement listElement = element.firstChildElement("list"); - m_with = listElement.attribute("with"); - m_start = QXmppUtils::datetimeFromString(listElement.attribute("start")); - m_end = QXmppUtils::datetimeFromString(listElement.attribute("end")); + QDomElement listElement = element.firstChildElement(QSL("list")); + m_with = listElement.attribute(QSL("with")); + m_start = QXmppUtils::datetimeFromString(listElement.attribute(QSL("start"))); + m_end = QXmppUtils::datetimeFromString(listElement.attribute(QSL("end"))); m_rsmQuery.parse(listElement); m_rsmReply.parse(listElement); QDomElement child = listElement.firstChildElement(); while (!child.isNull()) { - if (child.tagName() == "chat") { + if (child.tagName() == QSL("chat")) { QXmppArchiveChat chat; chat.parse(child); m_chats << chat; @@ -412,14 +412,14 @@ void QXmppArchiveListIq::parseElementFromChild(const QDomElement &element) void QXmppArchiveListIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("list"); + writer->writeStartElement(QSL("list")); writer->writeDefaultNamespace(ns_archive); if (!m_with.isEmpty()) - helperToXmlAddAttribute(writer, "with", m_with); + helperToXmlAddAttribute(writer, QSL("with"), m_with); if (m_start.isValid()) - helperToXmlAddAttribute(writer, "start", QXmppUtils::datetimeToString(m_start)); + helperToXmlAddAttribute(writer, QSL("start"), QXmppUtils::datetimeToString(m_start)); if (m_end.isValid()) - helperToXmlAddAttribute(writer, "end", QXmppUtils::datetimeToString(m_end)); + helperToXmlAddAttribute(writer, QSL("end"), QXmppUtils::datetimeToString(m_end)); if (!m_rsmQuery.isNull()) m_rsmQuery.toXml(writer); else if (!m_rsmReply.isNull()) @@ -431,19 +431,19 @@ void QXmppArchiveListIq::toXmlElementFromChild(QXmlStreamWriter *writer) const bool QXmppArchivePrefIq::isArchivePrefIq(const QDomElement &element) { - QDomElement prefElement = element.firstChildElement("pref"); + QDomElement prefElement = element.firstChildElement(QSL("pref")); return (prefElement.namespaceURI() == ns_archive); } void QXmppArchivePrefIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("pref"); + QDomElement queryElement = element.firstChildElement(QSL("pref")); Q_UNUSED(queryElement); } void QXmppArchivePrefIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("pref"); + writer->writeStartElement(QSL("pref")); writer->writeDefaultNamespace(ns_archive); writer->writeEndElement(); } @@ -503,28 +503,28 @@ void QXmppArchiveRemoveIq::setEnd(const QDateTime &end) /// \cond bool QXmppArchiveRemoveIq::isArchiveRemoveIq(const QDomElement &element) { - QDomElement retrieveElement = element.firstChildElement("remove"); + QDomElement retrieveElement = element.firstChildElement(QSL("remove")); return (retrieveElement.namespaceURI() == ns_archive); } void QXmppArchiveRemoveIq::parseElementFromChild(const QDomElement &element) { - QDomElement listElement = element.firstChildElement("remove"); - m_with = listElement.attribute("with"); - m_start = QXmppUtils::datetimeFromString(listElement.attribute("start")); - m_end = QXmppUtils::datetimeFromString(listElement.attribute("end")); + QDomElement listElement = element.firstChildElement(QSL("remove")); + m_with = listElement.attribute(QSL("with")); + m_start = QXmppUtils::datetimeFromString(listElement.attribute(QSL("start"))); + m_end = QXmppUtils::datetimeFromString(listElement.attribute(QSL("end"))); } void QXmppArchiveRemoveIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("remove"); + writer->writeStartElement(QSL("remove")); writer->writeDefaultNamespace(ns_archive); if (!m_with.isEmpty()) - helperToXmlAddAttribute(writer, "with", m_with); + helperToXmlAddAttribute(writer, QSL("with"), m_with); if (m_start.isValid()) - helperToXmlAddAttribute(writer, "start", QXmppUtils::datetimeToString(m_start)); + helperToXmlAddAttribute(writer, QSL("start"), QXmppUtils::datetimeToString(m_start)); if (m_end.isValid()) - helperToXmlAddAttribute(writer, "end", QXmppUtils::datetimeToString(m_end)); + helperToXmlAddAttribute(writer, QSL("end"), QXmppUtils::datetimeToString(m_end)); writer->writeEndElement(); } /// \endcond @@ -589,25 +589,25 @@ void QXmppArchiveRetrieveIq::setResultSetQuery(const QXmppResultSetQuery &rsm) /// \cond bool QXmppArchiveRetrieveIq::isArchiveRetrieveIq(const QDomElement &element) { - QDomElement retrieveElement = element.firstChildElement("retrieve"); + QDomElement retrieveElement = element.firstChildElement(QSL("retrieve")); return (retrieveElement.namespaceURI() == ns_archive); } void QXmppArchiveRetrieveIq::parseElementFromChild(const QDomElement &element) { - QDomElement retrieveElement = element.firstChildElement("retrieve"); - m_with = retrieveElement.attribute("with"); - m_start = QXmppUtils::datetimeFromString(retrieveElement.attribute("start")); + QDomElement retrieveElement = element.firstChildElement(QSL("retrieve")); + m_with = retrieveElement.attribute(QSL("with")); + m_start = QXmppUtils::datetimeFromString(retrieveElement.attribute(QSL("start"))); m_rsmQuery.parse(retrieveElement); } void QXmppArchiveRetrieveIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("retrieve"); + writer->writeStartElement(QSL("retrieve")); writer->writeDefaultNamespace(ns_archive); - helperToXmlAddAttribute(writer, "with", m_with); - helperToXmlAddAttribute(writer, "start", QXmppUtils::datetimeToString(m_start)); + helperToXmlAddAttribute(writer, QSL("with"), m_with); + helperToXmlAddAttribute(writer, QSL("start"), QXmppUtils::datetimeToString(m_start)); if (!m_rsmQuery.isNull()) m_rsmQuery.toXml(writer); writer->writeEndElement(); diff --git a/src/base/QXmppBindIq.cpp b/src/base/QXmppBindIq.cpp index 0089b860..20d89074 100644 --- a/src/base/QXmppBindIq.cpp +++ b/src/base/QXmppBindIq.cpp @@ -68,25 +68,25 @@ void QXmppBindIq::setResource(const QString &resource) /// \cond bool QXmppBindIq::isBindIq(const QDomElement &element) { - QDomElement bindElement = element.firstChildElement("bind"); + QDomElement bindElement = element.firstChildElement(QSL("bind")); return (bindElement.namespaceURI() == ns_bind); } void QXmppBindIq::parseElementFromChild(const QDomElement &element) { - QDomElement bindElement = element.firstChildElement("bind"); - m_jid = bindElement.firstChildElement("jid").text(); - m_resource = bindElement.firstChildElement("resource").text(); + QDomElement bindElement = element.firstChildElement(QSL("bind")); + m_jid = bindElement.firstChildElement(QSL("jid")).text(); + m_resource = bindElement.firstChildElement(QSL("resource")).text(); } void QXmppBindIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("bind"); + writer->writeStartElement(QSL("bind")); writer->writeDefaultNamespace(ns_bind); if (!m_jid.isEmpty()) - helperToXmlAddTextElement(writer, "jid", m_jid); + helperToXmlAddTextElement(writer, QSL("jid"), m_jid); if (!m_resource.isEmpty()) - helperToXmlAddTextElement(writer, "resource", m_resource); + helperToXmlAddTextElement(writer, QSL("resource"), m_resource); writer->writeEndElement(); } /// \endcond diff --git a/src/base/QXmppBitsOfBinaryContentId.cpp b/src/base/QXmppBitsOfBinaryContentId.cpp index 630e59a7..f55f3439 100644 --- a/src/base/QXmppBitsOfBinaryContentId.cpp +++ b/src/base/QXmppBitsOfBinaryContentId.cpp @@ -27,25 +27,25 @@ #include <QSharedData> #include <QString> -#define CONTENTID_URL QStringLiteral("cid:") +#define CONTENTID_URL QSL("cid:") #define CONTENTID_URL_LENGTH 4 -#define CONTENTID_POSTFIX QStringLiteral("@bob.xmpp.org") +#define CONTENTID_POSTFIX QSL("@bob.xmpp.org") #define CONTENTID_POSTFIX_LENGTH 13 -#define CONTENTID_HASH_SEPARATOR QStringLiteral("+") +#define CONTENTID_HASH_SEPARATOR QSL("+") static const QMap<QCryptographicHash::Algorithm, QString> HASH_ALGORITHMS = { - { QCryptographicHash::Sha1, QStringLiteral("sha1") }, + { QCryptographicHash::Sha1, QSL("sha1") }, #ifndef QT_CRYPTOGRAPHICHASH_ONLY_SHA1 - { QCryptographicHash::Md4, QStringLiteral("md4") }, - { QCryptographicHash::Md5, QStringLiteral("md5") }, - { QCryptographicHash::Sha224, QStringLiteral("sha224") }, - { QCryptographicHash::Sha256, QStringLiteral("sha256") }, - { QCryptographicHash::Sha384, QStringLiteral("sha384") }, - { QCryptographicHash::Sha512, QStringLiteral("sha512") }, - { QCryptographicHash::Sha3_224, QStringLiteral("sha3-224") }, - { QCryptographicHash::Sha3_256, QStringLiteral("sha3-256") }, - { QCryptographicHash::Sha3_384, QStringLiteral("sha3-384") }, - { QCryptographicHash::Sha3_512, QStringLiteral("sha3-512") }, + { QCryptographicHash::Md4, QSL("md4") }, + { QCryptographicHash::Md5, QSL("md5") }, + { QCryptographicHash::Sha224, QSL("sha224") }, + { QCryptographicHash::Sha256, QSL("sha256") }, + { QCryptographicHash::Sha384, QSL("sha384") }, + { QCryptographicHash::Sha512, QSL("sha512") }, + { QCryptographicHash::Sha3_224, QSL("sha3-224") }, + { QCryptographicHash::Sha3_256, QSL("sha3-256") }, + { QCryptographicHash::Sha3_384, QSL("sha3-384") }, + { QCryptographicHash::Sha3_512, QSL("sha3-512") }, #endif }; diff --git a/src/base/QXmppBitsOfBinaryData.cpp b/src/base/QXmppBitsOfBinaryData.cpp index 2528b494..f6b0f303 100644 --- a/src/base/QXmppBitsOfBinaryData.cpp +++ b/src/base/QXmppBitsOfBinaryData.cpp @@ -133,26 +133,26 @@ void QXmppBitsOfBinaryData::setData(const QByteArray &data) bool QXmppBitsOfBinaryData::isBitsOfBinaryData(const QDomElement &element) { - return element.tagName() == QStringLiteral("data") && element.namespaceURI() == ns_bob; + return element.tagName() == QSL("data") && element.namespaceURI() == ns_bob; } /// \cond void QXmppBitsOfBinaryData::parseElementFromChild(const QDomElement &dataElement) { - d->cid = QXmppBitsOfBinaryContentId::fromContentId(dataElement.attribute("cid")); - d->maxAge = dataElement.attribute("max-age", "-1").toInt(); - d->contentType = QMimeDatabase().mimeTypeForName(dataElement.attribute("type")); + d->cid = QXmppBitsOfBinaryContentId::fromContentId(dataElement.attribute(QSL("cid"))); + d->maxAge = dataElement.attribute(QSL("max-age"), QSL("-1")).toInt(); + d->contentType = QMimeDatabase().mimeTypeForName(dataElement.attribute(QSL("type"))); d->data = QByteArray::fromBase64(dataElement.text().toUtf8()); } void QXmppBitsOfBinaryData::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("data"); + writer->writeStartElement(QSL("data")); writer->writeDefaultNamespace(ns_bob); - helperToXmlAddAttribute(writer, "cid", d->cid.toContentId()); + helperToXmlAddAttribute(writer, QSL("cid"), d->cid.toContentId()); if (d->maxAge > -1) - helperToXmlAddAttribute(writer, "max-age", QString::number(d->maxAge)); - helperToXmlAddAttribute(writer, "type", d->contentType.name()); + helperToXmlAddAttribute(writer, QSL("max-age"), QString::number(d->maxAge)); + helperToXmlAddAttribute(writer, QSL("type"), d->contentType.name()); writer->writeCharacters(d->data.toBase64()); writer->writeEndElement(); } diff --git a/src/base/QXmppBookmarkSet.cpp b/src/base/QXmppBookmarkSet.cpp index e32f2eb8..43b7739b 100644 --- a/src/base/QXmppBookmarkSet.cpp +++ b/src/base/QXmppBookmarkSet.cpp @@ -178,7 +178,7 @@ void QXmppBookmarkSet::setUrls(const QList<QXmppBookmarkUrl> &urls) /// \cond bool QXmppBookmarkSet::isBookmarkSet(const QDomElement &element) { - return element.tagName() == "storage" && + return element.tagName() == QSL("storage") && element.namespaceURI() == ns_bookmarks; } @@ -186,17 +186,17 @@ void QXmppBookmarkSet::parse(const QDomElement &element) { QDomElement childElement = element.firstChildElement(); while (!childElement.isNull()) { - if (childElement.tagName() == "conference") { + if (childElement.tagName() == QSL("conference")) { QXmppBookmarkConference conference; - conference.setAutoJoin(childElement.attribute("autojoin") == "true" || childElement.attribute("autojoin") == "1"); - conference.setJid(childElement.attribute("jid")); - conference.setName(childElement.attribute("name")); - conference.setNickName(childElement.firstChildElement("nick").text()); + conference.setAutoJoin(childElement.attribute(QSL("autojoin")) == QSL("true") || childElement.attribute("autojoin") == "1"); + conference.setJid(childElement.attribute(QSL("jid"))); + conference.setName(childElement.attribute(QSL("name"))); + conference.setNickName(childElement.firstChildElement(QSL("nick")).text()); m_conferences << conference; - } else if (childElement.tagName() == "url") { + } else if (childElement.tagName() == QSL("url")) { QXmppBookmarkUrl url; - url.setName(childElement.attribute("name")); - url.setUrl(childElement.attribute("url")); + url.setName(childElement.attribute(QSL("name"))); + url.setUrl(childElement.attribute(QSL("url"))); m_urls << url; } childElement = childElement.nextSiblingElement(); @@ -205,22 +205,22 @@ void QXmppBookmarkSet::parse(const QDomElement &element) void QXmppBookmarkSet::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("storage"); + writer->writeStartElement(QSL("storage")); writer->writeDefaultNamespace(ns_bookmarks); for (const auto &conference : m_conferences) { - writer->writeStartElement("conference"); + writer->writeStartElement(QSL("conference")); if (conference.autoJoin()) - helperToXmlAddAttribute(writer, "autojoin", "true"); - helperToXmlAddAttribute(writer, "jid", conference.jid()); - helperToXmlAddAttribute(writer, "name", conference.name()); + helperToXmlAddAttribute(writer, QSL("autojoin"), QSL("true")); + helperToXmlAddAttribute(writer, QSL("jid"), conference.jid()); + helperToXmlAddAttribute(writer, QSL("name"), conference.name()); if (!conference.nickName().isEmpty()) - helperToXmlAddTextElement(writer, "nick", conference.nickName()); + helperToXmlAddTextElement(writer, QSL("nick"), conference.nickName()); writer->writeEndElement(); } for (const auto &url : m_urls) { - writer->writeStartElement("url"); - helperToXmlAddAttribute(writer, "name", url.name()); - helperToXmlAddAttribute(writer, "url", url.url().toString()); + writer->writeStartElement(QSL("url")); + helperToXmlAddAttribute(writer, QSL("name"), url.name()); + helperToXmlAddAttribute(writer, QSL("url"), url.url().toString()); writer->writeEndElement(); } writer->writeEndElement(); diff --git a/src/base/QXmppByteStreamIq.cpp b/src/base/QXmppByteStreamIq.cpp index 378364ff..a79f1624 100644 --- a/src/base/QXmppByteStreamIq.cpp +++ b/src/base/QXmppByteStreamIq.cpp @@ -121,60 +121,60 @@ void QXmppByteStreamIq::setStreamHostUsed(const QString &jid) /// \cond bool QXmppByteStreamIq::isByteStreamIq(const QDomElement &element) { - return element.firstChildElement("query").namespaceURI() == ns_bytestreams; + return element.firstChildElement(QSL("query")).namespaceURI() == ns_bytestreams; } void QXmppByteStreamIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - m_sid = queryElement.attribute("sid"); - const QString modeStr = queryElement.attribute("mode"); - if (modeStr == "tcp") + QDomElement queryElement = element.firstChildElement(QSL("query")); + m_sid = queryElement.attribute(QSL("sid")); + const QString modeStr = queryElement.attribute(QSL("mode")); + if (modeStr == QSL("tcp")) m_mode = Tcp; - else if (modeStr == "udp") + else if (modeStr == QSL("udp")) m_mode = Udp; else m_mode = None; - QDomElement hostElement = queryElement.firstChildElement("streamhost"); + QDomElement hostElement = queryElement.firstChildElement(QSL("streamhost")); while (!hostElement.isNull()) { StreamHost streamHost; - streamHost.setHost(hostElement.attribute("host")); - streamHost.setJid(hostElement.attribute("jid")); - streamHost.setPort(hostElement.attribute("port").toInt()); - streamHost.setZeroconf(hostElement.attribute("zeroconf")); + streamHost.setHost(hostElement.attribute(QSL("host"))); + streamHost.setJid(hostElement.attribute(QSL("jid"))); + streamHost.setPort(hostElement.attribute(QSL("port")).toInt()); + streamHost.setZeroconf(hostElement.attribute(QSL("zeroconf"))); m_streamHosts.append(streamHost); - hostElement = hostElement.nextSiblingElement("streamhost"); + hostElement = hostElement.nextSiblingElement(QSL("streamhost")); } - m_activate = queryElement.firstChildElement("activate").text(); - m_streamHostUsed = queryElement.firstChildElement("streamhost-used").attribute("jid"); + m_activate = queryElement.firstChildElement(QSL("activate")).text(); + m_streamHostUsed = queryElement.firstChildElement(QSL("streamhost-used")).attribute(QSL("jid")); } void QXmppByteStreamIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_bytestreams); - helperToXmlAddAttribute(writer, "sid", m_sid); + helperToXmlAddAttribute(writer, QSL("sid"), m_sid); QString modeStr; if (m_mode == Tcp) - modeStr = "tcp"; + modeStr = QSL("tcp"); else if (m_mode == Udp) - modeStr = "udp"; - helperToXmlAddAttribute(writer, "mode", modeStr); + modeStr = QSL("udp"); + helperToXmlAddAttribute(writer, QSL("mode"), modeStr); for (const auto &streamHost : m_streamHosts) { - writer->writeStartElement("streamhost"); - helperToXmlAddAttribute(writer, "host", streamHost.host()); - helperToXmlAddAttribute(writer, "jid", streamHost.jid()); - helperToXmlAddAttribute(writer, "port", QString::number(streamHost.port())); - helperToXmlAddAttribute(writer, "zeroconf", streamHost.zeroconf()); + writer->writeStartElement(QSL("streamhost")); + helperToXmlAddAttribute(writer, QSL("host"), streamHost.host()); + helperToXmlAddAttribute(writer, QSL("jid"), streamHost.jid()); + helperToXmlAddAttribute(writer, QSL("port"), QString::number(streamHost.port())); + helperToXmlAddAttribute(writer, QSL("zeroconf"), streamHost.zeroconf()); writer->writeEndElement(); } if (!m_activate.isEmpty()) - helperToXmlAddTextElement(writer, "activate", m_activate); + helperToXmlAddTextElement(writer, QSL("activate"), m_activate); if (!m_streamHostUsed.isEmpty()) { - writer->writeStartElement("streamhost-used"); - helperToXmlAddAttribute(writer, "jid", m_streamHostUsed); + writer->writeStartElement(QSL("streamhost-used")); + helperToXmlAddAttribute(writer, QSL("jid"), m_streamHostUsed); writer->writeEndElement(); } diff --git a/src/base/QXmppDataForm.cpp b/src/base/QXmppDataForm.cpp index 8239b86a..93ceaf90 100644 --- a/src/base/QXmppDataForm.cpp +++ b/src/base/QXmppDataForm.cpp @@ -694,14 +694,14 @@ void QXmppDataForm::parse(const QDomElement &element) field.mediaSize().setHeight(mediaElement.attribute("height", "-1").toInt()); field.mediaSize().setWidth(mediaElement.attribute("width", "-1").toInt()); - QDomElement uriElement = mediaElement.firstChildElement(QStringLiteral("uri")); + QDomElement uriElement = mediaElement.firstChildElement(QSL("uri")); while (!uriElement.isNull()) { field.mediaSources() << MediaSource( QUrl(uriElement.text()), QMimeDatabase().mimeTypeForName( - uriElement.attribute(QStringLiteral("type")))); - uriElement = uriElement.nextSiblingElement(QStringLiteral("uri")); + uriElement.attribute(QSL("type")))); + uriElement = uriElement.nextSiblingElement(QSL("uri")); } } @@ -794,18 +794,18 @@ void QXmppDataForm::toXml(QXmlStreamWriter *writer) const if (field.mediaSize().width() > 0) helperToXmlAddAttribute( writer, - QStringLiteral("width"), + QSL("width"), QString::number(field.mediaSize().width())); if (field.mediaSize().height() > 0) helperToXmlAddAttribute( writer, - QStringLiteral("height"), + QSL("height"), QString::number(field.mediaSize().height())); const QVector<MediaSource> &sources = field.mediaSources(); for (const auto &source : sources) { - writer->writeStartElement(QStringLiteral("uri")); - helperToXmlAddAttribute(writer, QStringLiteral("type"), source.contentType().name()); + writer->writeStartElement(QSL("uri")); + helperToXmlAddAttribute(writer, QSL("type"), source.contentType().name()); writer->writeCharacters(source.uri().toString()); writer->writeEndElement(); } diff --git a/src/base/QXmppGlobal.h.in b/src/base/QXmppGlobal.h.in index fa4736f4..83948bb8 100644 --- a/src/base/QXmppGlobal.h.in +++ b/src/base/QXmppGlobal.h.in @@ -62,5 +62,8 @@ inline QLatin1String QXmppVersion() // This works exactly like QT_DEPRECATED_SINCE, but checks QXMPP_DISABLE_DEPRECATED_BEFORE instead. #define QXMPP_DEPRECATED_SINCE(major, minor) (QT_VERSION_CHECK(major, minor, 0) > QXMPP_DISABLE_DEPRECATED_BEFORE) +#define QSL QStringLiteral +#define QBL QByteArrayLiteral + #endif //QXMPPGLOBAL_H diff --git a/src/base/QXmppJingleIq.cpp b/src/base/QXmppJingleIq.cpp index ea95c0e0..b37c75cd 100644 --- a/src/base/QXmppJingleIq.cpp +++ b/src/base/QXmppJingleIq.cpp @@ -96,12 +96,12 @@ static QByteArray parseFingerprint(const QString &fingerprint) static QString addressToSdp(const QHostAddress &host) { - return QString("IN %1 %2").arg(host.protocol() == QAbstractSocket::IPv6Protocol ? "IP6" : "IP4", host.toString()); + return QSL("IN %1 %2").arg(host.protocol() == QAbstractSocket::IPv6Protocol ? QSL("IP6") : QSL("IP4"), host.toString()); } static bool candidateParseSdp(QXmppJingleCandidate *candidate, const QString &sdp) { - if (!sdp.startsWith("candidate:")) + if (!sdp.startsWith(QSL("candidate:"))) return false; const QStringList bits = sdp.mid(10).split(" "); @@ -115,12 +115,12 @@ static bool candidateParseSdp(QXmppJingleCandidate *candidate, const QString &sd candidate->setHost(QHostAddress(bits[4])); candidate->setPort(bits[5].toInt()); for (int i = 6; i < bits.size() - 1; i += 2) { - if (bits[i] == "typ") { + if (bits[i] == QSL("typ")) { bool ok; candidate->setType(QXmppJingleCandidate::typeFromString(bits[i + 1], &ok)); if (!ok) return false; - } else if (bits[i] == "generation") { + } else if (bits[i] == QSL("generation")) { candidate->setGeneration(bits[i + 1].toInt()); } else { qWarning() << "Candidate SDP contains unknown attribute" << bits[i]; @@ -132,7 +132,7 @@ static bool candidateParseSdp(QXmppJingleCandidate *candidate, const QString &sd static QString candidateToSdp(const QXmppJingleCandidate &candidate) { - return QString("candidate:%1 %2 %3 %4 %5 %6 typ %7 generation %8").arg(candidate.foundation(), QString::number(candidate.component()), candidate.protocol(), QString::number(candidate.priority()), candidate.host().toString(), QString::number(candidate.port()), QXmppJingleCandidate::typeToString(candidate.type()), QString::number(candidate.generation())); + return QSL("candidate:%1 %2 %3 %4 %5 %6 typ %7 generation %8").arg(candidate.foundation(), QString::number(candidate.component()), candidate.protocol(), QString::number(candidate.priority()), candidate.host().toString(), QString::number(candidate.port()), QXmppJingleCandidate::typeToString(candidate.type()), QString::number(candidate.generation())); } class QXmppJingleIqContentPrivate : public QSharedData @@ -356,43 +356,43 @@ void QXmppJingleIq::Content::setTransportFingerprintSetup(const QString &setup) /// \cond void QXmppJingleIq::Content::parse(const QDomElement &element) { - d->creator = element.attribute("creator"); - d->disposition = element.attribute("disposition"); - d->name = element.attribute("name"); - d->senders = element.attribute("senders"); + d->creator = element.attribute(QSL("creator")); + d->disposition = element.attribute(QSL("disposition")); + d->name = element.attribute(QSL("name")); + d->senders = element.attribute(QSL("senders")); // description - QDomElement descriptionElement = element.firstChildElement("description"); + QDomElement descriptionElement = element.firstChildElement(QSL("description")); d->descriptionType = descriptionElement.namespaceURI(); - d->descriptionMedia = descriptionElement.attribute("media"); - d->descriptionSsrc = descriptionElement.attribute("ssrc").toULong(); - QDomElement child = descriptionElement.firstChildElement("payload-type"); + d->descriptionMedia = descriptionElement.attribute(QSL("media")); + d->descriptionSsrc = descriptionElement.attribute(QSL("ssrc")).toULong(); + QDomElement child = descriptionElement.firstChildElement(QSL("payload-type")); while (!child.isNull()) { QXmppJinglePayloadType payload; payload.parse(child); d->payloadTypes << payload; - child = child.nextSiblingElement("payload-type"); + child = child.nextSiblingElement(QSL("payload-type")); } // transport - QDomElement transportElement = element.firstChildElement("transport"); + QDomElement transportElement = element.firstChildElement(QSL("transport")); d->transportType = transportElement.namespaceURI(); - d->transportUser = transportElement.attribute("ufrag"); - d->transportPassword = transportElement.attribute("pwd"); - child = transportElement.firstChildElement("candidate"); + d->transportUser = transportElement.attribute(QSL("ufrag")); + d->transportPassword = transportElement.attribute(QSL("pwd")); + child = transportElement.firstChildElement(QSL("candidate")); while (!child.isNull()) { QXmppJingleCandidate candidate; candidate.parse(child); d->transportCandidates << candidate; - child = child.nextSiblingElement("candidate"); + child = child.nextSiblingElement(QSL("candidate")); } - child = transportElement.firstChildElement("fingerprint"); + child = transportElement.firstChildElement(QSL("fingerprint")); /// XEP-0320 if (!child.isNull()) { d->transportFingerprint = parseFingerprint(child.text()); - d->transportFingerprintHash = child.attribute("hash"); - d->transportFingerprintSetup = child.attribute("setup"); + d->transportFingerprintHash = child.attribute(QSL("hash")); + d->transportFingerprintSetup = child.attribute(QSL("setup")); } } @@ -401,19 +401,19 @@ void QXmppJingleIq::Content::toXml(QXmlStreamWriter *writer) const if (d->creator.isEmpty() || d->name.isEmpty()) return; - writer->writeStartElement("content"); - helperToXmlAddAttribute(writer, "creator", d->creator); - helperToXmlAddAttribute(writer, "disposition", d->disposition); - helperToXmlAddAttribute(writer, "name", d->name); - helperToXmlAddAttribute(writer, "senders", d->senders); + writer->writeStartElement(QSL("content")); + helperToXmlAddAttribute(writer, QSL("creator"), d->creator); + helperToXmlAddAttribute(writer, QSL("disposition"), d->disposition); + helperToXmlAddAttribute(writer, QSL("name"), d->name); + helperToXmlAddAttribute(writer, QSL("senders"), d->senders); // description if (!d->descriptionType.isEmpty() || !d->payloadTypes.isEmpty()) { - writer->writeStartElement("description"); + writer->writeStartElement(QSL("description")); writer->writeDefaultNamespace(d->descriptionType); - helperToXmlAddAttribute(writer, "media", d->descriptionMedia); + helperToXmlAddAttribute(writer, QSL("media"), d->descriptionMedia); if (d->descriptionSsrc) - writer->writeAttribute("ssrc", QString::number(d->descriptionSsrc)); + writer->writeAttribute(QSL("ssrc"), QString::number(d->descriptionSsrc)); for (const auto &payload : d->payloadTypes) payload.toXml(writer); writer->writeEndElement(); @@ -421,19 +421,19 @@ void QXmppJingleIq::Content::toXml(QXmlStreamWriter *writer) const // transport if (!d->transportType.isEmpty() || !d->transportCandidates.isEmpty()) { - writer->writeStartElement("transport"); + writer->writeStartElement(QSL("transport")); writer->writeDefaultNamespace(d->transportType); - helperToXmlAddAttribute(writer, "ufrag", d->transportUser); - helperToXmlAddAttribute(writer, "pwd", d->transportPassword); + helperToXmlAddAttribute(writer, QSL("ufrag"), d->transportUser); + helperToXmlAddAttribute(writer, QSL("pwd"), d->transportPassword); for (const auto &candidate : d->transportCandidates) candidate.toXml(writer); // XEP-0320 if (!d->transportFingerprint.isEmpty() && !d->transportFingerprintHash.isEmpty()) { - writer->writeStartElement("fingerprint"); + writer->writeStartElement(QSL("fingerprint")); writer->writeDefaultNamespace(ns_jingle_dtls); - writer->writeAttribute("hash", d->transportFingerprintHash); - writer->writeAttribute("setup", d->transportFingerprintSetup); + writer->writeAttribute(QSL("hash"), d->transportFingerprintHash); + writer->writeAttribute(QSL("setup"), d->transportFingerprintSetup); writer->writeCharacters(formatFingerprint(d->transportFingerprint)); writer->writeEndElement(); } @@ -449,25 +449,25 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) for (auto &line : sdp.split('\n')) { if (line.endsWith('\r')) line.resize(line.size() - 1); - if (line.startsWith("a=")) { + if (line.startsWith(QSL("a="))) { int idx = line.indexOf(':'); const QString attrName = idx != -1 ? line.mid(2, idx - 2) : line.mid(2); const QString attrValue = idx != -1 ? line.mid(idx + 1) : ""; - if (attrName == "candidate") { + if (attrName == QSL("candidate")) { QXmppJingleCandidate candidate; if (!candidateParseSdp(&candidate, line.mid(2))) { qWarning() << "Could not parse candidate" << line; return false; } addTransportCandidate(candidate); - } else if (attrName == "fingerprint") { + } else if (attrName == QSL("fingerprint")) { const QStringList bits = attrValue.split(' '); if (bits.size() > 1) { d->transportFingerprintHash = bits[0]; d->transportFingerprint = parseFingerprint(bits[1]); } - } else if (attrName == "fmtp") { + } else if (attrName == QSL("fmtp")) { int spIdx = attrValue.indexOf(' '); if (spIdx == -1) { qWarning() << "Could not parse payload parameters" << line; @@ -478,8 +478,8 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) for (auto &payload : payloads) { if (payload.id() == id) { QMap<QString, QString> params; - if (payload.name() == "telephone-event") { - params.insert("events", paramStr); + if (payload.name() == QSL("telephone-event")) { + params.insert(QSL("events"), paramStr); } else { for (const auto &p : paramStr.split(QRegExp(";\\s*"))) { QStringList bits = p.split('='); @@ -490,7 +490,7 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) payload.setParameters(params); } } - } else if (attrName == "rtpmap") { + } else if (attrName == QSL("rtpmap")) { // payload type map const QStringList bits = attrValue.split(' '); if (bits.size() != 2) @@ -510,13 +510,13 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) payload.setChannels(args[2].toInt()); } } - } else if (attrName == "ice-ufrag") { + } else if (attrName == QSL("ice-ufrag")) { d->transportUser = attrValue; - } else if (attrName == "ice-pwd") { + } else if (attrName == QSL("ice-pwd")) { d->transportPassword = attrValue; - } else if (attrName == "setup") { + } else if (attrName == QSL("setup")) { d->transportFingerprintSetup = attrValue; - } else if (attrName == "ssrc") { + } else if (attrName == QSL("ssrc")) { const QStringList bits = attrValue.split(' '); if (bits.isEmpty()) { qWarning() << "Could not parse ssrc" << line; @@ -524,7 +524,7 @@ bool QXmppJingleIq::Content::parseSdp(const QString &sdp) } d->descriptionSsrc = bits[0].toULong(); } - } else if (line.startsWith("m=")) { + } else if (line.startsWith(QSL("m="))) { // FIXME: what do we do with the profile (bits[2]) ? QStringList bits = line.mid(2).split(' '); if (bits.size() < 3) { @@ -587,32 +587,32 @@ QString QXmppJingleIq::Content::toSdp() const // payload parameters QStringList paramList; const QMap<QString, QString> params = payload.parameters(); - if (payload.name() == "telephone-event") { - if (params.contains("events")) - paramList << params.value("events"); + if (payload.name() == QSL("telephone-event")) { + if (params.contains(QSL("events"))) + paramList << params.value(QSL("events")); } else { QMap<QString, QString>::const_iterator i; for (i = params.begin(); i != params.end(); ++i) - paramList << i.key() + "=" + i.value(); + paramList << i.key() + QSL("=") + i.value(); } if (!paramList.isEmpty()) - attrs << "a=fmtp:" + QByteArray::number(payload.id()) + " " + paramList.join("; "); + attrs << QSL("a=fmtp:") + QByteArray::number(payload.id()) + QSL(" ") + paramList.join("; "); } - sdp << QString("m=%1 %2 RTP/AVP%3").arg(d->descriptionMedia, QString::number(localRtpPort), payloads); - sdp << QString("c=%1").arg(addressToSdp(localRtpAddress)); + sdp << QSL("m=%1 %2 RTP/AVP%3").arg(d->descriptionMedia, QString::number(localRtpPort), payloads); + sdp << QSL("c=%1").arg(addressToSdp(localRtpAddress)); sdp += attrs; // transport for (const auto &candidate : d->transportCandidates) - sdp << QString("a=%1").arg(candidateToSdp(candidate)); + sdp << QSL("a=%1").arg(candidateToSdp(candidate)); if (!d->transportUser.isEmpty()) - sdp << QString("a=ice-ufrag:%1").arg(d->transportUser); + sdp << QSL("a=ice-ufrag:%1").arg(d->transportUser); if (!d->transportPassword.isEmpty()) - sdp << QString("a=ice-pwd:%1").arg(d->transportPassword); + sdp << QSL("a=ice-pwd:%1").arg(d->transportPassword); if (!d->transportFingerprint.isEmpty() && !d->transportFingerprintHash.isEmpty()) - sdp << QString("a=fingerprint:%1 %2").arg(d->transportFingerprintHash, formatFingerprint(d->transportFingerprint)); + sdp << QSL("a=fingerprint:%1 %2").arg(d->transportFingerprintHash, formatFingerprint(d->transportFingerprint)); if (!d->transportFingerprintSetup.isEmpty()) - sdp << QString("a=setup:%1").arg(d->transportFingerprintSetup); + sdp << QSL("a=setup:%1").arg(d->transportFingerprintSetup); return sdp.join("\r\n") + "\r\n"; } @@ -655,7 +655,7 @@ void QXmppJingleIq::Reason::setType(QXmppJingleIq::Reason::Type type) /// \cond void QXmppJingleIq::Reason::parse(const QDomElement &element) { - m_text = element.firstChildElement("text").text(); + m_text = element.firstChildElement(QSL("text")).text(); for (int i = AlternativeSession; i <= UnsupportedTransports; i++) { if (!element.firstChildElement(jingle_reasons[i]).isNull()) { m_type = static_cast<Type>(i); @@ -669,9 +669,9 @@ void QXmppJingleIq::Reason::toXml(QXmlStreamWriter *writer) const if (m_type < AlternativeSession || m_type > UnsupportedTransports) return; - writer->writeStartElement("reason"); + writer->writeStartElement(QSL("reason")); if (!m_text.isEmpty()) - helperToXmlAddTextElement(writer, "text", m_text); + helperToXmlAddTextElement(writer, QSL("text"), m_text); writer->writeEmptyElement(jingle_reasons[m_type]); writer->writeEndElement(); } @@ -845,56 +845,56 @@ void QXmppJingleIq::setSid(const QString &sid) /// \cond bool QXmppJingleIq::isJingleIq(const QDomElement &element) { - QDomElement jingleElement = element.firstChildElement("jingle"); + QDomElement jingleElement = element.firstChildElement(QSL("jingle")); return (jingleElement.namespaceURI() == ns_jingle); } void QXmppJingleIq::parseElementFromChild(const QDomElement &element) { - QDomElement jingleElement = element.firstChildElement("jingle"); - const QString action = jingleElement.attribute("action"); + QDomElement jingleElement = element.firstChildElement(QSL("jingle")); + const QString action = jingleElement.attribute(QSL("action")); for (int i = ContentAccept; i <= TransportReplace; i++) { if (action == jingle_actions[i]) { d->action = static_cast<Action>(i); break; } } - d->initiator = jingleElement.attribute("initiator"); - d->responder = jingleElement.attribute("responder"); - d->sid = jingleElement.attribute("sid"); + d->initiator = jingleElement.attribute(QSL("initiator")); + d->responder = jingleElement.attribute(QSL("responder")); + d->sid = jingleElement.attribute(QSL("sid")); // content d->contents.clear(); - QDomElement contentElement = jingleElement.firstChildElement("content"); + QDomElement contentElement = jingleElement.firstChildElement(QSL("content")); while (!contentElement.isNull()) { QXmppJingleIq::Content content; content.parse(contentElement); addContent(content); - contentElement = contentElement.nextSiblingElement("content"); + contentElement = contentElement.nextSiblingElement(QSL("content")); } - QDomElement reasonElement = jingleElement.firstChildElement("reason"); + QDomElement reasonElement = jingleElement.firstChildElement(QSL("reason")); d->reason.parse(reasonElement); // ringing - QDomElement ringingElement = jingleElement.firstChildElement("ringing"); + QDomElement ringingElement = jingleElement.firstChildElement(QSL("ringing")); d->ringing = (ringingElement.namespaceURI() == ns_jingle_rtp_info); } void QXmppJingleIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("jingle"); + writer->writeStartElement(QSL("jingle")); writer->writeDefaultNamespace(ns_jingle); - helperToXmlAddAttribute(writer, "action", jingle_actions[d->action]); - helperToXmlAddAttribute(writer, "initiator", d->initiator); - helperToXmlAddAttribute(writer, "responder", d->responder); - helperToXmlAddAttribute(writer, "sid", d->sid); + helperToXmlAddAttribute(writer, QSL("action"), jingle_actions[d->action]); + helperToXmlAddAttribute(writer, QSL("initiator"), d->initiator); + helperToXmlAddAttribute(writer, QSL("responder"), d->responder); + helperToXmlAddAttribute(writer, QSL("sid"), d->sid); for (const auto &content : d->contents) content.toXml(writer); d->reason.toXml(writer); // ringing if (d->ringing) { - writer->writeStartElement("ringing"); + writer->writeStartElement(QSL("ringing")); writer->writeDefaultNamespace(ns_jingle_rtp_info); writer->writeEndElement(); } @@ -1133,44 +1133,44 @@ bool QXmppJingleCandidate::isNull() const /// \cond void QXmppJingleCandidate::parse(const QDomElement &element) { - d->component = element.attribute("component").toInt(); - d->foundation = element.attribute("foundation"); - d->generation = element.attribute("generation").toInt(); - d->host = QHostAddress(element.attribute("ip")); - d->id = element.attribute("id"); - d->network = element.attribute("network").toInt(); - d->port = element.attribute("port").toInt(); - d->priority = element.attribute("priority").toInt(); - d->protocol = element.attribute("protocol"); - d->type = typeFromString(element.attribute("type")); + d->component = element.attribute(QSL("component")).toInt(); + d->foundation = element.attribute(QSL("foundation")); + d->generation = element.attribute(QSL("generation")).toInt(); + d->host = QHostAddress(element.attribute(QSL("ip"))); + d->id = element.attribute(QSL("id")); + d->network = element.attribute(QSL("network")).toInt(); + d->port = element.attribute(QSL("port")).toInt(); + d->priority = element.attribute(QSL("priority")).toInt(); + d->protocol = element.attribute(QSL("protocol")); + d->type = typeFromString(element.attribute(QSL("type"))); } void QXmppJingleCandidate::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("candidate"); - helperToXmlAddAttribute(writer, "component", QString::number(d->component)); - helperToXmlAddAttribute(writer, "foundation", d->foundation); - helperToXmlAddAttribute(writer, "generation", QString::number(d->generation)); - helperToXmlAddAttribute(writer, "id", d->id); - helperToXmlAddAttribute(writer, "ip", d->host.toString()); - helperToXmlAddAttribute(writer, "network", QString::number(d->network)); - helperToXmlAddAttribute(writer, "port", QString::number(d->port)); - helperToXmlAddAttribute(writer, "priority", QString::number(d->priority)); - helperToXmlAddAttribute(writer, "protocol", d->protocol); - helperToXmlAddAttribute(writer, "type", typeToString(d->type)); + writer->writeStartElement(QSL("candidate")); + helperToXmlAddAttribute(writer, QSL("component"), QString::number(d->component)); + helperToXmlAddAttribute(writer, QSL("foundation"), d->foundation); + helperToXmlAddAttribute(writer, QSL("generation"), QString::number(d->generation)); + helperToXmlAddAttribute(writer, QSL("id"), d->id); + helperToXmlAddAttribute(writer, QSL("ip"), d->host.toString()); + helperToXmlAddAttribute(writer, QSL("network"), QString::number(d->network)); + helperToXmlAddAttribute(writer, QSL("port"), QString::number(d->port)); + helperToXmlAddAttribute(writer, QSL("priority"), QString::number(d->priority)); + helperToXmlAddAttribute(writer, QSL("protocol"), d->protocol); + helperToXmlAddAttribute(writer, QSL("type"), typeToString(d->type)); writer->writeEndElement(); } QXmppJingleCandidate::Type QXmppJingleCandidate::typeFromString(const QString &typeStr, bool *ok) { QXmppJingleCandidate::Type type; - if (typeStr == "host") + if (typeStr == QSL("host")) type = HostType; - else if (typeStr == "prflx") + else if (typeStr == QSL("prflx")) type = PeerReflexiveType; - else if (typeStr == "srflx") + else if (typeStr == QSL("srflx")) type = ServerReflexiveType; - else if (typeStr == "relay") + else if (typeStr == QSL("relay")) type = RelayedType; else { qWarning() << "Unknown candidate type" << typeStr; @@ -1188,16 +1188,16 @@ QString QXmppJingleCandidate::typeToString(QXmppJingleCandidate::Type type) QString typeStr; switch (type) { case HostType: - typeStr = "host"; + typeStr = QSL("host"); break; case PeerReflexiveType: - typeStr = "prflx"; + typeStr = QSL("prflx"); break; case ServerReflexiveType: - typeStr = "srflx"; + typeStr = QSL("srflx"); break; case RelayedType: - typeStr = "relay"; + typeStr = QSL("relay"); break; } return typeStr; @@ -1360,40 +1360,40 @@ void QXmppJinglePayloadType::setPtime(unsigned int ptime) /// \cond void QXmppJinglePayloadType::parse(const QDomElement &element) { - d->id = element.attribute("id").toInt(); - d->name = element.attribute("name"); - d->channels = element.attribute("channels").toInt(); + d->id = element.attribute(QSL("id")).toInt(); + d->name = element.attribute(QSL("name")); + d->channels = element.attribute(QSL("channels")).toInt(); if (!d->channels) d->channels = 1; - d->clockrate = element.attribute("clockrate").toInt(); - d->maxptime = element.attribute("maxptime").toInt(); - d->ptime = element.attribute("ptime").toInt(); + d->clockrate = element.attribute(QSL("clockrate")).toInt(); + d->maxptime = element.attribute(QSL("maxptime")).toInt(); + d->ptime = element.attribute(QSL("ptime")).toInt(); - QDomElement child = element.firstChildElement("parameter"); + QDomElement child = element.firstChildElement(QSL("parameter")); while (!child.isNull()) { - d->parameters.insert(child.attribute("name"), child.attribute("value")); - child = child.nextSiblingElement("parameter"); + d->parameters.insert(child.attribute(QSL("name")), child.attribute(QSL("value"))); + child = child.nextSiblingElement(QSL("parameter")); } } void QXmppJinglePayloadType::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("payload-type"); - helperToXmlAddAttribute(writer, "id", QString::number(d->id)); - helperToXmlAddAttribute(writer, "name", d->name); + writer->writeStartElement(QSL("payload-type")); + helperToXmlAddAttribute(writer, QSL("id"), QString::number(d->id)); + helperToXmlAddAttribute(writer, QSL("name"), d->name); if (d->channels > 1) - helperToXmlAddAttribute(writer, "channels", QString::number(d->channels)); + helperToXmlAddAttribute(writer, QSL("channels"), QString::number(d->channels)); if (d->clockrate > 0) - helperToXmlAddAttribute(writer, "clockrate", QString::number(d->clockrate)); + helperToXmlAddAttribute(writer, QSL("clockrate"), QString::number(d->clockrate)); if (d->maxptime > 0) - helperToXmlAddAttribute(writer, "maxptime", QString::number(d->maxptime)); + helperToXmlAddAttribute(writer, QSL("maxptime"), QString::number(d->maxptime)); if (d->ptime > 0) - helperToXmlAddAttribute(writer, "ptime", QString::number(d->ptime)); + helperToXmlAddAttribute(writer, QSL("ptime"), QString::number(d->ptime)); for (const auto &key : d->parameters.keys()) { - writer->writeStartElement("parameter"); - writer->writeAttribute("name", key); - writer->writeAttribute("value", d->parameters.value(key)); + writer->writeStartElement(QSL("parameter")); + writer->writeAttribute(QSL("name"), key); + writer->writeAttribute(QSL("value"), d->parameters.value(key)); writer->writeEndElement(); } writer->writeEndElement(); diff --git a/src/base/QXmppMamIq.cpp b/src/base/QXmppMamIq.cpp index 69d4f98c..411dfd8f 100644 --- a/src/base/QXmppMamIq.cpp +++ b/src/base/QXmppMamIq.cpp @@ -107,8 +107,8 @@ void QXmppMamQueryIq::setQueryId(const QString &id) /// \cond bool QXmppMamQueryIq::isMamQueryIq(const QDomElement &element) { - if (element.tagName() == "iq") { - QDomElement queryElement = element.firstChildElement("query"); + if (element.tagName() == QSL("iq")) { + QDomElement queryElement = element.firstChildElement(QSL("query")); if (!queryElement.isNull() && queryElement.namespaceURI() == ns_mam) { return true; } @@ -118,14 +118,14 @@ bool QXmppMamQueryIq::isMamQueryIq(const QDomElement &element) void QXmppMamQueryIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - d->node = queryElement.attribute("node"); - d->queryId = queryElement.attribute("queryId"); - QDomElement resultSetElement = queryElement.firstChildElement("set"); + QDomElement queryElement = element.firstChildElement(QSL("query")); + d->node = queryElement.attribute(QSL("node")); + d->queryId = queryElement.attribute(QSL("queryId")); + QDomElement resultSetElement = queryElement.firstChildElement(QSL("set")); if (!resultSetElement.isNull()) { d->resultSetQuery.parse(resultSetElement); } - QDomElement formElement = queryElement.firstChildElement("x"); + QDomElement formElement = queryElement.firstChildElement(QSL("x")); if (!formElement.isNull()) { d->form.parse(formElement); } @@ -133,13 +133,13 @@ void QXmppMamQueryIq::parseElementFromChild(const QDomElement &element) void QXmppMamQueryIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_mam); if (!d->node.isEmpty()) { - writer->writeAttribute("node", d->node); + writer->writeAttribute(QSL("node"), d->node); } if (!d->queryId.isEmpty()) { - writer->writeAttribute("queryid", d->queryId); + writer->writeAttribute(QSL("queryid"), d->queryId); } d->form.toXml(writer); d->resultSetQuery.toXml(writer); @@ -195,8 +195,8 @@ void QXmppMamResultIq::setComplete(bool complete) /// \cond bool QXmppMamResultIq::isMamResultIq(const QDomElement &element) { - if (element.tagName() == "iq") { - QDomElement finElement = element.firstChildElement("fin"); + if (element.tagName() == QSL("iq")) { + QDomElement finElement = element.firstChildElement(QSL("fin")); if (!finElement.isNull() && finElement.namespaceURI() == ns_mam) { return true; } @@ -206,9 +206,9 @@ bool QXmppMamResultIq::isMamResultIq(const QDomElement &element) void QXmppMamResultIq::parseElementFromChild(const QDomElement &element) { - QDomElement finElement = element.firstChildElement("fin"); - d->complete = finElement.attribute("complete") == QString("true"); - QDomElement resultSetElement = finElement.firstChildElement("set"); + QDomElement finElement = element.firstChildElement(QSL("fin")); + d->complete = finElement.attribute(QSL("complete")) == QSL("true"); + QDomElement resultSetElement = finElement.firstChildElement(QSL("set")); if (!resultSetElement.isNull()) { d->resultSetReply.parse(resultSetElement); } @@ -216,10 +216,10 @@ void QXmppMamResultIq::parseElementFromChild(const QDomElement &element) void QXmppMamResultIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("fin"); + writer->writeStartElement(QSL("fin")); writer->writeDefaultNamespace(ns_mam); if (d->complete) { - writer->writeAttribute("complete", "true"); + writer->writeAttribute(QSL("complete"), QSL("true")); } d->resultSetReply.toXml(writer); writer->writeEndElement(); diff --git a/src/base/QXmppMessage.cpp b/src/base/QXmppMessage.cpp index 0c23a3b6..d02c1586 100644 --- a/src/base/QXmppMessage.cpp +++ b/src/base/QXmppMessage.cpp @@ -36,26 +36,26 @@ static const QStringList CHAT_STATES = { QString(), - QStringLiteral("active"), - QStringLiteral("inactive"), - QStringLiteral("gone"), - QStringLiteral("composing"), - QStringLiteral("paused") + QSL("active"), + QSL("inactive"), + QSL("gone"), + QSL("composing"), + QSL("paused") }; static const QStringList MESSAGE_TYPES = { - QStringLiteral("error"), - QStringLiteral("normal"), - QStringLiteral("chat"), - QStringLiteral("groupchat"), - QStringLiteral("headline") + QSL("error"), + QSL("normal"), + QSL("chat"), + QSL("groupchat"), + QSL("headline") }; static const QStringList MARKER_TYPES = { QString(), - QStringLiteral("received"), - QStringLiteral("displayed"), - QStringLiteral("acknowledged") + QSL("received"), + QSL("displayed"), + QSL("acknowledged") }; static const QStringList ENCRYPTION_NAMESPACES = { @@ -68,19 +68,19 @@ static const QStringList ENCRYPTION_NAMESPACES = { }; static const QStringList HINT_TYPES = { - QStringLiteral("no-permanent-store"), - QStringLiteral("no-store"), - QStringLiteral("no-copy"), - QStringLiteral("store") + QSL("no-permanent-store"), + QSL("no-store"), + QSL("no-copy"), + QSL("store") }; static const QStringList ENCRYPTION_NAMES = { QString(), QString(), - QStringLiteral("OTR"), - QStringLiteral("Legacy OpenPGP"), - QStringLiteral("OpenPGP for XMPP (OX)"), - QStringLiteral("OMEMO") + QSL("OTR"), + QSL("Legacy OpenPGP"), + QSL("OpenPGP for XMPP (OX)"), + QSL("OMEMO") }; static bool checkElement(const QDomElement &element, const QString &tagName, const QString &xmlns) @@ -905,7 +905,7 @@ void QXmppMessage::parse(const QDomElement &element) QXmppStanza::parse(element); // message type - int messageType = MESSAGE_TYPES.indexOf(element.attribute(QStringLiteral("type"))); + int messageType = MESSAGE_TYPES.indexOf(element.attribute(QSL("type"))); if (messageType != -1) d->type = static_cast<Type>(messageType); else @@ -914,16 +914,16 @@ void QXmppMessage::parse(const QDomElement &element) QXmppElementList extensions; QDomElement childElement = element.firstChildElement(); while (!childElement.isNull()) { - if (childElement.tagName() == QStringLiteral("body")) { + if (childElement.tagName() == QSL("body")) { d->body = childElement.text(); - } else if (childElement.tagName() == QStringLiteral("subject")) { + } else if (childElement.tagName() == QSL("subject")) { d->subject = childElement.text(); - } else if (childElement.tagName() == QStringLiteral("thread")) { + } else if (childElement.tagName() == QSL("thread")) { d->thread = childElement.text(); // parse message extensions // XEP-0033: Extended Stanza Addressing and errors are parsed by QXmppStanza - } else if (!checkElement(childElement, QStringLiteral("addresses"), ns_extended_addressing) && - childElement.tagName() != QStringLiteral("error")) { + } else if (!checkElement(childElement, QSL("addresses"), ns_extended_addressing) && + childElement.tagName() != QSL("error")) { parseExtension(childElement, extensions); } childElement = childElement.nextSiblingElement(); @@ -933,18 +933,18 @@ void QXmppMessage::parse(const QDomElement &element) void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const { - xmlWriter->writeStartElement(QStringLiteral("message")); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("xml:lang"), lang()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("id"), id()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("to"), to()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("from"), from()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("type"), MESSAGE_TYPES.at(d->type)); + xmlWriter->writeStartElement(QSL("message")); + helperToXmlAddAttribute(xmlWriter, QSL("xml:lang"), lang()); + helperToXmlAddAttribute(xmlWriter, QSL("id"), id()); + helperToXmlAddAttribute(xmlWriter, QSL("to"), to()); + helperToXmlAddAttribute(xmlWriter, QSL("from"), from()); + helperToXmlAddAttribute(xmlWriter, QSL("type"), MESSAGE_TYPES.at(d->type)); if (!d->subject.isEmpty()) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("subject"), d->subject); + helperToXmlAddTextElement(xmlWriter, QSL("subject"), d->subject); if (!d->body.isEmpty()) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("body"), d->body); + helperToXmlAddTextElement(xmlWriter, QSL("body"), d->body); if (!d->thread.isEmpty()) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("thread"), d->thread); + helperToXmlAddTextElement(xmlWriter, QSL("thread"), d->thread); error().toXml(xmlWriter); // chat states @@ -956,11 +956,11 @@ void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const // XEP-0071: XHTML-IM if (!d->xhtml.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("html")); + xmlWriter->writeStartElement(QSL("html")); xmlWriter->writeDefaultNamespace(ns_xhtml_im); - xmlWriter->writeStartElement(QStringLiteral("body")); + xmlWriter->writeStartElement(QSL("body")); xmlWriter->writeDefaultNamespace(ns_xhtml); - xmlWriter->writeCharacters(QStringLiteral("")); + xmlWriter->writeCharacters(QSL("")); xmlWriter->device()->write(d->xhtml.toUtf8()); xmlWriter->writeEndElement(); xmlWriter->writeEndElement(); @@ -971,63 +971,63 @@ void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const QDateTime utcStamp = d->stamp.toUTC(); if (d->stampType == DelayedDelivery) { // XEP-0203: Delayed Delivery - xmlWriter->writeStartElement(QStringLiteral("delay")); + xmlWriter->writeStartElement(QSL("delay")); xmlWriter->writeDefaultNamespace(ns_delayed_delivery); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("stamp"), QXmppUtils::datetimeToString(utcStamp)); + helperToXmlAddAttribute(xmlWriter, QSL("stamp"), QXmppUtils::datetimeToString(utcStamp)); xmlWriter->writeEndElement(); } else { // XEP-0091: Legacy Delayed Delivery - xmlWriter->writeStartElement(QStringLiteral("x")); + xmlWriter->writeStartElement(QSL("x")); xmlWriter->writeDefaultNamespace(ns_legacy_delayed_delivery); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("stamp"), utcStamp.toString(QStringLiteral("yyyyMMddThh:mm:ss"))); + helperToXmlAddAttribute(xmlWriter, QSL("stamp"), utcStamp.toString(QSL("yyyyMMddThh:mm:ss"))); xmlWriter->writeEndElement(); } } // XEP-0184: Message Delivery Receipts if (!d->receiptId.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("received")); + xmlWriter->writeStartElement(QSL("received")); xmlWriter->writeDefaultNamespace(ns_message_receipts); - xmlWriter->writeAttribute(QStringLiteral("id"), d->receiptId); + xmlWriter->writeAttribute(QSL("id"), d->receiptId); xmlWriter->writeEndElement(); } if (d->receiptRequested) { - xmlWriter->writeStartElement(QStringLiteral("request")); + xmlWriter->writeStartElement(QSL("request")); xmlWriter->writeDefaultNamespace(ns_message_receipts); xmlWriter->writeEndElement(); } // \xep{0224}: Attention if (d->attentionRequested) { - xmlWriter->writeStartElement(QStringLiteral("attention")); + xmlWriter->writeStartElement(QSL("attention")); xmlWriter->writeDefaultNamespace(ns_attention); xmlWriter->writeEndElement(); } // XEP-0249: Direct MUC Invitations if (!d->mucInvitationJid.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("x")); + xmlWriter->writeStartElement(QSL("x")); xmlWriter->writeDefaultNamespace(ns_conference); - xmlWriter->writeAttribute(QStringLiteral("jid"), d->mucInvitationJid); + xmlWriter->writeAttribute(QSL("jid"), d->mucInvitationJid); if (!d->mucInvitationPassword.isEmpty()) - xmlWriter->writeAttribute(QStringLiteral("password"), d->mucInvitationPassword); + xmlWriter->writeAttribute(QSL("password"), d->mucInvitationPassword); if (!d->mucInvitationReason.isEmpty()) - xmlWriter->writeAttribute(QStringLiteral("reason"), d->mucInvitationReason); + xmlWriter->writeAttribute(QSL("reason"), d->mucInvitationReason); xmlWriter->writeEndElement(); } // XEP-0333: Chat Markers if (d->markable) { - xmlWriter->writeStartElement(QStringLiteral("markable")); + xmlWriter->writeStartElement(QSL("markable")); xmlWriter->writeDefaultNamespace(ns_chat_markers); xmlWriter->writeEndElement(); } if (d->marker != NoMarker) { xmlWriter->writeStartElement(MARKER_TYPES.at(d->marker)); xmlWriter->writeDefaultNamespace(ns_chat_markers); - xmlWriter->writeAttribute(QStringLiteral("id"), d->markedId); + xmlWriter->writeAttribute(QSL("id"), d->markedId); if (!d->markedThread.isNull() && !d->markedThread.isEmpty()) { - xmlWriter->writeAttribute(QStringLiteral("thread"), d->markedThread); + xmlWriter->writeAttribute(QSL("thread"), d->markedThread); } xmlWriter->writeEndElement(); } @@ -1038,24 +1038,24 @@ void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const // XEP-0280: Message Carbons if (d->privatemsg) { - xmlWriter->writeStartElement(QStringLiteral("private")); + xmlWriter->writeStartElement(QSL("private")); xmlWriter->writeDefaultNamespace(ns_carbons); xmlWriter->writeEndElement(); } // XEP-0066: Out of Band Data if (!d->outOfBandUrl.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("x")); + xmlWriter->writeStartElement(QSL("x")); xmlWriter->writeDefaultNamespace(ns_oob); - xmlWriter->writeTextElement(QStringLiteral("url"), d->outOfBandUrl); + xmlWriter->writeTextElement(QSL("url"), d->outOfBandUrl); xmlWriter->writeEndElement(); } // XEP-0308: Last Message Correction if (!d->replaceId.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("replace")); + xmlWriter->writeStartElement(QSL("replace")); xmlWriter->writeDefaultNamespace(ns_message_correct); - xmlWriter->writeAttribute(QStringLiteral("id"), d->replaceId); + xmlWriter->writeAttribute(QSL("id"), d->replaceId); xmlWriter->writeEndElement(); } @@ -1070,50 +1070,50 @@ void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const // XEP-0359: Unique and Stable Stanza IDs if (!d->stanzaId.isNull()) { - xmlWriter->writeStartElement(QStringLiteral("stanza-id")); + xmlWriter->writeStartElement(QSL("stanza-id")); xmlWriter->writeDefaultNamespace(ns_sid); - xmlWriter->writeAttribute(QStringLiteral("id"), d->stanzaId); + xmlWriter->writeAttribute(QSL("id"), d->stanzaId); if (!d->stanzaIdBy.isNull()) - xmlWriter->writeAttribute(QStringLiteral("by"), d->stanzaIdBy); + xmlWriter->writeAttribute(QSL("by"), d->stanzaIdBy); xmlWriter->writeEndElement(); } if (!d->originId.isNull()) { - xmlWriter->writeStartElement(QStringLiteral("origin-id")); + xmlWriter->writeStartElement(QSL("origin-id")); xmlWriter->writeDefaultNamespace(ns_sid); - xmlWriter->writeAttribute(QStringLiteral("id"), d->originId); + xmlWriter->writeAttribute(QSL("id"), d->originId); xmlWriter->writeEndElement(); } // XEP-0367: Message Attaching if (!d->attachId.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("attach-to")); + xmlWriter->writeStartElement(QSL("attach-to")); xmlWriter->writeDefaultNamespace(ns_message_attaching); - xmlWriter->writeAttribute(QStringLiteral("id"), d->attachId); + xmlWriter->writeAttribute(QSL("id"), d->attachId); xmlWriter->writeEndElement(); } // XEP-0369: Mediated Information eXchange (MIX) if (!d->mixUserJid.isEmpty() || !d->mixUserNick.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("mix")); + xmlWriter->writeStartElement(QSL("mix")); xmlWriter->writeDefaultNamespace(ns_mix); - helperToXmlAddTextElement(xmlWriter, QStringLiteral("jid"), d->mixUserJid); - helperToXmlAddTextElement(xmlWriter, QStringLiteral("nick"), d->mixUserNick); + helperToXmlAddTextElement(xmlWriter, QSL("jid"), d->mixUserJid); + helperToXmlAddTextElement(xmlWriter, QSL("nick"), d->mixUserNick); xmlWriter->writeEndElement(); } // XEP-0380: Explicit Message Encryption if (!d->encryptionMethod.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("encryption")); + xmlWriter->writeStartElement(QSL("encryption")); xmlWriter->writeDefaultNamespace(ns_eme); - xmlWriter->writeAttribute(QStringLiteral("namespace"), d->encryptionMethod); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("name"), d->encryptionName); + xmlWriter->writeAttribute(QSL("namespace"), d->encryptionMethod); + helperToXmlAddAttribute(xmlWriter, QSL("name"), d->encryptionName); xmlWriter->writeEndElement(); } // XEP-0382: Spoiler messages if (d->isSpoiler) { - xmlWriter->writeStartElement(QStringLiteral("spoiler")); + xmlWriter->writeStartElement(QSL("spoiler")); xmlWriter->writeDefaultNamespace(ns_spoiler); xmlWriter->writeCharacters(d->spoilerHint); xmlWriter->writeEndElement(); @@ -1121,7 +1121,7 @@ void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const // XEP-0428: Fallback Indication if (d->isFallback) { - xmlWriter->writeStartElement(QStringLiteral("fallback")); + xmlWriter->writeStartElement(QSL("fallback")); xmlWriter->writeDefaultNamespace(ns_fallback_indication); xmlWriter->writeEndElement(); } @@ -1140,20 +1140,20 @@ void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const void QXmppMessage::parseExtension(const QDomElement &element, QXmppElementList &unknownExtensions) { - if (element.tagName() == QStringLiteral("x")) { + if (element.tagName() == QSL("x")) { parseXElement(element, unknownExtensions); // XEP-0071: XHTML-IM - } else if (checkElement(element, QStringLiteral("html"), ns_xhtml_im)) { - QDomElement bodyElement = element.firstChildElement(QStringLiteral("body")); + } else if (checkElement(element, QSL("html"), ns_xhtml_im)) { + QDomElement bodyElement = element.firstChildElement(QSL("body")); if (!bodyElement.isNull() && bodyElement.namespaceURI() == ns_xhtml) { QTextStream stream(&d->xhtml, QIODevice::WriteOnly); bodyElement.save(stream, 0); d->xhtml = d->xhtml.mid(d->xhtml.indexOf('>') + 1); d->xhtml.replace( - QStringLiteral(" xmlns=\"http://www.w3.org/1999/xhtml\""), + QSL(" xmlns=\"http://www.w3.org/1999/xhtml\""), QString()); - d->xhtml.replace(QStringLiteral("</body>"), QString()); + d->xhtml.replace(QSL("</body>"), QString()); d->xhtml = d->xhtml.trimmed(); } // XEP-0085: Chat State Notifications @@ -1162,21 +1162,21 @@ void QXmppMessage::parseExtension(const QDomElement &element, QXmppElementList & if (i > 0) d->state = static_cast<QXmppMessage::State>(i); // XEP-0184: Message Delivery Receipts - } else if (checkElement(element, QStringLiteral("received"), ns_message_receipts)) { - d->receiptId = element.attribute(QStringLiteral("id")); + } else if (checkElement(element, QSL("received"), ns_message_receipts)) { + d->receiptId = element.attribute(QSL("id")); // compatibility with old-style XEP if (d->receiptId.isEmpty()) d->receiptId = id(); - } else if (checkElement(element, QStringLiteral("request"), ns_message_receipts)) { + } else if (checkElement(element, QSL("request"), ns_message_receipts)) { d->receiptRequested = true; // XEP-0203: Delayed Delivery - } else if (checkElement(element, QStringLiteral("delay"), ns_delayed_delivery)) { + } else if (checkElement(element, QSL("delay"), ns_delayed_delivery)) { d->stamp = QXmppUtils::datetimeFromString( - element.attribute(QStringLiteral("stamp"))); + element.attribute(QSL("stamp"))); d->stampType = DelayedDelivery; // \xep{0224}: Attention - } else if (checkElement(element, QStringLiteral("attention"), ns_attention)) { + } else if (checkElement(element, QSL("attention"), ns_attention)) { d->attentionRequested = true; // XEP-0231: Bits of Binary } else if (QXmppBitsOfBinaryData::isBitsOfBinaryData(element)) { @@ -1184,49 +1184,49 @@ void QXmppMessage::parseExtension(const QDomElement &element, QXmppElementList & data.parseElementFromChild(element); d->bitsOfBinaryData << data; // XEP-0280: Message Carbons - } else if (checkElement(element, QStringLiteral("private"), ns_carbons)) { + } else if (checkElement(element, QSL("private"), ns_carbons)) { d->privatemsg = true; // XEP-0308: Last Message Correction - } else if (checkElement(element, QStringLiteral("replace"), ns_message_correct)) { - d->replaceId = element.attribute(QStringLiteral("id")); + } else if (checkElement(element, QSL("replace"), ns_message_correct)) { + d->replaceId = element.attribute(QSL("id")); // XEP-0333: Chat Markers } else if (element.namespaceURI() == ns_chat_markers) { - if (element.tagName() == QStringLiteral("markable")) { + if (element.tagName() == QSL("markable")) { d->markable = true; } else { int marker = MARKER_TYPES.indexOf(element.tagName()); if (marker != -1) { d->marker = static_cast<QXmppMessage::Marker>(marker); - d->markedId = element.attribute(QStringLiteral("id")); - d->markedThread = element.attribute(QStringLiteral("thread")); + d->markedId = element.attribute(QSL("id")); + d->markedThread = element.attribute(QSL("thread")); } } // XEP-0334: Message Processing Hints } else if (element.namespaceURI() == ns_message_processing_hints && HINT_TYPES.contains(element.tagName())) { addHint(Hint(1 << HINT_TYPES.indexOf(element.tagName()))); - } else if (checkElement(element, QStringLiteral("stanza-id"), ns_sid)) { + } else if (checkElement(element, QSL("stanza-id"), ns_sid)) { // XEP-0359: Unique and Stable Stanza IDs - d->stanzaId = element.attribute(QStringLiteral("id")); - d->stanzaIdBy = element.attribute(QStringLiteral("by")); - } else if (checkElement(element, QStringLiteral("origin-id"), ns_sid)) { - d->originId = element.attribute(QStringLiteral("id")); - } else if (checkElement(element, QStringLiteral("attach-to"), ns_message_attaching)) { + d->stanzaId = element.attribute(QSL("id")); + d->stanzaIdBy = element.attribute(QSL("by")); + } else if (checkElement(element, QSL("origin-id"), ns_sid)) { + d->originId = element.attribute(QSL("id")); + } else if (checkElement(element, QSL("attach-to"), ns_message_attaching)) { // XEP-0367: Message Attaching - d->attachId = element.attribute(QStringLiteral("id")); + d->attachId = element.attribute(QSL("id")); // XEP-0369: Mediated Information eXchange (MIX) - } else if (checkElement(element, QStringLiteral("mix"), ns_mix)) { - d->mixUserJid = element.firstChildElement(QStringLiteral("jid")).text(); - d->mixUserNick = element.firstChildElement(QStringLiteral("nick")).text(); + } else if (checkElement(element, QSL("mix"), ns_mix)) { + d->mixUserJid = element.firstChildElement(QSL("jid")).text(); + d->mixUserNick = element.firstChildElement(QSL("nick")).text(); // XEP-0380: Explicit Message Encryption - } else if (checkElement(element, QStringLiteral("encryption"), ns_eme)) { - d->encryptionMethod = element.attribute(QStringLiteral("namespace")); - d->encryptionName = element.attribute(QStringLiteral("name")); + } else if (checkElement(element, QSL("encryption"), ns_eme)) { + d->encryptionMethod = element.attribute(QSL("namespace")); + d->encryptionName = element.attribute(QSL("name")); // XEP-0382: Spoiler messages - } else if (checkElement(element, QStringLiteral("spoiler"), ns_spoiler)) { + } else if (checkElement(element, QSL("spoiler"), ns_spoiler)) { d->isSpoiler = true; d->spoilerHint = element.text(); - } else if (checkElement(element, QStringLiteral("fallback"), ns_fallback_indication)) { + } else if (checkElement(element, QSL("fallback"), ns_fallback_indication)) { // XEP-0428: Fallback Indication d->isFallback = true; } else { @@ -1248,19 +1248,19 @@ void QXmppMessage::parseXElement(const QDomElement &element, QXmppElementList &u if (d->stamp.isNull()) { // XEP-0091: Legacy Delayed Delivery d->stamp = QDateTime::fromString( - element.attribute(QStringLiteral("stamp")), - QStringLiteral("yyyyMMddThh:mm:ss")); + element.attribute(QSL("stamp")), + QSL("yyyyMMddThh:mm:ss")); d->stamp.setTimeSpec(Qt::UTC); d->stampType = LegacyDelayedDelivery; } } else if (element.namespaceURI() == ns_conference) { // XEP-0249: Direct MUC Invitations - d->mucInvitationJid = element.attribute(QStringLiteral("jid")); - d->mucInvitationPassword = element.attribute(QStringLiteral("password")); - d->mucInvitationReason = element.attribute(QStringLiteral("reason")); + d->mucInvitationJid = element.attribute(QSL("jid")); + d->mucInvitationPassword = element.attribute(QSL("password")); + d->mucInvitationReason = element.attribute(QSL("reason")); } else if (element.namespaceURI() == ns_oob) { // XEP-0066: Out of Band Data - d->outOfBandUrl = element.firstChildElement(QStringLiteral("url")).text(); + d->outOfBandUrl = element.firstChildElement(QSL("url")).text(); } else { unknownExtensions << QXmppElement(element); } diff --git a/src/base/QXmppMixIq.cpp b/src/base/QXmppMixIq.cpp index 9362f0e7..468d2d57 100644 --- a/src/base/QXmppMixIq.cpp +++ b/src/base/QXmppMixIq.cpp @@ -32,14 +32,14 @@ static const QStringList MIX_ACTION_TYPES = { QString(), - QStringLiteral("client-join"), - QStringLiteral("client-leave"), - QStringLiteral("join"), - QStringLiteral("leave"), - QStringLiteral("update-subscription"), - QStringLiteral("setnick"), - QStringLiteral("create"), - QStringLiteral("destroy") + QSL("client-join"), + QSL("client-leave"), + QSL("join"), + QSL("leave"), + QSL("update-subscription"), + QSL("setnick"), + QSL("create"), + QSL("destroy") }; class QXmppMixIqPrivate : public QSharedData @@ -153,23 +153,23 @@ void QXmppMixIq::parseElementFromChild(const QDomElement& element) d->actionType = (QXmppMixIq::Type)MIX_ACTION_TYPES.indexOf(child.tagName()); if (child.namespaceURI() == ns_mix_pam) { - if (child.hasAttribute("channel")) - d->jid = child.attribute("channel"); + if (child.hasAttribute(QSL("channel"))) + d->jid = child.attribute(QSL("channel")); child = child.firstChildElement(); } if (!child.isNull() && child.namespaceURI() == ns_mix) { - if (child.hasAttribute("jid")) - d->jid = child.attribute("jid"); - if (child.hasAttribute("channel")) - d->channelName = child.attribute("channel"); + if (child.hasAttribute(QSL("jid"))) + d->jid = child.attribute(QSL("jid")); + if (child.hasAttribute(QSL("channel"))) + d->channelName = child.attribute(QSL("channel")); QDomElement subChild = child.firstChildElement(); while (!subChild.isNull()) { - if (subChild.tagName() == "subscribe") - d->nodes << subChild.attribute("node"); - else if (subChild.tagName() == "nick") + if (subChild.tagName() == QSL("subscribe")) + d->nodes << subChild.attribute(QSL("node")); + else if (subChild.tagName() == QSL("nick")) d->nick = subChild.text(); subChild = subChild.nextSiblingElement(); @@ -186,26 +186,26 @@ void QXmppMixIq::toXmlElementFromChild(QXmlStreamWriter* writer) const if (d->actionType == ClientJoin || d->actionType == ClientLeave) { writer->writeDefaultNamespace(ns_mix_pam); if (type() == Set) - helperToXmlAddAttribute(writer, "channel", d->jid); + helperToXmlAddAttribute(writer, QSL("channel"), d->jid); if (d->actionType == ClientJoin) - writer->writeStartElement("join"); + writer->writeStartElement(QSL("join")); else if (d->actionType == ClientLeave) - writer->writeStartElement("leave"); + writer->writeStartElement(QSL("leave")); } writer->writeDefaultNamespace(ns_mix); - helperToXmlAddAttribute(writer, "channel", d->channelName); + helperToXmlAddAttribute(writer, QSL("channel"), d->channelName); if (type() == Result) - helperToXmlAddAttribute(writer, "jid", d->jid); + helperToXmlAddAttribute(writer, QSL("jid"), d->jid); for (const auto& node : d->nodes) { - writer->writeStartElement("subscribe"); - writer->writeAttribute("node", node); + writer->writeStartElement(QSL("subscribe")); + writer->writeAttribute(QSL("node"), node); writer->writeEndElement(); } if (!d->nick.isEmpty()) - writer->writeTextElement("nick", d->nick); + writer->writeTextElement(QSL("nick"), d->nick); writer->writeEndElement(); if (d->actionType == ClientJoin || d->actionType == ClientLeave) diff --git a/src/base/QXmppMixItem.cpp b/src/base/QXmppMixItem.cpp index 2cee43d6..2a5e214d 100644 --- a/src/base/QXmppMixItem.cpp +++ b/src/base/QXmppMixItem.cpp @@ -100,7 +100,7 @@ bool QXmppMixInfoItem::isMixChannelInfo(const QDomElement& element) QXmppDataForm form; form.parse(element); for (const auto& field : form.fields()) { - if (field.key() == "FORM_TYPE") + if (field.key() == QSL("FORM_TYPE")) return field.value() == ns_mix; } return false; @@ -112,11 +112,11 @@ void QXmppMixInfoItem::parse(const QXmppElement& element) form.parse(element.sourceDomElement()); for (auto& field : form.fields()) { - if (field.key() == "Name") + if (field.key() == QSL("Name")) d->name = field.value().toString(); - else if (field.key() == "Description") + else if (field.key() == QSL("Description")) d->description = field.value().toString(); - else if (field.key() == "Contact") + else if (field.key() == QSL("Contact")) d->contactJids = field.value().toStringList(); } } @@ -129,22 +129,22 @@ QXmppElement QXmppMixInfoItem::toElement() const QXmppDataForm::Field formType; formType.setType(QXmppDataForm::Field::HiddenField); - formType.setKey("FORM_TYPE"); + formType.setKey(QSL("FORM_TYPE")); formType.setValue(ns_mix); fields << formType; QXmppDataForm::Field nameField; - nameField.setKey("Name"); + nameField.setKey(QSL("Name")); nameField.setValue(d->name); fields << nameField; QXmppDataForm::Field descriptionField; - descriptionField.setKey("Description"); + descriptionField.setKey(QSL("Description")); descriptionField.setValue(d->description); fields << descriptionField; QXmppDataForm::Field contactsField; - contactsField.setKey("Contact"); + contactsField.setKey(QSL("Contact")); contactsField.setValue(d->contactJids); contactsField.setType(QXmppDataForm::Field::JidMultiField); fields << contactsField; @@ -210,23 +210,23 @@ void QXmppMixParticipantItem::setJid(const QString& jid) void QXmppMixParticipantItem::parse(const QXmppElement& itemContent) { - d->nick = itemContent.firstChildElement("nick").value(); - d->jid = itemContent.firstChildElement("jid").value(); + d->nick = itemContent.firstChildElement(QSL("nick")).value(); + d->jid = itemContent.firstChildElement(QSL("jid")).value(); } QXmppElement QXmppMixParticipantItem::toElement() const { QXmppElement element; - element.setTagName("participant"); - element.setAttribute("xmlns", ns_mix); + element.setTagName(QSL("participant")); + element.setAttribute(QSL("xmlns"), ns_mix); QXmppElement jid; - jid.setTagName("jid"); + jid.setTagName(QSL("jid")); jid.setValue(d->jid); element.appendChild(jid); QXmppElement nick; - nick.setTagName("nick"); + nick.setTagName(QSL("nick")); nick.setValue(d->nick); element.appendChild(nick); @@ -237,5 +237,5 @@ QXmppElement QXmppMixParticipantItem::toElement() const bool QXmppMixParticipantItem::isMixParticipantItem(const QDomElement& element) { - return element.tagName() == "participant" && element.namespaceURI() == ns_mix; + return element.tagName() == QSL("participant") && element.namespaceURI() == ns_mix; } diff --git a/src/base/QXmppMucIq.cpp b/src/base/QXmppMucIq.cpp index 5019cb40..38606078 100644 --- a/src/base/QXmppMucIq.cpp +++ b/src/base/QXmppMucIq.cpp @@ -72,15 +72,15 @@ QXmppMucItem::Affiliation QXmppMucItem::affiliation() const /// \cond QXmppMucItem::Affiliation QXmppMucItem::affiliationFromString(const QString &affiliationStr) { - if (affiliationStr == "owner") + if (affiliationStr == QSL("owner")) return QXmppMucItem::OwnerAffiliation; - else if (affiliationStr == "admin") + else if (affiliationStr == QSL("admin")) return QXmppMucItem::AdminAffiliation; - else if (affiliationStr == "member") + else if (affiliationStr == QSL("member")) return QXmppMucItem::MemberAffiliation; - else if (affiliationStr == "outcast") + else if (affiliationStr == QSL("outcast")) return QXmppMucItem::OutcastAffiliation; - else if (affiliationStr == "none") + else if (affiliationStr == QSL("none")) return QXmppMucItem::NoAffiliation; else return QXmppMucItem::UnspecifiedAffiliation; @@ -172,13 +172,13 @@ QXmppMucItem::Role QXmppMucItem::role() const /// \cond QXmppMucItem::Role QXmppMucItem::roleFromString(const QString &roleStr) { - if (roleStr == "moderator") + if (roleStr == QSL("moderator")) return QXmppMucItem::ModeratorRole; - else if (roleStr == "participant") + else if (roleStr == QSL("participant")) return QXmppMucItem::ParticipantRole; - else if (roleStr == "visitor") + else if (roleStr == QSL("visitor")) return QXmppMucItem::VisitorRole; - else if (roleStr == "none") + else if (roleStr == QSL("none")) return QXmppMucItem::NoRole; else return QXmppMucItem::UnspecifiedRole; @@ -188,13 +188,13 @@ QString QXmppMucItem::roleToString(Role role) { switch (role) { case QXmppMucItem::ModeratorRole: - return "moderator"; + return QSL("moderator"); case QXmppMucItem::ParticipantRole: - return "participant"; + return QSL("participant"); case QXmppMucItem::VisitorRole: - return "visitor"; + return QSL("visitor"); case QXmppMucItem::NoRole: - return "none"; + return QSL("none"); default: return QString(); } @@ -213,28 +213,28 @@ void QXmppMucItem::setRole(Role role) /// \cond void QXmppMucItem::parse(const QDomElement &element) { - m_affiliation = QXmppMucItem::affiliationFromString(element.attribute("affiliation").toLower()); - m_jid = element.attribute("jid"); - m_nick = element.attribute("nick"); - m_role = QXmppMucItem::roleFromString(element.attribute("role").toLower()); - m_actor = element.firstChildElement("actor").attribute("jid"); - m_reason = element.firstChildElement("reason").text(); + m_affiliation = QXmppMucItem::affiliationFromString(element.attribute(QSL("affiliation")).toLower()); + m_jid = element.attribute(QSL("jid")); + m_nick = element.attribute(QSL("nick")); + m_role = QXmppMucItem::roleFromString(element.attribute(QSL("role")).toLower()); + m_actor = element.firstChildElement(QSL("actor")).attribute("jid"); + m_reason = element.firstChildElement(QSL("reason")).text(); } void QXmppMucItem::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("item"); - helperToXmlAddAttribute(writer, "affiliation", affiliationToString(m_affiliation)); - helperToXmlAddAttribute(writer, "jid", m_jid); - helperToXmlAddAttribute(writer, "nick", m_nick); - helperToXmlAddAttribute(writer, "role", roleToString(m_role)); + writer->writeStartElement(QSL("item")); + helperToXmlAddAttribute(writer, QSL("affiliation"), affiliationToString(m_affiliation)); + helperToXmlAddAttribute(writer, QSL("jid"), m_jid); + helperToXmlAddAttribute(writer, QSL("nick"), m_nick); + helperToXmlAddAttribute(writer, QSL("role"), roleToString(m_role)); if (!m_actor.isEmpty()) { - writer->writeStartElement("actor"); - helperToXmlAddAttribute(writer, "jid", m_actor); + writer->writeStartElement(QSL("actor")); + helperToXmlAddAttribute(writer, QSL("jid"), m_actor); writer->writeEndElement(); } if (!m_reason.isEmpty()) - helperToXmlAddTextElement(writer, "reason", m_reason); + helperToXmlAddTextElement(writer, QSL("reason"), m_reason); writer->writeEndElement(); } /// \endcond @@ -258,25 +258,25 @@ void QXmppMucAdminIq::setItems(const QList<QXmppMucItem> &items) /// \cond bool QXmppMucAdminIq::isMucAdminIq(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); + QDomElement queryElement = element.firstChildElement(QSL("query")); return (queryElement.namespaceURI() == ns_muc_admin); } void QXmppMucAdminIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - QDomElement child = queryElement.firstChildElement("item"); + QDomElement queryElement = element.firstChildElement(QSL("query")); + QDomElement child = queryElement.firstChildElement(QSL("item")); while (!child.isNull()) { QXmppMucItem item; item.parse(child); m_items << item; - child = child.nextSiblingElement("item"); + child = child.nextSiblingElement(QSL("item")); } } void QXmppMucAdminIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_muc_admin); for (const QXmppMucItem &item : m_items) item.toXml(writer); @@ -303,19 +303,19 @@ void QXmppMucOwnerIq::setForm(const QXmppDataForm &form) /// \cond bool QXmppMucOwnerIq::isMucOwnerIq(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); + QDomElement queryElement = element.firstChildElement(QSL("query")); return (queryElement.namespaceURI() == ns_muc_owner); } void QXmppMucOwnerIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - m_form.parse(queryElement.firstChildElement("x")); + QDomElement queryElement = element.firstChildElement(QSL("query")); + m_form.parse(queryElement.firstChildElement(QSL("x"))); } void QXmppMucOwnerIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_muc_owner); m_form.toXml(writer); writer->writeEndElement(); diff --git a/src/base/QXmppNonSASLAuth.cpp b/src/base/QXmppNonSASLAuth.cpp index 44e8b348..eebb5a2e 100644 --- a/src/base/QXmppNonSASLAuth.cpp +++ b/src/base/QXmppNonSASLAuth.cpp @@ -78,31 +78,31 @@ void QXmppNonSASLAuthIq::setResource(const QString &resource) /// \cond bool QXmppNonSASLAuthIq::isNonSASLAuthIq(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); + QDomElement queryElement = element.firstChildElement(QSL("query")); return queryElement.namespaceURI() == ns_auth; } void QXmppNonSASLAuthIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - m_username = queryElement.firstChildElement("username").text(); - m_password = queryElement.firstChildElement("password").text(); - m_digest = QByteArray::fromHex(queryElement.firstChildElement("digest").text().toLatin1()); - m_resource = queryElement.firstChildElement("resource").text(); + QDomElement queryElement = element.firstChildElement(QSL("query")); + m_username = queryElement.firstChildElement(QSL("username")).text(); + m_password = queryElement.firstChildElement(QSL("password")).text(); + m_digest = QByteArray::fromHex(queryElement.firstChildElement(QSL("digest")).text().toLatin1()); + m_resource = queryElement.firstChildElement(QSL("resource")).text(); } void QXmppNonSASLAuthIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_auth); if (!m_username.isEmpty()) - writer->writeTextElement("username", m_username); + writer->writeTextElement(QSL("username"), m_username); if (!m_digest.isEmpty()) - writer->writeTextElement("digest", m_digest.toHex()); + writer->writeTextElement(QSL("digest"), m_digest.toHex()); if (!m_password.isEmpty()) - writer->writeTextElement("password", m_password); + writer->writeTextElement(QSL("password"), m_password); if (!m_resource.isEmpty()) - writer->writeTextElement("resource", m_resource); + writer->writeTextElement(QSL("resource"), m_resource); writer->writeEndElement(); } /// \endcond diff --git a/src/base/QXmppPingIq.cpp b/src/base/QXmppPingIq.cpp index 50e3463f..e788e619 100644 --- a/src/base/QXmppPingIq.cpp +++ b/src/base/QXmppPingIq.cpp @@ -34,14 +34,14 @@ QXmppPingIq::QXmppPingIq() : QXmppIq(QXmppIq::Get) bool QXmppPingIq::isPingIq(const QDomElement &element) { - QDomElement pingElement = element.firstChildElement("ping"); - return (element.attribute("type") == "get" && + QDomElement pingElement = element.firstChildElement(QSL("ping")); + return (element.attribute(QSL("type")) == QSL("get") && pingElement.namespaceURI() == ns_ping); } void QXmppPingIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("ping"); + writer->writeStartElement(QSL("ping")); writer->writeDefaultNamespace(ns_ping); writer->writeEndElement(); } diff --git a/src/base/QXmppPresence.cpp b/src/base/QXmppPresence.cpp index 207ac8b6..4fd2e35b 100644 --- a/src/base/QXmppPresence.cpp +++ b/src/base/QXmppPresence.cpp @@ -30,23 +30,23 @@ #include <QDomElement> static const QStringList PRESENCE_TYPES = { - QStringLiteral("error"), + QSL("error"), QString(), - QStringLiteral("unavailable"), - QStringLiteral("subscribe"), - QStringLiteral("subscribed"), - QStringLiteral("unsubscribe"), - QStringLiteral("unsubscribed"), - QStringLiteral("probe") + QSL("unavailable"), + QSL("subscribe"), + QSL("subscribed"), + QSL("unsubscribe"), + QSL("unsubscribed"), + QSL("probe") }; static const QStringList AVAILABLE_STATUS_TYPES = { QString(), - QStringLiteral("away"), - QStringLiteral("xa"), - QStringLiteral("dnd"), - QStringLiteral("chat"), - QStringLiteral("invisible") + QSL("away"), + QSL("xa"), + QSL("dnd"), + QSL("chat"), + QSL("invisible") }; class QXmppPresencePrivate : public QSharedData @@ -389,7 +389,7 @@ void QXmppPresence::parse(const QDomElement &element) QXmppStanza::parse(element); // attributes - int type = PRESENCE_TYPES.indexOf(element.attribute(QStringLiteral("type"))); + int type = PRESENCE_TYPES.indexOf(element.attribute(QSL("type"))); if (type > -1) d->type = Type(type); @@ -397,17 +397,17 @@ void QXmppPresence::parse(const QDomElement &element) QDomElement childElement = element.firstChildElement(); while (!childElement.isNull()) { - if (childElement.tagName() == QStringLiteral("show")) { + if (childElement.tagName() == QSL("show")) { int availableStatusType = AVAILABLE_STATUS_TYPES.indexOf(childElement.text()); if (availableStatusType > -1) d->availableStatusType = AvailableStatusType(availableStatusType); - } else if (childElement.tagName() == QStringLiteral("status")) { + } else if (childElement.tagName() == QSL("status")) { d->statusText = childElement.text(); - } else if (childElement.tagName() == QStringLiteral("priority")) { + } else if (childElement.tagName() == QSL("priority")) { d->priority = childElement.text().toInt(); // parse presence extensions // XEP-0033: Extended Stanza Addressing and errors are parsed by QXmppStanza - } else if (!(childElement.tagName() == QStringLiteral("addresses") && childElement.namespaceURI() == ns_extended_addressing) && + } else if (!(childElement.tagName() == QSL("addresses") && childElement.namespaceURI() == ns_extended_addressing) && childElement.tagName() != "error") { parseExtension(childElement, unknownElements); } @@ -420,28 +420,28 @@ void QXmppPresence::parse(const QDomElement &element) void QXmppPresence::parseExtension(const QDomElement &element, QXmppElementList &unknownElements) { // XEP-0045: Multi-User Chat - if (element.tagName() == QStringLiteral("x") && element.namespaceURI() == ns_muc) { + if (element.tagName() == QSL("x") && element.namespaceURI() == ns_muc) { d->mucSupported = true; - d->mucPassword = element.firstChildElement(QStringLiteral("password")).text(); - } else if (element.tagName() == QStringLiteral("x") && element.namespaceURI() == ns_muc_user) { - QDomElement itemElement = element.firstChildElement(QStringLiteral("item")); + d->mucPassword = element.firstChildElement(QSL("password")).text(); + } else if (element.tagName() == QSL("x") && element.namespaceURI() == ns_muc_user) { + QDomElement itemElement = element.firstChildElement(QSL("item")); d->mucItem.parse(itemElement); - QDomElement statusElement = element.firstChildElement(QStringLiteral("status")); + QDomElement statusElement = element.firstChildElement(QSL("status")); d->mucStatusCodes.clear(); while (!statusElement.isNull()) { - d->mucStatusCodes << statusElement.attribute(QStringLiteral("code")).toInt(); - statusElement = statusElement.nextSiblingElement(QStringLiteral("status")); + d->mucStatusCodes << statusElement.attribute(QSL("code")).toInt(); + statusElement = statusElement.nextSiblingElement(QSL("status")); } // XEP-0115: Entity Capabilities - } else if (element.tagName() == QStringLiteral("c") && element.namespaceURI() == ns_capabilities) { - d->capabilityNode = element.attribute(QStringLiteral("node")); - d->capabilityVer = QByteArray::fromBase64(element.attribute(QStringLiteral("ver")).toLatin1()); - d->capabilityHash = element.attribute(QStringLiteral("hash")); - d->capabilityExt = element.attribute(QStringLiteral("ext")).split(' ', QString::SkipEmptyParts); + } else if (element.tagName() == QSL("c") && element.namespaceURI() == ns_capabilities) { + d->capabilityNode = element.attribute(QSL("node")); + d->capabilityVer = QByteArray::fromBase64(element.attribute(QSL("ver")).toLatin1()); + d->capabilityHash = element.attribute(QSL("hash")); + d->capabilityExt = element.attribute(QSL("ext")).split(' ', QString::SkipEmptyParts); // XEP-0153: vCard-Based Avatars } else if (element.namespaceURI() == ns_vcard_update) { - QDomElement photoElement = element.firstChildElement(QStringLiteral("photo")); + QDomElement photoElement = element.firstChildElement(QSL("photo")); if (photoElement.isNull()) { d->photoHash = {}; d->vCardUpdateType = VCardUpdateNotReady; @@ -453,15 +453,15 @@ void QXmppPresence::parseExtension(const QDomElement &element, QXmppElementList d->vCardUpdateType = VCardUpdateValidPhoto; } // XEP-0319: Last User Interaction in Presence - } else if (element.tagName() == QStringLiteral("idle") && element.namespaceURI() == ns_idle) { - if (element.hasAttribute(QStringLiteral("since"))) { - const QString since = element.attribute(QStringLiteral("since")); + } else if (element.tagName() == QSL("idle") && element.namespaceURI() == ns_idle) { + if (element.hasAttribute(QSL("since"))) { + const QString since = element.attribute(QSL("since")); d->lastUserInteraction = QXmppUtils::datetimeFromString(since); } // XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements - } else if (element.tagName() == QStringLiteral("mix") && element.namespaceURI() == ns_mix_presence) { - d->mixUserJid = element.firstChildElement(QStringLiteral("jid")).text(); - d->mixUserNick = element.firstChildElement(QStringLiteral("nick")).text(); + } else if (element.tagName() == QSL("mix") && element.namespaceURI() == ns_mix_presence) { + d->mixUserJid = element.firstChildElement(QSL("jid")).text(); + d->mixUserNick = element.firstChildElement(QSL("nick")).text(); } else { unknownElements << element; } @@ -469,40 +469,40 @@ void QXmppPresence::parseExtension(const QDomElement &element, QXmppElementList void QXmppPresence::toXml(QXmlStreamWriter *xmlWriter) const { - xmlWriter->writeStartElement(QStringLiteral("presence")); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("xml:lang"), lang()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("id"), id()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("to"), to()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("from"), from()); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("type"), PRESENCE_TYPES.at(d->type)); + xmlWriter->writeStartElement(QSL("presence")); + helperToXmlAddAttribute(xmlWriter, QSL("xml:lang"), lang()); + helperToXmlAddAttribute(xmlWriter, QSL("id"), id()); + helperToXmlAddAttribute(xmlWriter, QSL("to"), to()); + helperToXmlAddAttribute(xmlWriter, QSL("from"), from()); + helperToXmlAddAttribute(xmlWriter, QSL("type"), PRESENCE_TYPES.at(d->type)); const QString show = AVAILABLE_STATUS_TYPES.at(d->availableStatusType); if (!show.isEmpty()) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("show"), show); + helperToXmlAddTextElement(xmlWriter, QSL("show"), show); if (!d->statusText.isEmpty()) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("status"), d->statusText); + helperToXmlAddTextElement(xmlWriter, QSL("status"), d->statusText); if (d->priority != 0) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("priority"), QString::number(d->priority)); + helperToXmlAddTextElement(xmlWriter, QSL("priority"), QString::number(d->priority)); error().toXml(xmlWriter); // XEP-0045: Multi-User Chat if (d->mucSupported) { - xmlWriter->writeStartElement(QStringLiteral("x")); + xmlWriter->writeStartElement(QSL("x")); xmlWriter->writeDefaultNamespace(ns_muc); if (!d->mucPassword.isEmpty()) - xmlWriter->writeTextElement(QStringLiteral("password"), d->mucPassword); + xmlWriter->writeTextElement(QSL("password"), d->mucPassword); xmlWriter->writeEndElement(); } if (!d->mucItem.isNull() || !d->mucStatusCodes.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("x")); + xmlWriter->writeStartElement(QSL("x")); xmlWriter->writeDefaultNamespace(ns_muc_user); if (!d->mucItem.isNull()) d->mucItem.toXml(xmlWriter); for (const auto code : d->mucStatusCodes) { - xmlWriter->writeStartElement(QStringLiteral("status")); - xmlWriter->writeAttribute(QStringLiteral("code"), QString::number(code)); + xmlWriter->writeStartElement(QSL("status")); + xmlWriter->writeAttribute(QSL("code"), QString::number(code)); xmlWriter->writeEndElement(); } xmlWriter->writeEndElement(); @@ -512,24 +512,24 @@ void QXmppPresence::toXml(QXmlStreamWriter *xmlWriter) const if (!d->capabilityNode.isEmpty() && !d->capabilityVer.isEmpty() && !d->capabilityHash.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("c")); + xmlWriter->writeStartElement(QSL("c")); xmlWriter->writeDefaultNamespace(ns_capabilities); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("hash"), d->capabilityHash); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("node"), d->capabilityNode); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("ver"), d->capabilityVer.toBase64()); + helperToXmlAddAttribute(xmlWriter, QSL("hash"), d->capabilityHash); + helperToXmlAddAttribute(xmlWriter, QSL("node"), d->capabilityNode); + helperToXmlAddAttribute(xmlWriter, QSL("ver"), d->capabilityVer.toBase64()); xmlWriter->writeEndElement(); } // XEP-0153: vCard-Based Avatars if (d->vCardUpdateType != VCardUpdateNone) { - xmlWriter->writeStartElement(QStringLiteral("x")); + xmlWriter->writeStartElement(QSL("x")); xmlWriter->writeDefaultNamespace(ns_vcard_update); switch (d->vCardUpdateType) { case VCardUpdateNoPhoto: - xmlWriter->writeEmptyElement(QStringLiteral("photo")); + xmlWriter->writeEmptyElement(QSL("photo")); break; case VCardUpdateValidPhoto: - helperToXmlAddTextElement(xmlWriter, QStringLiteral("photo"), d->photoHash.toHex()); + helperToXmlAddTextElement(xmlWriter, QSL("photo"), d->photoHash.toHex()); break; default: break; @@ -539,20 +539,20 @@ void QXmppPresence::toXml(QXmlStreamWriter *xmlWriter) const // XEP-0319: Last User Interaction in Presence if (!d->lastUserInteraction.isNull() && d->lastUserInteraction.isValid()) { - xmlWriter->writeStartElement(QStringLiteral("idle")); + xmlWriter->writeStartElement(QSL("idle")); xmlWriter->writeDefaultNamespace(ns_idle); - helperToXmlAddAttribute(xmlWriter, QStringLiteral("since"), QXmppUtils::datetimeToString(d->lastUserInteraction)); + helperToXmlAddAttribute(xmlWriter, QSL("since"), QXmppUtils::datetimeToString(d->lastUserInteraction)); xmlWriter->writeEndElement(); } // XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements if (!d->mixUserJid.isEmpty() || !d->mixUserNick.isEmpty()) { - xmlWriter->writeStartElement(QStringLiteral("mix")); + xmlWriter->writeStartElement(QSL("mix")); xmlWriter->writeDefaultNamespace(ns_mix_presence); if (!d->mixUserJid.isEmpty()) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("jid"), d->mixUserJid); + helperToXmlAddTextElement(xmlWriter, QSL("jid"), d->mixUserJid); if (!d->mixUserNick.isEmpty()) - helperToXmlAddTextElement(xmlWriter, QStringLiteral("nick"), d->mixUserNick); + helperToXmlAddTextElement(xmlWriter, QSL("nick"), d->mixUserNick); xmlWriter->writeEndElement(); } diff --git a/src/base/QXmppPubSubIq.cpp b/src/base/QXmppPubSubIq.cpp index 29155fbf..23551d59 100644 --- a/src/base/QXmppPubSubIq.cpp +++ b/src/base/QXmppPubSubIq.cpp @@ -30,15 +30,15 @@ #include <QSharedData> static const QStringList PUBSUB_QUERIES = { - QStringLiteral("affiliations"), - QStringLiteral("default"), - QStringLiteral("items"), - QStringLiteral("publish"), - QStringLiteral("retract"), - QStringLiteral("subscribe"), - QStringLiteral("subscription"), - QStringLiteral("subscriptions"), - QStringLiteral("unsubscribe"), + QSL("affiliations"), + QSL("default"), + QSL("items"), + QSL("publish"), + QSL("retract"), + QSL("subscribe"), + QSL("subscription"), + QSL("subscriptions"), + QSL("unsubscribe"), }; class QXmppPubSubIqPrivate : public QSharedData @@ -153,12 +153,12 @@ void QXmppPubSubIq::setItems(const QList<QXmppPubSubItem> &items) /// \cond bool QXmppPubSubIq::isPubSubIq(const QDomElement &element) { - return element.firstChildElement("pubsub").namespaceURI() == ns_pubsub; + return element.firstChildElement(QSL("pubsub")).namespaceURI() == ns_pubsub; } void QXmppPubSubIq::parseElementFromChild(const QDomElement &element) { - const QDomElement pubSubElement = element.firstChildElement("pubsub"); + const QDomElement pubSubElement = element.firstChildElement(QSL("pubsub")); const QDomElement queryElement = pubSubElement.firstChildElement(); @@ -168,8 +168,8 @@ void QXmppPubSubIq::parseElementFromChild(const QDomElement &element) if (queryType > -1) d->queryType = QueryType(queryType); - d->queryJid = queryElement.attribute("jid"); - d->queryNode = queryElement.attribute("node"); + d->queryJid = queryElement.attribute(QSL("jid")); + d->queryNode = queryElement.attribute(QSL("node")); // parse contents QDomElement childElement; @@ -177,17 +177,17 @@ void QXmppPubSubIq::parseElementFromChild(const QDomElement &element) case QXmppPubSubIq::ItemsQuery: case QXmppPubSubIq::PublishQuery: case QXmppPubSubIq::RetractQuery: - childElement = queryElement.firstChildElement("item"); + childElement = queryElement.firstChildElement(QSL("item")); while (!childElement.isNull()) { QXmppPubSubItem item; item.parse(childElement); d->items << item; - childElement = childElement.nextSiblingElement("item"); + childElement = childElement.nextSiblingElement(QSL("item")); } break; case QXmppPubSubIq::SubscriptionQuery: - d->subscriptionId = queryElement.attribute("subid"); - d->subscriptionType = queryElement.attribute("subscription"); + d->subscriptionId = queryElement.attribute(QSL("subid")); + d->subscriptionType = queryElement.attribute(QSL("subscription")); break; default: break; @@ -196,13 +196,13 @@ void QXmppPubSubIq::parseElementFromChild(const QDomElement &element) void QXmppPubSubIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("pubsub"); + writer->writeStartElement(QSL("pubsub")); writer->writeDefaultNamespace(ns_pubsub); // write query type writer->writeStartElement(PUBSUB_QUERIES.at(d->queryType)); - helperToXmlAddAttribute(writer, "jid", d->queryJid); - helperToXmlAddAttribute(writer, "node", d->queryNode); + helperToXmlAddAttribute(writer, QSL("jid"), d->queryJid); + helperToXmlAddAttribute(writer, QSL("node"), d->queryNode); // write contents switch (d->queryType) { @@ -213,8 +213,8 @@ void QXmppPubSubIq::toXmlElementFromChild(QXmlStreamWriter *writer) const item.toXml(writer); break; case QXmppPubSubIq::SubscriptionQuery: - helperToXmlAddAttribute(writer, "subid", d->subscriptionId); - helperToXmlAddAttribute(writer, "subscription", d->subscriptionType); + helperToXmlAddAttribute(writer, QSL("subid"), d->subscriptionId); + helperToXmlAddAttribute(writer, QSL("subscription"), d->subscriptionType); break; default: break; diff --git a/src/base/QXmppPubSubItem.cpp b/src/base/QXmppPubSubItem.cpp index 835aeccb..a5f875d4 100644 --- a/src/base/QXmppPubSubItem.cpp +++ b/src/base/QXmppPubSubItem.cpp @@ -81,14 +81,14 @@ void QXmppPubSubItem::setContents(const QXmppElement &contents) /// \cond void QXmppPubSubItem::parse(const QDomElement &element) { - d->id = element.attribute("id"); + d->id = element.attribute(QSL("id")); d->contents = QXmppElement(element.firstChildElement()); } void QXmppPubSubItem::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("item"); - helperToXmlAddAttribute(writer, "id", d->id); + writer->writeStartElement(QSL("item")); + helperToXmlAddAttribute(writer, QSL("id"), d->id); d->contents.toXml(writer); writer->writeEndElement(); } diff --git a/src/base/QXmppRegisterIq.cpp b/src/base/QXmppRegisterIq.cpp index 330a013d..17e3197a 100644 --- a/src/base/QXmppRegisterIq.cpp +++ b/src/base/QXmppRegisterIq.cpp @@ -30,8 +30,8 @@ #include <QDomElement> #include <QSharedData> -#define ELEMENT_REGISTERED QStringLiteral("registered") -#define ELEMENT_REMOVE QStringLiteral("remove") +#define ELEMENT_REGISTERED QSL("registered") +#define ELEMENT_REMOVE QSL("remove") class QXmppRegisterIqPrivate : public QSharedData { @@ -260,17 +260,17 @@ void QXmppRegisterIq::setBitsOfBinaryData(const QXmppBitsOfBinaryDataList &bitsO /// \cond bool QXmppRegisterIq::isRegisterIq(const QDomElement &element) { - return (element.firstChildElement("query").namespaceURI() == ns_register); + return (element.firstChildElement(QSL("query")).namespaceURI() == ns_register); } void QXmppRegisterIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - d->instructions = queryElement.firstChildElement("instructions").text(); - d->username = queryElement.firstChildElement("username").text(); - d->password = queryElement.firstChildElement("password").text(); - d->email = queryElement.firstChildElement("email").text(); - d->form.parse(queryElement.firstChildElement("x")); + QDomElement queryElement = element.firstChildElement(QSL("query")); + d->instructions = queryElement.firstChildElement(QSL("instructions")).text(); + d->username = queryElement.firstChildElement(QSL("username")).text(); + d->password = queryElement.firstChildElement(QSL("password")).text(); + d->email = queryElement.firstChildElement(QSL("email")).text(); + d->form.parse(queryElement.firstChildElement(QSL("x"))); d->isRegistered = !queryElement.firstChildElement(ELEMENT_REGISTERED).isNull(); d->isRemove = !queryElement.firstChildElement(ELEMENT_REMOVE).isNull(); d->bitsOfBinaryData.parse(queryElement); @@ -278,11 +278,11 @@ void QXmppRegisterIq::parseElementFromChild(const QDomElement &element) void QXmppRegisterIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_register); if (!d->instructions.isEmpty()) - writer->writeTextElement("instructions", d->instructions); + writer->writeTextElement(QSL("instructions"), d->instructions); if (d->isRegistered) writer->writeEmptyElement(ELEMENT_REGISTERED); @@ -290,19 +290,19 @@ void QXmppRegisterIq::toXmlElementFromChild(QXmlStreamWriter *writer) const writer->writeEmptyElement(ELEMENT_REMOVE); if (!d->username.isEmpty()) - writer->writeTextElement("username", d->username); + writer->writeTextElement(QSL("username"), d->username); else if (!d->username.isNull()) - writer->writeEmptyElement("username"); + writer->writeEmptyElement(QSL("username")); if (!d->password.isEmpty()) - writer->writeTextElement("password", d->password); + writer->writeTextElement(QSL("password"), d->password); else if (!d->password.isNull()) - writer->writeEmptyElement("password"); + writer->writeEmptyElement(QSL("password")); if (!d->email.isEmpty()) - writer->writeTextElement("email", d->email); + writer->writeTextElement(QSL("email"), d->email); else if (!d->email.isNull()) - writer->writeEmptyElement("email"); + writer->writeEmptyElement(QSL("email")); d->form.toXml(writer); d->bitsOfBinaryData.toXml(writer); diff --git a/src/base/QXmppResultSet.cpp b/src/base/QXmppResultSet.cpp index 37d4f1db..76e93f6a 100644 --- a/src/base/QXmppResultSet.cpp +++ b/src/base/QXmppResultSet.cpp @@ -117,15 +117,15 @@ bool QXmppResultSetQuery::isNull() const /// \cond void QXmppResultSetQuery::parse(const QDomElement& element) { - QDomElement setElement = (element.tagName() == "set") ? element : element.firstChildElement("set"); + QDomElement setElement = (element.tagName() == QSL("set")) ? element : element.firstChildElement(QSL("set")); if (setElement.namespaceURI() == ns_rsm) { bool ok = false; - m_max = setElement.firstChildElement("max").text().toInt(&ok); + m_max = setElement.firstChildElement(QSL("max")).text().toInt(&ok); if (!ok) m_max = -1; - m_after = setElement.firstChildElement("after").text(); - m_before = setElement.firstChildElement("before").text(); - m_index = setElement.firstChildElement("index").text().toInt(&ok); + m_after = setElement.firstChildElement(QSL("after")).text(); + m_before = setElement.firstChildElement(QSL("before")).text(); + m_index = setElement.firstChildElement(QSL("index")).text().toInt(&ok); if (!ok) m_index = -1; } @@ -135,16 +135,16 @@ void QXmppResultSetQuery::toXml(QXmlStreamWriter* writer) const { if (isNull()) return; - writer->writeStartElement("set"); + writer->writeStartElement(QSL("set")); writer->writeDefaultNamespace(ns_rsm); if (m_max >= 0) - helperToXmlAddTextElement(writer, "max", QString::number(m_max)); + helperToXmlAddTextElement(writer, QSL("max"), QString::number(m_max)); if (!m_after.isNull()) - helperToXmlAddTextElement(writer, "after", m_after); + helperToXmlAddTextElement(writer, QSL("after"), m_after); if (!m_before.isNull()) - helperToXmlAddTextElement(writer, "before", m_before); + helperToXmlAddTextElement(writer, QSL("before"), m_before); if (m_index >= 0) - helperToXmlAddTextElement(writer, "index", QString::number(m_index)); + helperToXmlAddTextElement(writer, QSL("index"), QString::number(m_index)); writer->writeEndElement(); } /// \endcond diff --git a/src/base/QXmppRosterIq.cpp b/src/base/QXmppRosterIq.cpp index 585f0cb7..95d96c8d 100644 --- a/src/base/QXmppRosterIq.cpp +++ b/src/base/QXmppRosterIq.cpp @@ -112,40 +112,40 @@ void QXmppRosterIq::setMixAnnotate(bool mixAnnotate) /// \cond bool QXmppRosterIq::isRosterIq(const QDomElement &element) { - return (element.firstChildElement("query").namespaceURI() == ns_roster); + return (element.firstChildElement(QSL("query")).namespaceURI() == ns_roster); } void QXmppRosterIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - setVersion(queryElement.attribute("ver")); + QDomElement queryElement = element.firstChildElement(QSL("query")); + setVersion(queryElement.attribute(QSL("ver"))); - QDomElement itemElement = queryElement.firstChildElement("item"); + QDomElement itemElement = queryElement.firstChildElement(QSL("item")); while (!itemElement.isNull()) { QXmppRosterIq::Item item; item.parse(itemElement); d->items.append(item); - itemElement = itemElement.nextSiblingElement("item"); + itemElement = itemElement.nextSiblingElement(QSL("item")); } - QDomElement annotateElement = queryElement.firstChildElement("annotate"); + QDomElement annotateElement = queryElement.firstChildElement(QSL("annotate")); setMixAnnotate(!annotateElement.isNull() && annotateElement.namespaceURI() == ns_mix_roster); } void QXmppRosterIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_roster); // XEP-0237 roster versioning - If the server does not advertise support for roster versioning, the client MUST NOT include the 'ver' attribute. if (!version().isEmpty()) - writer->writeAttribute("ver", version()); + writer->writeAttribute(QSL("ver"), version()); // XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements if (d->mixAnnotate) { - writer->writeStartElement("annotate"); - writer->writeAttribute("xmlns", ns_mix_roster); + writer->writeStartElement(QSL("annotate")); + writer->writeAttribute(QSL("xmlns"), ns_mix_roster); writer->writeEndElement(); } @@ -310,17 +310,17 @@ QString QXmppRosterIq::Item::getSubscriptionTypeStr() const void QXmppRosterIq::Item::setSubscriptionTypeFromStr(const QString &type) { - if (type == "") + if (type.isEmpty() && !type.isNull()) // TODO CHECK setSubscriptionType(NotSet); - else if (type == "none") + else if (type == QSL("none")) setSubscriptionType(None); - else if (type == "both") + else if (type == QSL("both")) setSubscriptionType(Both); - else if (type == "from") + else if (type == QSL("from")) setSubscriptionType(From); - else if (type == "to") + else if (type == QSL("to")) setSubscriptionType(To); - else if (type == "remove") + else if (type == QSL("remove")) setSubscriptionType(Remove); else qWarning("QXmppRosterIq::Item::setTypeFromStr(): invalid type"); @@ -369,44 +369,44 @@ void QXmppRosterIq::Item::setMixParticipantId(const QString& participantId) /// \cond void QXmppRosterIq::Item::parse(const QDomElement &element) { - d->name = element.attribute("name"); - d->bareJid = element.attribute("jid"); - setSubscriptionTypeFromStr(element.attribute("subscription")); - setSubscriptionStatus(element.attribute("ask")); + d->name = element.attribute(QSL("name")); + d->bareJid = element.attribute(QSL("jid")); + setSubscriptionTypeFromStr(element.attribute(QSL("subscription"))); + setSubscriptionStatus(element.attribute(QSL("ask"))); - QDomElement groupElement = element.firstChildElement("group"); + QDomElement groupElement = element.firstChildElement(QSL("group")); while (!groupElement.isNull()) { d->groups << groupElement.text(); - groupElement = groupElement.nextSiblingElement("group"); + groupElement = groupElement.nextSiblingElement(QSL("group")); } // XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements - QDomElement channelElement = element.firstChildElement("channel"); + QDomElement channelElement = element.firstChildElement(QSL("channel")); if (!channelElement.isNull() && channelElement.namespaceURI() == ns_mix_roster) { d->isMixChannel = true; - d->mixParticipantId = channelElement.attribute("participant-id"); + d->mixParticipantId = channelElement.attribute(QSL("participant-id")); } } void QXmppRosterIq::Item::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("item"); - helperToXmlAddAttribute(writer, "jid", d->bareJid); - helperToXmlAddAttribute(writer, "name", d->name); - helperToXmlAddAttribute(writer, "subscription", getSubscriptionTypeStr()); - helperToXmlAddAttribute(writer, "ask", subscriptionStatus()); + writer->writeStartElement(QSL("item")); + helperToXmlAddAttribute(writer, QSL("jid"), d->bareJid); + helperToXmlAddAttribute(writer, QSL("name"), d->name); + helperToXmlAddAttribute(writer, QSL("subscription"), getSubscriptionTypeStr()); + helperToXmlAddAttribute(writer, QSL("ask"), subscriptionStatus()); QSet<QString>::const_iterator i = d->groups.constBegin(); while (i != d->groups.constEnd()) { - helperToXmlAddTextElement(writer, "group", *i); + helperToXmlAddTextElement(writer, QSL("group"), *i); ++i; } // XEP-0405: Mediated Information eXchange (MIX): Participant Server Requirements if (d->isMixChannel) { - writer->writeStartElement("channel"); - writer->writeAttribute("xmlns", ns_mix_roster); - helperToXmlAddAttribute(writer, "participant-id", d->mixParticipantId); + writer->writeStartElement(QSL("channel")); + writer->writeAttribute(QSL("xmlns"), ns_mix_roster); + helperToXmlAddAttribute(writer, QSL("participant-id"), d->mixParticipantId); writer->writeEndElement(); } diff --git a/src/base/QXmppRpcIq.cpp b/src/base/QXmppRpcIq.cpp index a769af07..0f40c97b 100644 --- a/src/base/QXmppRpcIq.cpp +++ b/src/base/QXmppRpcIq.cpp @@ -35,33 +35,33 @@ void QXmppRpcMarshaller::marshall(QXmlStreamWriter *writer, const QVariant &value) { - writer->writeStartElement("value"); + writer->writeStartElement(QSL("value")); switch (value.type()) { case QVariant::Int: case QVariant::UInt: case QVariant::LongLong: case QVariant::ULongLong: - writer->writeTextElement("i4", value.toString()); + writer->writeTextElement(QSL("i4"), value.toString()); break; case QVariant::Double: - writer->writeTextElement("double", value.toString()); + writer->writeTextElement(QSL("double"), value.toString()); break; case QVariant::Bool: - writer->writeTextElement("boolean", value.toBool() ? "1" : "0"); + writer->writeTextElement(QSL("boolean"), value.toBool() ? QSL("1") : QSL("0")); break; case QVariant::Date: - writer->writeTextElement("dateTime.iso8601", value.toDate().toString(Qt::ISODate)); + writer->writeTextElement(QSL("dateTime.iso8601"), value.toDate().toString(Qt::ISODate)); break; case QVariant::DateTime: - writer->writeTextElement("dateTime.iso8601", value.toDateTime().toString(Qt::ISODate)); + writer->writeTextElement(QSL("dateTime.iso8601"), value.toDateTime().toString(Qt::ISODate)); break; case QVariant::Time: - writer->writeTextElement("dateTime.iso8601", value.toTime().toString(Qt::ISODate)); + writer->writeTextElement(QSL("dateTime.iso8601"), value.toTime().toString(Qt::ISODate)); break; case QVariant::StringList: case QVariant::List: { - writer->writeStartElement("array"); - writer->writeStartElement("data"); + writer->writeStartElement(QSL("array")); + writer->writeStartElement(QSL("data")); for (const auto &item : value.toList()) marshall(writer, item); writer->writeEndElement(); @@ -69,12 +69,12 @@ void QXmppRpcMarshaller::marshall(QXmlStreamWriter *writer, const QVariant &valu break; } case QVariant::Map: { - writer->writeStartElement("struct"); + writer->writeStartElement(QSL("struct")); QMap<QString, QVariant> map = value.toMap(); QMap<QString, QVariant>::ConstIterator index = map.begin(); while (index != map.end()) { - writer->writeStartElement("member"); - writer->writeTextElement("name", index.key()); + writer->writeStartElement(QSL("member")); + writer->writeTextElement(QSL("name"), index.key()); marshall(writer, *index); writer->writeEndElement(); ++index; @@ -83,14 +83,14 @@ void QXmppRpcMarshaller::marshall(QXmlStreamWriter *writer, const QVariant &valu break; } case QVariant::ByteArray: { - writer->writeTextElement("base64", value.toByteArray().toBase64()); + writer->writeTextElement(QSL("base64"), value.toByteArray().toBase64()); break; } default: { if (value.isNull()) - writer->writeEmptyElement("nil"); + writer->writeEmptyElement(QSL("nil")); else if (value.canConvert(QVariant::String)) { - writer->writeTextElement("string", value.toString()); + writer->writeTextElement(QSL("string"), value.toString()); } break; } @@ -100,7 +100,7 @@ void QXmppRpcMarshaller::marshall(QXmlStreamWriter *writer, const QVariant &valu QVariant QXmppRpcMarshaller::demarshall(const QDomElement &elem, QStringList &errors) { - if (elem.tagName().toLower() != "value") { + if (elem.tagName().toLower() != QSL("value")) { errors << "Bad param value"; return QVariant(); } @@ -112,54 +112,54 @@ QVariant QXmppRpcMarshaller::demarshall(const QDomElement &elem, QStringList &er const QDomElement typeData = elem.firstChild().toElement(); const QString typeName = typeData.tagName().toLower(); - if (typeName == "nil") { + if (typeName == QSL("nil")) { return QVariant(); } - if (typeName == "string") { + if (typeName == QSL("string")) { return QVariant(typeData.text()); - } else if (typeName == "int" || typeName == "i4") { + } else if (typeName == QSL("int") || typeName == QSL("i4")) { bool ok = false; QVariant val(typeData.text().toInt(&ok)); if (ok) return val; errors << "I was looking for an integer but data was courupt"; return QVariant(); - } else if (typeName == "double") { + } else if (typeName == QSL("double")) { bool ok = false; QVariant val(typeData.text().toDouble(&ok)); if (ok) return val; errors << "I was looking for an double but data was corrupt"; - } else if (typeName == "boolean") - return QVariant(typeData.text() == "1" || typeData.text().toLower() == "true"); - else if (typeName == "datetime" || typeName == "datetime.iso8601") + } else if (typeName == QSL("boolean")) + return QVariant(typeData.text() == QSL("1") || typeData.text().toLower() == QSL("true")); + else if (typeName == QSL("datetime") || typeName == QSL("datetime.iso8601")) return QVariant(QDateTime::fromString(typeData.text(), Qt::ISODate)); - else if (typeName == "array") { + else if (typeName == QSL("array")) { QVariantList arr; - QDomElement valueNode = typeData.firstChildElement("data").firstChildElement(); + QDomElement valueNode = typeData.firstChildElement(QSL("data")).firstChildElement(); while (!valueNode.isNull() && errors.isEmpty()) { arr.append(demarshall(valueNode, errors)); valueNode = valueNode.nextSiblingElement(); } return QVariant(arr); - } else if (typeName == "struct") { + } else if (typeName == QSL("struct")) { QMap<QString, QVariant> stct; QDomNode valueNode = typeData.firstChild(); while (!valueNode.isNull() && errors.isEmpty()) { - const QDomElement memberNode = valueNode.toElement().elementsByTagName("name").item(0).toElement(); - const QDomElement dataNode = valueNode.toElement().elementsByTagName("value").item(0).toElement(); + const QDomElement memberNode = valueNode.toElement().elementsByTagName(QSL("name")).item(0).toElement(); + const QDomElement dataNode = valueNode.toElement().elementsByTagName(QSL("value")).item(0).toElement(); stct[memberNode.text()] = demarshall(dataNode, errors); valueNode = valueNode.nextSibling(); } return QVariant(stct); - } else if (typeName == "base64") { + } else if (typeName == QSL("base64")) { QVariant returnVariant; QByteArray dest; QByteArray src = typeData.text().toLatin1(); return QVariant(QByteArray::fromBase64(src)); } - errors << QString("Cannot handle type %1").arg(typeName); + errors << QSL("Cannot handle type %1").arg(typeName); return QVariant(); } @@ -180,10 +180,10 @@ void QXmppRpcErrorIq::setQuery(const QXmppRpcInvokeIq &query) /// \cond bool QXmppRpcErrorIq::isRpcErrorIq(const QDomElement &element) { - QString type = element.attribute("type"); - QDomElement errorElement = element.firstChildElement("error"); - QDomElement queryElement = element.firstChildElement("query"); - return (type == "error") && + QString type = element.attribute(QSL("type")); + QDomElement errorElement = element.firstChildElement(QSL("error")); + QDomElement queryElement = element.firstChildElement(QSL("query")); + return (type == QSL("error")) && !errorElement.isNull() && queryElement.namespaceURI() == ns_rpc; } @@ -259,56 +259,56 @@ void QXmppRpcResponseIq::setValues(const QVariantList &values) /// \cond bool QXmppRpcResponseIq::isRpcResponseIq(const QDomElement &element) { - QString type = element.attribute("type"); - QDomElement dataElement = element.firstChildElement("query"); + QString type = element.attribute(QSL("type")); + QDomElement dataElement = element.firstChildElement(QSL("query")); return dataElement.namespaceURI() == ns_rpc && - type == "result"; + type == QSL("result"); } void QXmppRpcResponseIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - QDomElement methodElement = queryElement.firstChildElement("methodResponse"); + QDomElement queryElement = element.firstChildElement(QSL("query")); + QDomElement methodElement = queryElement.firstChildElement(QSL("methodResponse")); const QDomElement contents = methodElement.firstChildElement(); - if (contents.tagName().toLower() == "params") { - QDomNode param = contents.firstChildElement("param"); + if (contents.tagName().toLower() == QSL("params")) { + QDomNode param = contents.firstChildElement(QSL("param")); while (!param.isNull()) { QStringList errors; - const QVariant value = QXmppRpcMarshaller::demarshall(param.firstChildElement("value"), errors); + const QVariant value = QXmppRpcMarshaller::demarshall(param.firstChildElement(QSL("value")), errors); if (!errors.isEmpty()) break; m_values << value; - param = param.nextSiblingElement("param"); + param = param.nextSiblingElement(QSL("param")); } - } else if (contents.tagName().toLower() == "fault") { + } else if (contents.tagName().toLower() == QSL("fault")) { QStringList errors; - const QDomElement errElement = contents.firstChildElement("value"); + const QDomElement errElement = contents.firstChildElement(QSL("value")); const QVariant error = QXmppRpcMarshaller::demarshall(errElement, errors); if (!errors.isEmpty()) return; - m_faultCode = error.toMap()["faultCode"].toInt(); - m_faultString = error.toMap()["faultString"].toString(); + m_faultCode = error.toMap()[QSL("faultCode")].toInt(); + m_faultString = error.toMap()[QSL("faultString")].toString(); } } void QXmppRpcResponseIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_rpc); - writer->writeStartElement("methodResponse"); + writer->writeStartElement(QSL("methodResponse")); if (m_faultCode) { - writer->writeStartElement("fault"); + writer->writeStartElement(QSL("fault")); QMap<QString, QVariant> fault; - fault["faultCode"] = m_faultCode; - fault["faultString"] = m_faultString; + fault[QSL("faultCode")] = m_faultCode; + fault[QSL("faultString")] = m_faultString; QXmppRpcMarshaller::marshall(writer, fault); writer->writeEndElement(); } else if (!m_values.isEmpty()) { - writer->writeStartElement("params"); + writer->writeStartElement(QSL("params")); for (const auto &arg : m_values) { - writer->writeStartElement("param"); + writer->writeStartElement(QSL("param")); QXmppRpcMarshaller::marshall(writer, arg); writer->writeEndElement(); } @@ -362,45 +362,45 @@ void QXmppRpcInvokeIq::setMethod(const QString &method) /// \cond bool QXmppRpcInvokeIq::isRpcInvokeIq(const QDomElement &element) { - QString type = element.attribute("type"); - QDomElement dataElement = element.firstChildElement("query"); + QString type = element.attribute(QSL("type")); + QDomElement dataElement = element.firstChildElement(QSL("query")); return dataElement.namespaceURI() == ns_rpc && - type == "set"; + type == QSL("set"); } void QXmppRpcInvokeIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - QDomElement methodElement = queryElement.firstChildElement("methodCall"); + QDomElement queryElement = element.firstChildElement(QSL("query")); + QDomElement methodElement = queryElement.firstChildElement(QSL("methodCall")); - m_method = methodElement.firstChildElement("methodName").text(); + m_method = methodElement.firstChildElement(QSL("methodName")).text(); - const QDomElement methodParams = methodElement.firstChildElement("params"); + const QDomElement methodParams = methodElement.firstChildElement(QSL("params")); m_arguments.clear(); if (!methodParams.isNull()) { - QDomNode param = methodParams.firstChildElement("param"); + QDomNode param = methodParams.firstChildElement(QSL("param")); while (!param.isNull()) { QStringList errors; - QVariant arg = QXmppRpcMarshaller::demarshall(param.firstChildElement("value"), errors); + QVariant arg = QXmppRpcMarshaller::demarshall(param.firstChildElement(QSL("value")), errors); if (!errors.isEmpty()) break; m_arguments << arg; - param = param.nextSiblingElement("param"); + param = param.nextSiblingElement(QSL("param")); } } } void QXmppRpcInvokeIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_rpc); - writer->writeStartElement("methodCall"); - writer->writeTextElement("methodName", m_method); + writer->writeStartElement(QSL("methodCall")); + writer->writeTextElement(QSL("methodName"), m_method); if (!m_arguments.isEmpty()) { - writer->writeStartElement("params"); + writer->writeStartElement(QSL("params")); for (const auto &arg : m_arguments) { - writer->writeStartElement("param"); + writer->writeStartElement(QSL("param")); QXmppRpcMarshaller::marshall(writer, arg); writer->writeEndElement(); } diff --git a/src/base/QXmppSasl.cpp b/src/base/QXmppSasl.cpp index 97bb77c9..29b9b5d2 100644 --- a/src/base/QXmppSasl.cpp +++ b/src/base/QXmppSasl.cpp @@ -27,6 +27,7 @@ #include <cstdlib> +#include <QByteArray> #include <QDomElement> #include <QMessageAuthenticationCode> #include <QStringList> @@ -130,15 +131,15 @@ void QXmppSaslAuth::setValue(const QByteArray &value) void QXmppSaslAuth::parse(const QDomElement &element) { - m_mechanism = element.attribute("mechanism"); + m_mechanism = element.attribute(QSL("mechanism")); m_value = QByteArray::fromBase64(element.text().toLatin1()); } void QXmppSaslAuth::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("auth"); + writer->writeStartElement(QSL("auth")); writer->writeDefaultNamespace(ns_xmpp_sasl); - writer->writeAttribute("mechanism", m_mechanism); + writer->writeAttribute(QSL("mechanism"), m_mechanism); if (!m_value.isEmpty()) writer->writeCharacters(m_value.toBase64()); writer->writeEndElement(); @@ -166,7 +167,7 @@ void QXmppSaslChallenge::parse(const QDomElement &element) void QXmppSaslChallenge::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("challenge"); + writer->writeStartElement(QSL("challenge")); writer->writeDefaultNamespace(ns_xmpp_sasl); if (!m_value.isEmpty()) writer->writeCharacters(m_value.toBase64()); @@ -195,7 +196,7 @@ void QXmppSaslFailure::parse(const QDomElement &element) void QXmppSaslFailure::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("failure"); + writer->writeStartElement(QSL("failure")); writer->writeDefaultNamespace(ns_xmpp_sasl); if (!m_condition.isEmpty()) writer->writeEmptyElement(m_condition); @@ -224,7 +225,7 @@ void QXmppSaslResponse::parse(const QDomElement &element) void QXmppSaslResponse::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("response"); + writer->writeStartElement(QSL("response")); writer->writeDefaultNamespace(ns_xmpp_sasl); if (!m_value.isEmpty()) writer->writeCharacters(m_value.toBase64()); @@ -242,7 +243,7 @@ void QXmppSaslSuccess::parse(const QDomElement &element) void QXmppSaslSuccess::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("success"); + writer->writeStartElement(QSL("success")); writer->writeDefaultNamespace(ns_xmpp_sasl); writer->writeEndElement(); } @@ -270,35 +271,35 @@ QXmppSaslClient::~QXmppSaslClient() QStringList QXmppSaslClient::availableMechanisms() { - return QStringList() << "SCRAM-SHA-256" - << "SCRAM-SHA-1" - << "DIGEST-MD5" - << "PLAIN" - << "ANONYMOUS" - << "X-FACEBOOK-PLATFORM" - << "X-MESSENGER-OAUTH2" - << "X-OAUTH2"; + return QStringList() << QSL("SCRAM-SHA-256") + << QSL("SCRAM-SHA-1") + << QSL("DIGEST-MD5") + << QSL("PLAIN") + << QSL("ANONYMOUS") + << QSL("X-FACEBOOK-PLATFORM") + << QSL("X-MESSENGER-OAUTH2") + << QSL("X-OAUTH2"); } /// Creates an SASL client for the given mechanism. QXmppSaslClient *QXmppSaslClient::create(const QString &mechanism, QObject *parent) { - if (mechanism == "PLAIN") { + if (mechanism == QSL("PLAIN")) { return new QXmppSaslClientPlain(parent); - } else if (mechanism == "DIGEST-MD5") { + } else if (mechanism == QSL("DIGEST-MD5")) { return new QXmppSaslClientDigestMd5(parent); - } else if (mechanism == "ANONYMOUS") { + } else if (mechanism == QSL("ANONYMOUS")) { return new QXmppSaslClientAnonymous(parent); - } else if (mechanism == "SCRAM-SHA-1") { + } else if (mechanism == QSL("SCRAM-SHA-1")) { return new QXmppSaslClientScram(QCryptographicHash::Sha1, parent); - } else if (mechanism == "SCRAM-SHA-256") { + } else if (mechanism == QSL("SCRAM-SHA-256")) { return new QXmppSaslClientScram(QCryptographicHash::Sha256, parent); - } else if (mechanism == "X-FACEBOOK-PLATFORM") { + } else if (mechanism == QSL("X-FACEBOOK-PLATFORM")) { return new QXmppSaslClientFacebook(parent); - } else if (mechanism == "X-MESSENGER-OAUTH2") { + } else if (mechanism == QSL("X-MESSENGER-OAUTH2")) { return new QXmppSaslClientWindowsLive(parent); - } else if (mechanism == "X-OAUTH2") { + } else if (mechanism == QSL("X-OAUTH2")) { return new QXmppSaslClientGoogle(parent); } else { return nullptr; @@ -368,7 +369,7 @@ QXmppSaslClientAnonymous::QXmppSaslClientAnonymous(QObject *parent) QString QXmppSaslClientAnonymous::mechanism() const { - return "ANONYMOUS"; + return QSL("ANONYMOUS"); } bool QXmppSaslClientAnonymous::respond(const QByteArray &challenge, QByteArray &response) @@ -379,13 +380,13 @@ bool QXmppSaslClientAnonymous::respond(const QByteArray &challenge, QByteArray & m_step++; return true; } else { - warning("QXmppSaslClientAnonymous : Invalid step"); + warning(QSL("QXmppSaslClientAnonymous : Invalid step")); return false; } } QXmppSaslClientDigestMd5::QXmppSaslClientDigestMd5(QObject *parent) - : QXmppSaslClient(parent), m_nc("00000001"), m_step(0) + : QXmppSaslClient(parent), m_nc(QBL("00000001")), m_step(0) { m_cnonce = generateNonce(); } @@ -398,7 +399,7 @@ QString QXmppSaslClientDigestMd5::mechanism() const bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray &response) { Q_UNUSED(challenge); - const QByteArray digestUri = QString("%1/%2").arg(serviceType(), host()).toUtf8(); + const QByteArray digestUri = QSL("%1/%2").arg(serviceType(), host()).toUtf8(); if (m_step == 0) { response = QByteArray(); @@ -407,38 +408,38 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray & } else if (m_step == 1) { const QMap<QByteArray, QByteArray> input = QXmppSaslDigestMd5::parseMessage(challenge); - if (!input.contains("nonce")) { - warning("QXmppSaslClientDigestMd5 : Invalid input on step 1"); + if (!input.contains(QBL("nonce"))) { + warning(QSL("QXmppSaslClientDigestMd5 : Invalid input on step 1")); return false; } // determine realm - const QByteArray realm = input.value("realm"); + const QByteArray realm = input.value(QBL("realm")); // determine quality of protection - const QList<QByteArray> qops = input.value("qop", "auth").split(','); - if (!qops.contains("auth")) { - warning("QXmppSaslClientDigestMd5 : Invalid quality of protection"); + const QList<QByteArray> qops = input.value(QBL("qop"), QBL("auth")).split(','); + if (!qops.contains(QBL("auth"))) { + warning(QSL("QXmppSaslClientDigestMd5 : Invalid quality of protection")); return false; } - m_nonce = input.value("nonce"); + m_nonce = input.value(QBL("nonce")); m_secret = QCryptographicHash::hash( - username().toUtf8() + ":" + realm + ":" + password().toUtf8(), + username().toUtf8() + QBL(":") + realm + QBL(":") + password().toUtf8(), QCryptographicHash::Md5); // Build response QMap<QByteArray, QByteArray> output; - output["username"] = username().toUtf8(); + output[QBL("username")] = username().toUtf8(); if (!realm.isEmpty()) - output["realm"] = realm; - output["nonce"] = m_nonce; - output["qop"] = "auth"; - output["cnonce"] = m_cnonce; - output["nc"] = m_nc; - output["digest-uri"] = digestUri; - output["response"] = calculateDigest("AUTHENTICATE", digestUri, m_secret, m_nonce, m_cnonce, m_nc); - output["charset"] = "utf-8"; + output[QBL("realm")] = realm; + output[QBL("nonce")] = m_nonce; + output[QBL("qop")] = QBL("auth"); + output[QBL("cnonce")] = m_cnonce; + output[QBL("nc")] = m_nc; + output[QBL("digest-uri")] = digestUri; + output[QBL("response")] = calculateDigest(QBL("AUTHENTICATE"), digestUri, m_secret, m_nonce, m_cnonce, m_nc); + output[QBL("charset")] = QBL("utf-8"); response = QXmppSaslDigestMd5::serializeMessage(output); m_step++; @@ -447,8 +448,8 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray & const QMap<QByteArray, QByteArray> input = QXmppSaslDigestMd5::parseMessage(challenge); // check new challenge - if (input.value("rspauth") != calculateDigest(QByteArray(), digestUri, m_secret, m_nonce, m_cnonce, m_nc)) { - warning("QXmppSaslClientDigestMd5 : Invalid challenge on step 2"); + if (input.value(QBL("rspauth")) != calculateDigest(QByteArray(), digestUri, m_secret, m_nonce, m_cnonce, m_nc)) { + warning(QSL("QXmppSaslClientDigestMd5 : Invalid challenge on step 2")); return false; } @@ -456,7 +457,7 @@ bool QXmppSaslClientDigestMd5::respond(const QByteArray &challenge, QByteArray & m_step++; return true; } else { - warning("QXmppSaslClientDigestMd5 : Invalid step"); + warning(QSL("QXmppSaslClientDigestMd5 : Invalid step")); return false; } } @@ -468,7 +469,7 @@ QXmppSaslClientFacebook::QXmppSaslClientFacebook(QObject *parent) QString QXmppSaslClientFacebook::mechanism() const { - return "X-FACEBOOK-PLATFORM"; + return QSL("X-FACEBOOK-PLATFORM"); } bool QXmppSaslClientFacebook::respond(const QByteArray &challenge, QByteArray &response) @@ -481,26 +482,26 @@ bool QXmppSaslClientFacebook::respond(const QByteArray &challenge, QByteArray &r } else if (m_step == 1) { // parse request QUrlQuery requestUrl(challenge); - if (!requestUrl.hasQueryItem("method") || !requestUrl.hasQueryItem("nonce")) { - warning("QXmppSaslClientFacebook : Invalid challenge, nonce or method missing"); + if (!requestUrl.hasQueryItem(QSL("method")) || !requestUrl.hasQueryItem(QSL("nonce"))) { + warning(QSL("QXmppSaslClientFacebook : Invalid challenge, nonce or method missing")); return false; } // build response QUrlQuery responseUrl; - responseUrl.addQueryItem("access_token", password()); - responseUrl.addQueryItem("api_key", username()); - responseUrl.addQueryItem("call_id", nullptr); - responseUrl.addQueryItem("method", requestUrl.queryItemValue("method")); - responseUrl.addQueryItem("nonce", requestUrl.queryItemValue("nonce")); - responseUrl.addQueryItem("v", "1.0"); + responseUrl.addQueryItem(QSL("access_token"), password()); + responseUrl.addQueryItem(QSL("api_key"), username()); + responseUrl.addQueryItem(QSL("call_id"), nullptr); + responseUrl.addQueryItem(QSL("method"), requestUrl.queryItemValue(QSL("method"))); + responseUrl.addQueryItem(QSL("nonce"), requestUrl.queryItemValue(QSL("nonce"))); + responseUrl.addQueryItem(QSL("v"), QSL("1.0")); response = responseUrl.query().toUtf8(); m_step++; return true; } else { - warning("QXmppSaslClientFacebook : Invalid step"); + warning(QSL("QXmppSaslClientFacebook : Invalid step")); return false; } } @@ -512,7 +513,7 @@ QXmppSaslClientGoogle::QXmppSaslClientGoogle(QObject *parent) QString QXmppSaslClientGoogle::mechanism() const { - return "X-OAUTH2"; + return QSL("X-OAUTH2"); } bool QXmppSaslClientGoogle::respond(const QByteArray &challenge, QByteArray &response) @@ -524,7 +525,7 @@ bool QXmppSaslClientGoogle::respond(const QByteArray &challenge, QByteArray &res m_step++; return true; } else { - warning("QXmppSaslClientGoogle : Invalid step"); + warning(QSL("QXmppSaslClientGoogle : Invalid step")); return false; } } @@ -536,7 +537,7 @@ QXmppSaslClientPlain::QXmppSaslClientPlain(QObject *parent) QString QXmppSaslClientPlain::mechanism() const { - return "PLAIN"; + return QSL("PLAIN"); } bool QXmppSaslClientPlain::respond(const QByteArray &challenge, QByteArray &response) @@ -547,7 +548,7 @@ bool QXmppSaslClientPlain::respond(const QByteArray &challenge, QByteArray &resp m_step++; return true; } else { - warning("QXmppSaslClientPlain : Invalid step"); + warning(QSL("QXmppSaslClientPlain : Invalid step")); return false; } } @@ -560,10 +561,10 @@ QXmppSaslClientScram::QXmppSaslClientScram(QCryptographicHash::Algorithm algorit if (m_algorithm == QCryptographicHash::Sha256) { m_dklen = 32; - m_mechanism = "SCRAM-SHA-256"; + m_mechanism = QSL("SCRAM-SHA-256"); } else { m_dklen = 20; - m_mechanism = "SCRAM-SHA-1"; + m_mechanism = QSL("SCRAM-SHA-1"); } } @@ -576,8 +577,8 @@ bool QXmppSaslClientScram::respond(const QByteArray &challenge, QByteArray &resp { Q_UNUSED(challenge); if (m_step == 0) { - m_gs2Header = "n,,"; - m_clientFirstMessageBare = "n=" + username().toUtf8() + ",r=" + m_nonce; + m_gs2Header = QBL("n,,"); + m_clientFirstMessageBare = QBL("n=") + username().toUtf8() + QBL(",r=") + m_nonce; response = m_gs2Header + m_clientFirstMessageBare; m_step++; @@ -593,20 +594,20 @@ bool QXmppSaslClientScram::respond(const QByteArray &challenge, QByteArray &resp } // calculate proofs - const QByteArray clientFinalMessageBare = "c=" + m_gs2Header.toBase64() + ",r=" + nonce; + const QByteArray clientFinalMessageBare = QBL("c=") + m_gs2Header.toBase64() + QBL(",r=") + nonce; const QByteArray saltedPassword = deriveKeyPbkdf2(m_algorithm, password().toUtf8(), salt, iterations, m_dklen); - const QByteArray clientKey = QMessageAuthenticationCode::hash("Client Key", saltedPassword, m_algorithm); + const QByteArray clientKey = QMessageAuthenticationCode::hash(QBL("Client Key"), saltedPassword, m_algorithm); const QByteArray storedKey = QCryptographicHash::hash(clientKey, m_algorithm); - const QByteArray authMessage = m_clientFirstMessageBare + "," + challenge + "," + clientFinalMessageBare; + const QByteArray authMessage = m_clientFirstMessageBare + QBL(",") + challenge + QBL(",") + clientFinalMessageBare; QByteArray clientProof = QMessageAuthenticationCode::hash(authMessage, storedKey, m_algorithm); std::transform(clientProof.cbegin(), clientProof.cend(), clientKey.cbegin(), clientProof.begin(), std::bit_xor<char>()); - const QByteArray serverKey = QMessageAuthenticationCode::hash("Server Key", saltedPassword, m_algorithm); + const QByteArray serverKey = QMessageAuthenticationCode::hash(QBL("Server Key"), saltedPassword, m_algorithm); m_serverSignature = QMessageAuthenticationCode::hash(authMessage, serverKey, m_algorithm); - response = clientFinalMessageBare + ",p=" + clientProof.toBase64(); + response = clientFinalMessageBare + QBL(",p=") + clientProof.toBase64(); m_step++; return true; } else if (m_step == 2) { @@ -615,7 +616,7 @@ bool QXmppSaslClientScram::respond(const QByteArray &challenge, QByteArray &resp m_step++; return QByteArray::fromBase64(input.value('v')) == m_serverSignature; } else { - warning("QXmppSaslClientPlain : Invalid step"); + warning(QSL("QXmppSaslClientPlain : Invalid step")); return false; } } @@ -627,7 +628,7 @@ QXmppSaslClientWindowsLive::QXmppSaslClientWindowsLive(QObject *parent) QString QXmppSaslClientWindowsLive::mechanism() const { - return "X-MESSENGER-OAUTH2"; + return QSL("X-MESSENGER-OAUTH2"); } bool QXmppSaslClientWindowsLive::respond(const QByteArray &challenge, QByteArray &response) @@ -639,7 +640,7 @@ bool QXmppSaslClientWindowsLive::respond(const QByteArray &challenge, QByteArray m_step++; return true; } else { - warning("QXmppSaslClientWindowsLive : Invalid step"); + warning(QSL("QXmppSaslClientWindowsLive : Invalid step")); return false; } } @@ -667,11 +668,11 @@ QXmppSaslServer::~QXmppSaslServer() QXmppSaslServer *QXmppSaslServer::create(const QString &mechanism, QObject *parent) { - if (mechanism == "PLAIN") { + if (mechanism == QSL("PLAIN")) { return new QXmppSaslServerPlain(parent); - } else if (mechanism == "DIGEST-MD5") { + } else if (mechanism == QSL("DIGEST-MD5")) { return new QXmppSaslServerDigestMd5(parent); - } else if (mechanism == "ANONYMOUS") { + } else if (mechanism == QSL("ANONYMOUS")) { return new QXmppSaslServerAnonymous(parent); } else { return nullptr; @@ -741,7 +742,7 @@ QXmppSaslServerAnonymous::QXmppSaslServerAnonymous(QObject *parent) QString QXmppSaslServerAnonymous::mechanism() const { - return "ANONYMOUS"; + return QSL("ANONYMOUS"); } QXmppSaslServer::Response QXmppSaslServerAnonymous::respond(const QByteArray &request, QByteArray &response) @@ -752,7 +753,7 @@ QXmppSaslServer::Response QXmppSaslServerAnonymous::respond(const QByteArray &re response = QByteArray(); return Succeeded; } else { - warning("QXmppSaslServerAnonymous : Invalid step"); + warning(QSL("QXmppSaslServerAnonymous : Invalid step")); return Failed; } } @@ -765,52 +766,52 @@ QXmppSaslServerDigestMd5::QXmppSaslServerDigestMd5(QObject *parent) QString QXmppSaslServerDigestMd5::mechanism() const { - return "DIGEST-MD5"; + return QSL("DIGEST-MD5"); } QXmppSaslServer::Response QXmppSaslServerDigestMd5::respond(const QByteArray &request, QByteArray &response) { if (m_step == 0) { QMap<QByteArray, QByteArray> output; - output["nonce"] = m_nonce; + output[QBL("nonce")] = m_nonce; if (!realm().isEmpty()) - output["realm"] = realm().toUtf8(); - output["qop"] = "auth"; - output["charset"] = "utf-8"; - output["algorithm"] = "md5-sess"; + output[QBL("realm")] = realm().toUtf8(); + output[QBL("qop")] = QBL("auth"); + output[QBL("charset")] = QBL("utf-8"); + output[QBL("algorithm")] = QBL("md5-sess"); m_step++; response = QXmppSaslDigestMd5::serializeMessage(output); return Challenge; } else if (m_step == 1) { const QMap<QByteArray, QByteArray> input = QXmppSaslDigestMd5::parseMessage(request); - const QByteArray realm = input.value("realm"); - const QByteArray digestUri = input.value("digest-uri"); + const QByteArray realm = input.value(QBL("realm")); + const QByteArray digestUri = input.value(QBL("digest-uri")); - if (input.value("qop") != "auth") { - warning("QXmppSaslServerDigestMd5 : Invalid quality of protection"); + if (input.value(QBL("qop")) != QBL("auth")) { + warning(QSL("QXmppSaslServerDigestMd5 : Invalid quality of protection")); return Failed; } - setUsername(QString::fromUtf8(input.value("username"))); + setUsername(QString::fromUtf8(input.value(QBL("username")))); if (password().isEmpty() && passwordDigest().isEmpty()) return InputNeeded; - m_nc = input.value("nc"); - m_cnonce = input.value("cnonce"); + m_nc = input.value(QBL("nc")); + m_cnonce = input.value(QBL("cnonce")); if (!password().isEmpty()) { m_secret = QCryptographicHash::hash( - username().toUtf8() + ":" + realm + ":" + password().toUtf8(), + username().toUtf8() + QBL(":") + realm + QBL(":") + password().toUtf8(), QCryptographicHash::Md5); } else { m_secret = passwordDigest(); } - if (input.value("response") != calculateDigest("AUTHENTICATE", digestUri, m_secret, m_nonce, m_cnonce, m_nc)) + if (input.value(QBL("response")) != calculateDigest(QBL("AUTHENTICATE"), digestUri, m_secret, m_nonce, m_cnonce, m_nc)) return Failed; QMap<QByteArray, QByteArray> output; - output["rspauth"] = calculateDigest(QByteArray(), digestUri, m_secret, m_nonce, m_cnonce, m_nc); + output[QBL("rspauth")] = calculateDigest(QByteArray(), digestUri, m_secret, m_nonce, m_cnonce, m_nc); m_step++; response = QXmppSaslDigestMd5::serializeMessage(output); @@ -820,7 +821,7 @@ QXmppSaslServer::Response QXmppSaslServerDigestMd5::respond(const QByteArray &re response = QByteArray(); return Succeeded; } else { - warning("QXmppSaslServerDigestMd5 : Invalid step"); + warning(QSL("QXmppSaslServerDigestMd5 : Invalid step")); return Failed; } } @@ -832,7 +833,7 @@ QXmppSaslServerPlain::QXmppSaslServerPlain(QObject *parent) QString QXmppSaslServerPlain::mechanism() const { - return "PLAIN"; + return QSL("PLAIN"); } QXmppSaslServer::Response QXmppSaslServerPlain::respond(const QByteArray &request, QByteArray &response) @@ -845,7 +846,7 @@ QXmppSaslServer::Response QXmppSaslServerPlain::respond(const QByteArray &reques QList<QByteArray> auth = request.split('\0'); if (auth.size() != 3) { - warning("QXmppSaslServerPlain : Invalid input"); + warning(QSL("QXmppSaslServerPlain : Invalid input")); return Failed; } setUsername(QString::fromUtf8(auth[1])); @@ -855,7 +856,7 @@ QXmppSaslServer::Response QXmppSaslServerPlain::respond(const QByteArray &reques response = QByteArray(); return InputNeeded; } else { - warning("QXmppSaslServerPlain : Invalid step"); + warning(QSL("QXmppSaslServerPlain : Invalid step")); return Failed; } } @@ -870,7 +871,7 @@ QMap<QByteArray, QByteArray> QXmppSaslDigestMd5::parseMessage(const QByteArray & QMap<QByteArray, QByteArray> map; int startIndex = 0; int pos = 0; - while ((pos = ba.indexOf("=", startIndex)) >= 0) { + while ((pos = ba.indexOf(QSL("="), startIndex)) >= 0) { // key get name and skip equals const QByteArray key = ba.mid(startIndex, pos - startIndex).trimmed(); pos++; @@ -913,7 +914,7 @@ QByteArray QXmppSaslDigestMd5::serializeMessage(const QMap<QByteArray, QByteArra for (const auto &key : map.keys()) { if (!ba.isEmpty()) ba.append(','); - ba.append(key + "="); + ba.append(key + QBL("=")); QByteArray value = map[key]; const char *separators = "()<>@,;:\\\"/[]?={} \t"; bool quote = false; @@ -924,9 +925,9 @@ QByteArray QXmppSaslDigestMd5::serializeMessage(const QMap<QByteArray, QByteArra } } if (quote) { - value.replace("\\", "\\\\"); - value.replace("\"", "\\\""); - ba.append("\"" + value + "\""); + value.replace(QBL("\\"), QBL("\\\\")); + value.replace(QBL("\""), QBL("\\\"")); + ba.append(QSL("\"") + value + QSL("\"")); } else ba.append(value); } diff --git a/src/base/QXmppSessionIq.cpp b/src/base/QXmppSessionIq.cpp index 1b27cf7e..16436148 100644 --- a/src/base/QXmppSessionIq.cpp +++ b/src/base/QXmppSessionIq.cpp @@ -33,13 +33,13 @@ /// \cond bool QXmppSessionIq::isSessionIq(const QDomElement &element) { - QDomElement sessionElement = element.firstChildElement("session"); + QDomElement sessionElement = element.firstChildElement(QSL("session")); return (sessionElement.namespaceURI() == ns_session); } void QXmppSessionIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("session"); + writer->writeStartElement(QSL("session")); ; writer->writeDefaultNamespace(ns_session); writer->writeEndElement(); diff --git a/src/base/QXmppStanza.cpp b/src/base/QXmppStanza.cpp index 926c7b6f..cb5622b6 100644 --- a/src/base/QXmppStanza.cpp +++ b/src/base/QXmppStanza.cpp @@ -137,21 +137,21 @@ bool QXmppExtendedAddress::isValid() const /// \cond void QXmppExtendedAddress::parse(const QDomElement &element) { - d->delivered = element.attribute("delivered") == "true"; - d->description = element.attribute("desc"); - d->jid = element.attribute("jid"); - d->type = element.attribute("type"); + d->delivered = element.attribute(QSL("delivered")) == QSL("true"); + d->description = element.attribute(QSL("desc")); + d->jid = element.attribute(QSL("jid")); + d->type = element.attribute(QSL("type")); } void QXmppExtendedAddress::toXml(QXmlStreamWriter *xmlWriter) const { - xmlWriter->writeStartElement("address"); + xmlWriter->writeStartElement(QSL("address")); if (d->delivered) - xmlWriter->writeAttribute("delivered", "true"); + xmlWriter->writeAttribute(QSL("delivered"), QSL("true")); if (!d->description.isEmpty()) - xmlWriter->writeAttribute("desc", d->description); - xmlWriter->writeAttribute("jid", d->jid); - xmlWriter->writeAttribute("type", d->type); + xmlWriter->writeAttribute(QSL("desc"), d->description); + xmlWriter->writeAttribute(QSL("jid"), d->jid); + xmlWriter->writeAttribute(QSL("type"), d->type); xmlWriter->writeEndElement(); } /// \endcond @@ -347,15 +347,15 @@ QString QXmppStanza::Error::getTypeStr() const { switch (d->type) { case Cancel: - return "cancel"; + return QSL("cancel"); case Continue: - return "continue"; + return QSL("continue"); case Modify: - return "modify"; + return QSL("modify"); case Auth: - return "auth"; + return QSL("auth"); case Wait: - return "wait"; + return QSL("wait"); default: return {}; } @@ -368,15 +368,15 @@ QString QXmppStanza::Error::getConditionStr() const void QXmppStanza::Error::setTypeFromStr(const QString &type) { - if (type == "cancel") + if (type == QSL("cancel")) setType(Cancel); - else if (type == "continue") + else if (type == QSL("continue")) setType(Continue); - else if (type == "modify") + else if (type == QSL("modify")) setType(Modify); - else if (type == "auth") + else if (type == QSL("auth")) setType(Auth); - else if (type == "wait") + else if (type == QSL("wait")) setType(Wait); else setType(static_cast<QXmppStanza::Error::Type>(-1)); @@ -389,28 +389,28 @@ void QXmppStanza::Error::setConditionFromStr(const QString &type) void QXmppStanza::Error::parse(const QDomElement &errorElement) { - setCode(errorElement.attribute("code").toInt()); - setTypeFromStr(errorElement.attribute("type")); + setCode(errorElement.attribute(QSL("code")).toInt()); + setTypeFromStr(errorElement.attribute(QSL("type"))); QDomElement element = errorElement.firstChildElement(); while (!element.isNull()) { if (element.namespaceURI() == ns_stanza) { - if (element.tagName() == "text") + if (element.tagName() == QSL("text")) setText(element.text()); else setConditionFromStr(element.tagName()); // XEP-0363: HTTP File Upload } else if (element.namespaceURI() == ns_http_upload) { // file is too large - if (element.tagName() == "file-too-large") { + if (element.tagName() == QSL("file-too-large")) { d->fileTooLarge = true; - d->maxFileSize = element.firstChildElement("max-file-size") + d->maxFileSize = element.firstChildElement(QSL("max-file-size")) .text() .toLongLong(); // retry later - } else if (element.tagName() == "retry") { + } else if (element.tagName() == QSL("retry")) { d->retryDate = QXmppUtils::datetimeFromString( - element.attribute("stamp")); + element.attribute(QSL("stamp"))); } } element = element.nextSiblingElement(); @@ -425,11 +425,11 @@ void QXmppStanza::Error::toXml(QXmlStreamWriter *writer) const if (cond.isEmpty() && type.isEmpty()) return; - writer->writeStartElement("error"); - helperToXmlAddAttribute(writer, "type", type); + writer->writeStartElement(QSL("error")); + helperToXmlAddAttribute(writer, QSL("type"), type); if (d->code > 0) - helperToXmlAddAttribute(writer, "code", QString::number(d->code)); + helperToXmlAddAttribute(writer, QSL("code"), QString::number(d->code)); if (!cond.isEmpty()) { writer->writeStartElement(cond); @@ -437,8 +437,8 @@ void QXmppStanza::Error::toXml(QXmlStreamWriter *writer) const writer->writeEndElement(); } if (!d->text.isEmpty()) { - writer->writeStartElement("text"); - writer->writeAttribute("xml:lang", "en"); + writer->writeStartElement(QSL("text")); + writer->writeAttribute(QSL("xml:lang"), QSL("en")); writer->writeDefaultNamespace(ns_stanza); writer->writeCharacters(d->text); writer->writeEndElement(); @@ -446,15 +446,15 @@ void QXmppStanza::Error::toXml(QXmlStreamWriter *writer) const // XEP-0363: HTTP File Upload if (d->fileTooLarge) { - writer->writeStartElement("file-too-large"); + writer->writeStartElement(QSL("file-too-large")); writer->writeDefaultNamespace(ns_http_upload); - helperToXmlAddTextElement(writer, "max-file-size", + helperToXmlAddTextElement(writer, QSL("max-file-size"), QString::number(d->maxFileSize)); writer->writeEndElement(); } else if (!d->retryDate.isNull() && d->retryDate.isValid()) { - writer->writeStartElement("retry"); + writer->writeStartElement(QSL("retry")); writer->writeDefaultNamespace(ns_http_upload); - writer->writeAttribute("stamp", + writer->writeAttribute(QSL("stamp"), QXmppUtils::datetimeToString(d->retryDate)); writer->writeEndElement(); } diff --git a/src/base/QXmppStartTlsPacket.cpp b/src/base/QXmppStartTlsPacket.cpp index ea5feef9..77c8738e 100644 --- a/src/base/QXmppStartTlsPacket.cpp +++ b/src/base/QXmppStartTlsPacket.cpp @@ -29,9 +29,9 @@ #include <QXmlStreamWriter> const static QStringList STARTTLS_TYPES = { - QStringLiteral("starttls"), - QStringLiteral("proceed"), - QStringLiteral("failure") + QSL("starttls"), + QSL("proceed"), + QSL("failure") }; /// Constructs a new QXmppStartTlsPacket diff --git a/src/base/QXmppStream.cpp b/src/base/QXmppStream.cpp index 03ffeadf..eafbc8b4 100644 --- a/src/base/QXmppStream.cpp +++ b/src/base/QXmppStream.cpp @@ -41,7 +41,7 @@ #include <QXmlStreamWriter> static bool randomSeeded = false; -static const QByteArray streamRootElementEnd = "</stream:stream>"; +static const QByteArray streamRootElementEnd = QBL("</stream:stream>"); class QXmppStreamPrivate { @@ -190,7 +190,7 @@ void QXmppStream::setSocket(QSslSocket *socket) void QXmppStream::_q_socketConnected() { - info(QString("Socket connected to %1 %2").arg(d->socket->peerAddress().toString(), QString::number(d->socket->peerPort()))); + info(QSL("Socket connected to %1 %2").arg(d->socket->peerAddress().toString(), QString::number(d->socket->peerPort()))); handleStart(); } @@ -203,7 +203,7 @@ void QXmppStream::_q_socketEncrypted() void QXmppStream::_q_socketError(QAbstractSocket::SocketError socketError) { Q_UNUSED(socketError); - warning(QString("Socket error: " + socket()->errorString())); + warning(QSL("Socket error: ") + socket()->errorString()); } void QXmppStream::_q_socketReadyRead() diff --git a/src/base/QXmppStreamFeatures.cpp b/src/base/QXmppStreamFeatures.cpp index 8dd68e40..de852330 100644 --- a/src/base/QXmppStreamFeatures.cpp +++ b/src/base/QXmppStreamFeatures.cpp @@ -188,7 +188,7 @@ void QXmppStreamFeatures::setRegisterMode(const QXmppStreamFeatures::Mode ®is bool QXmppStreamFeatures::isStreamFeatures(const QDomElement &element) { return element.namespaceURI() == ns_stream && - element.tagName() == "features"; + element.tagName() == QSL("features"); } static QXmppStreamFeatures::Mode readFeature(const QDomElement &element, const char *tagName, const char *tagNs) @@ -197,7 +197,7 @@ static QXmppStreamFeatures::Mode readFeature(const QDomElement &element, const c QXmppStreamFeatures::Mode mode = QXmppStreamFeatures::Disabled; while (!subElement.isNull()) { if (subElement.namespaceURI() == tagNs) { - if (!subElement.firstChildElement("required").isNull()) + if (!subElement.firstChildElement(QSL("required")).isNull()) mode = QXmppStreamFeatures::Required; else if (mode != QXmppStreamFeatures::Required) mode = QXmppStreamFeatures::Enabled; @@ -218,22 +218,22 @@ void QXmppStreamFeatures::parse(const QDomElement &element) d->registerMode = readFeature(element, "register", ns_register_feature); // parse advertised compression methods - QDomElement compression = element.firstChildElement("compression"); + QDomElement compression = element.firstChildElement(QSL("compression")); if (compression.namespaceURI() == ns_compressFeature) { - QDomElement subElement = compression.firstChildElement("method"); + QDomElement subElement = compression.firstChildElement(QSL("method")); while (!subElement.isNull()) { d->compressionMethods << subElement.text(); - subElement = subElement.nextSiblingElement("method"); + subElement = subElement.nextSiblingElement(QSL("method")); } } // parse advertised SASL Authentication mechanisms - QDomElement mechs = element.firstChildElement("mechanisms"); + QDomElement mechs = element.firstChildElement(QSL("mechanisms")); if (mechs.namespaceURI() == ns_sasl) { - QDomElement subElement = mechs.firstChildElement("mechanism"); + QDomElement subElement = mechs.firstChildElement(QSL("mechanism")); while (!subElement.isNull()) { d->authMechanisms << subElement.text(); - subElement = subElement.nextSiblingElement("mechanism"); + subElement = subElement.nextSiblingElement(QSL("mechanism")); } } } @@ -244,14 +244,14 @@ static void writeFeature(QXmlStreamWriter *writer, const char *tagName, const ch writer->writeStartElement(tagName); writer->writeDefaultNamespace(tagNs); if (mode == QXmppStreamFeatures::Required) - writer->writeEmptyElement("required"); + writer->writeEmptyElement(QSL("required")); writer->writeEndElement(); } } void QXmppStreamFeatures::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("stream:features"); + writer->writeStartElement(QSL("stream:features")); writeFeature(writer, "bind", ns_bind, d->bindMode); writeFeature(writer, "session", ns_session, d->sessionMode); writeFeature(writer, "auth", ns_authFeature, d->nonSaslAuthMode); @@ -261,17 +261,17 @@ void QXmppStreamFeatures::toXml(QXmlStreamWriter *writer) const writeFeature(writer, "register", ns_register_feature, d->registerMode); if (!d->compressionMethods.isEmpty()) { - writer->writeStartElement("compression"); + writer->writeStartElement(QSL("compression")); writer->writeDefaultNamespace(ns_compressFeature); for (const auto &method : d->compressionMethods) - writer->writeTextElement("method", method); + writer->writeTextElement(QSL("method"), method); writer->writeEndElement(); } if (!d->authMechanisms.isEmpty()) { - writer->writeStartElement("mechanisms"); + writer->writeStartElement(QSL("mechanisms")); writer->writeDefaultNamespace(ns_sasl); for (const auto &mechanism : d->authMechanisms) - writer->writeTextElement("mechanism", mechanism); + writer->writeTextElement(QSL("mechanism"), mechanism); writer->writeEndElement(); } writer->writeEndElement(); diff --git a/src/base/QXmppStreamInitiationIq.cpp b/src/base/QXmppStreamInitiationIq.cpp index 9d15c027..a63a08fe 100644 --- a/src/base/QXmppStreamInitiationIq.cpp +++ b/src/base/QXmppStreamInitiationIq.cpp @@ -80,25 +80,25 @@ void QXmppStreamInitiationIq::setSiId(const QString &id) /// \cond bool QXmppStreamInitiationIq::isStreamInitiationIq(const QDomElement &element) { - QDomElement siElement = element.firstChildElement("si"); + QDomElement siElement = element.firstChildElement(QSL("si")); return (siElement.namespaceURI() == ns_stream_initiation); } void QXmppStreamInitiationIq::parseElementFromChild(const QDomElement &element) { - QDomElement siElement = element.firstChildElement("si"); - m_siId = siElement.attribute("id"); - m_mimeType = siElement.attribute("mime-type"); - if (siElement.attribute("profile") == ns_stream_initiation_file_transfer) + QDomElement siElement = element.firstChildElement(QSL("si")); + m_siId = siElement.attribute(QSL("id")); + m_mimeType = siElement.attribute(QSL("mime-type")); + if (siElement.attribute(QSL("profile")) == ns_stream_initiation_file_transfer) m_profile = FileTransfer; else m_profile = None; QDomElement itemElement = siElement.firstChildElement(); while (!itemElement.isNull()) { - if (itemElement.tagName() == "feature" && itemElement.namespaceURI() == ns_feature_negotiation) { + if (itemElement.tagName() == QSL("feature") && itemElement.namespaceURI() == ns_feature_negotiation) { m_featureForm.parse(itemElement.firstChildElement()); - } else if (itemElement.tagName() == "file" && itemElement.namespaceURI() == ns_stream_initiation_file_transfer) { + } else if (itemElement.tagName() == QSL("file") && itemElement.namespaceURI() == ns_stream_initiation_file_transfer) { m_fileInfo.parse(itemElement); } itemElement = itemElement.nextSiblingElement(); @@ -107,16 +107,16 @@ void QXmppStreamInitiationIq::parseElementFromChild(const QDomElement &element) void QXmppStreamInitiationIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("si"); + writer->writeStartElement(QSL("si")); writer->writeDefaultNamespace(ns_stream_initiation); - helperToXmlAddAttribute(writer, "id", m_siId); - helperToXmlAddAttribute(writer, "mime-type", m_mimeType); + helperToXmlAddAttribute(writer, QSL("id"), m_siId); + helperToXmlAddAttribute(writer, QSL("mime-type"), m_mimeType); if (m_profile == FileTransfer) - helperToXmlAddAttribute(writer, "profile", ns_stream_initiation_file_transfer); + helperToXmlAddAttribute(writer, QSL("profile"), ns_stream_initiation_file_transfer); if (!m_fileInfo.isNull()) m_fileInfo.toXml(writer); if (!m_featureForm.isNull()) { - writer->writeStartElement("feature"); + writer->writeStartElement(QSL("feature")); writer->writeDefaultNamespace(ns_feature_negotiation); m_featureForm.toXml(writer); writer->writeEndElement(); diff --git a/src/base/QXmppStreamManagement.cpp b/src/base/QXmppStreamManagement.cpp index 8f27f3c0..6629a556 100644 --- a/src/base/QXmppStreamManagement.cpp +++ b/src/base/QXmppStreamManagement.cpp @@ -25,6 +25,8 @@ #include "QXmppStanza_p.h" #include "QXmppStreamManagement_p.h" +#include "QXmppGlobal.h" + QXmppStreamManagementEnable::QXmppStreamManagementEnable(const bool resume, const unsigned max) : m_resume(resume), m_max(max) { @@ -58,19 +60,19 @@ bool QXmppStreamManagementEnable::isStreamManagementEnable(const QDomElement &el void QXmppStreamManagementEnable::parse(const QDomElement &element) { - QString resume = element.attribute("resume"); - m_resume = resume == QString("true") || resume == QString("1"); - m_max = element.attribute("max").toUInt(); + QString resume = element.attribute(QSL("resume")); + m_resume = resume == QSL("true") || resume == QSL("1"); + m_max = element.attribute(QSL("max")).toUInt(); } void QXmppStreamManagementEnable::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("enable"); + writer->writeStartElement(QSL("enable")); writer->writeDefaultNamespace(ns_stream_management); if (m_resume) - writer->writeAttribute("resume", "true"); + writer->writeAttribute(QSL("resume"), QSL("true")); if (m_max > 0) - writer->writeAttribute("max", QString::number(m_max)); + writer->writeAttribute(QSL("max"), QString::number(m_max)); writer->writeEndElement(); } @@ -127,22 +129,22 @@ bool QXmppStreamManagementEnabled::isStreamManagementEnabled(const QDomElement & void QXmppStreamManagementEnabled::parse(const QDomElement &element) { - QString resume = element.attribute("resume"); - m_resume = resume == QString("true") || resume == QString("1"); - m_max = element.attribute("max").toUInt(); - m_location = element.attribute("location"); + QString resume = element.attribute(QSL("resume")); + m_resume = resume == QSL("true") || resume == QSL("1"); + m_max = element.attribute(QSL("max")).toUInt(); + m_location = element.attribute(QSL("location")); } void QXmppStreamManagementEnabled::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("enable"); + writer->writeStartElement(QSL("enable")); writer->writeDefaultNamespace(ns_stream_management); if (m_resume) - writer->writeAttribute("resume", "true"); + writer->writeAttribute(QSL("resume"), QSL("true")); if (m_max > 0) - writer->writeAttribute("max", QString::number(m_max)); + writer->writeAttribute(QSL("max"), QString::number(m_max)); if (!m_location.isEmpty()) - writer->writeAttribute("location", m_location); + writer->writeAttribute(QSL("location"), m_location); writer->writeEndElement(); } @@ -179,15 +181,15 @@ bool QXmppStreamManagementResume::isStreamManagementResume(const QDomElement &el void QXmppStreamManagementResume::parse(const QDomElement &element) { - m_h = element.attribute("h").toUInt(); - m_previd = element.attribute("previd"); + m_h = element.attribute(QSL("h")).toUInt(); + m_previd = element.attribute(QSL("previd")); } void QXmppStreamManagementResume::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("resume"); - writer->writeAttribute("h", QString::number(m_h)); - writer->writeAttribute("previd", m_previd); + writer->writeStartElement(QSL("resume")); + writer->writeAttribute(QSL("h"), QString::number(m_h)); + writer->writeAttribute(QSL("previd"), m_previd); writer->writeEndElement(); } @@ -224,15 +226,15 @@ bool QXmppStreamManagementResumed::isStreamManagementResumed(const QDomElement & void QXmppStreamManagementResumed::parse(const QDomElement &element) { - m_h = element.attribute("h").toUInt(); - m_previd = element.attribute("previd"); + m_h = element.attribute(QSL("h")).toUInt(); + m_previd = element.attribute(QSL("previd")); } void QXmppStreamManagementResumed::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("resumed"); - writer->writeAttribute("h", QString::number(m_h)); - writer->writeAttribute("previd", m_previd); + writer->writeStartElement(QSL("resumed")); + writer->writeAttribute(QSL("h"), QString::number(m_h)); + writer->writeAttribute(QSL("previd"), m_previd); writer->writeEndElement(); } @@ -269,7 +271,7 @@ void QXmppStreamManagementFailed::toXml(QXmlStreamWriter *writer) const { QString errorString = strFromCondition(m_error); - writer->writeStartElement("failed"); + writer->writeStartElement(QSL("failed")); writer->writeDefaultNamespace(ns_stream_management); writer->writeStartElement(errorString, ns_stanza); writer->writeEndElement(); @@ -293,14 +295,14 @@ void QXmppStreamManagementAck::setSeqNo(const unsigned seqNo) void QXmppStreamManagementAck::parse(const QDomElement &element) { - m_seqNo = element.attribute("h").toUInt(); + m_seqNo = element.attribute(QSL("h")).toUInt(); } void QXmppStreamManagementAck::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("a"); + writer->writeStartElement(QSL("a")); writer->writeDefaultNamespace(ns_stream_management); - writer->writeAttribute("h", QString::number(m_seqNo)); + writer->writeAttribute(QSL("h"), QString::number(m_seqNo)); writer->writeEndElement(); } diff --git a/src/base/QXmppStun.cpp b/src/base/QXmppStun.cpp index 0f8dfac8..c15d6891 100644 --- a/src/base/QXmppStun.cpp +++ b/src/base/QXmppStun.cpp @@ -773,7 +773,7 @@ bool QXmppStunMessage::decode(const QByteArray &buffer, const QByteArray &key, Q // Unknown attribute stream.skipRawData(a_length); - *errors << QString("Skipping unknown attribute %1").arg(QString::number(a_type)); + *errors << QSL("Skipping unknown attribute %1").arg(QString::number(a_type)); } stream.skipRawData(pad_length); done += 4 + a_length + pad_length; @@ -988,108 +988,108 @@ QString QXmppStunMessage::toString() const QString typeName; switch (messageMethod()) { case Binding: - typeName = "Binding"; + typeName = QSL("Binding"); break; case SharedSecret: - typeName = "Shared Secret"; + typeName = QSL("Shared Secret"); break; case Allocate: - typeName = "Allocate"; + typeName = QSL("Allocate"); break; case Refresh: - typeName = "Refresh"; + typeName = QSL("Refresh"); break; case Send: - typeName = "Send"; + typeName = QSL("Send"); break; case Data: - typeName = "Data"; + typeName = QSL("Data"); break; case CreatePermission: - typeName = "CreatePermission"; + typeName = QSL("CreatePermission"); break; case ChannelBind: - typeName = "ChannelBind"; + typeName = QSL("ChannelBind"); break; default: - typeName = "Unknown"; + typeName = QSL("Unknown"); break; } switch (messageClass()) { case Request: - typeName += " Request"; + typeName += QSL(" Request"); break; case Indication: - typeName += " Indication"; + typeName += QSL(" Indication"); break; case Response: - typeName += " Response"; + typeName += QSL(" Response"); break; case Error: - typeName += " Error"; + typeName += QSL(" Error"); break; default: break; } - dumpLines << QString(" type %1 (%2)") + dumpLines << QSL(" type %1 (%2)") .arg(typeName) .arg(QString::number(m_type)); - dumpLines << QString(" id %1").arg(QString::fromLatin1(m_id.toHex())); + dumpLines << QSL(" id %1").arg(QString::fromLatin1(m_id.toHex())); // attributes if (m_attributes.contains(ChannelNumber)) - dumpLines << QString(" * CHANNEL-NUMBER %1").arg(QString::number(m_channelNumber)); + dumpLines << QSL(" * CHANNEL-NUMBER %1").arg(QString::number(m_channelNumber)); if (errorCode) - dumpLines << QString(" * ERROR-CODE %1 %2") + dumpLines << QSL(" * ERROR-CODE %1 %2") .arg(QString::number(errorCode), errorPhrase); if (m_attributes.contains(Lifetime)) - dumpLines << QString(" * LIFETIME %1").arg(QString::number(m_lifetime)); + dumpLines << QSL(" * LIFETIME %1").arg(QString::number(m_lifetime)); if (m_attributes.contains(Nonce)) - dumpLines << QString(" * NONCE %1").arg(QString::fromLatin1(m_nonce)); + dumpLines << QSL(" * NONCE %1").arg(QString::fromLatin1(m_nonce)); if (m_attributes.contains(Realm)) - dumpLines << QString(" * REALM %1").arg(m_realm); + dumpLines << QSL(" * REALM %1").arg(m_realm); if (m_attributes.contains(RequestedTransport)) - dumpLines << QString(" * REQUESTED-TRANSPORT 0x%1").arg(QString::number(m_requestedTransport, 16)); + dumpLines << QSL(" * REQUESTED-TRANSPORT 0x%1").arg(QString::number(m_requestedTransport, 16)); if (m_attributes.contains(ReservationToken)) - dumpLines << QString(" * RESERVATION-TOKEN %1").arg(QString::fromLatin1(m_reservationToken.toHex())); + dumpLines << QSL(" * RESERVATION-TOKEN %1").arg(QString::fromLatin1(m_reservationToken.toHex())); if (m_attributes.contains(Software)) - dumpLines << QString(" * SOFTWARE %1").arg(m_software); + dumpLines << QSL(" * SOFTWARE %1").arg(m_software); if (m_attributes.contains(Username)) - dumpLines << QString(" * USERNAME %1").arg(m_username); + dumpLines << QSL(" * USERNAME %1").arg(m_username); if (mappedPort) - dumpLines << QString(" * MAPPED-ADDRESS %1 %2") + dumpLines << QSL(" * MAPPED-ADDRESS %1 %2") .arg(mappedHost.toString(), QString::number(mappedPort)); if (m_attributes.contains(ChangeRequest)) - dumpLines << QString(" * CHANGE-REQUEST %1") + dumpLines << QSL(" * CHANGE-REQUEST %1") .arg(QString::number(m_changeRequest)); if (sourcePort) - dumpLines << QString(" * SOURCE-ADDRESS %1 %2") + dumpLines << QSL(" * SOURCE-ADDRESS %1 %2") .arg(sourceHost.toString(), QString::number(sourcePort)); if (changedPort) - dumpLines << QString(" * CHANGED-ADDRESS %1 %2") + dumpLines << QSL(" * CHANGED-ADDRESS %1 %2") .arg(changedHost.toString(), QString::number(changedPort)); if (otherPort) - dumpLines << QString(" * OTHER-ADDRESS %1 %2") + dumpLines << QSL(" * OTHER-ADDRESS %1 %2") .arg(otherHost.toString(), QString::number(otherPort)); if (xorMappedPort) - dumpLines << QString(" * XOR-MAPPED-ADDRESS %1 %2") + dumpLines << QSL(" * XOR-MAPPED-ADDRESS %1 %2") .arg(xorMappedHost.toString(), QString::number(xorMappedPort)); if (xorPeerPort) - dumpLines << QString(" * XOR-PEER-ADDRESS %1 %2") + dumpLines << QSL(" * XOR-PEER-ADDRESS %1 %2") .arg(xorPeerHost.toString(), QString::number(xorPeerPort)); if (xorRelayedPort) - dumpLines << QString(" * XOR-RELAYED-ADDRESS %1 %2") + dumpLines << QSL(" * XOR-RELAYED-ADDRESS %1 %2") .arg(xorRelayedHost.toString(), QString::number(xorRelayedPort)); if (m_attributes.contains(Priority)) - dumpLines << QString(" * PRIORITY %1").arg(QString::number(m_priority)); + dumpLines << QSL(" * PRIORITY %1").arg(QString::number(m_priority)); if (!iceControlling.isEmpty()) - dumpLines << QString(" * ICE-CONTROLLING %1") + dumpLines << QSL(" * ICE-CONTROLLING %1") .arg(QString::fromLatin1(iceControlling.toHex())); if (!iceControlled.isEmpty()) - dumpLines << QString(" * ICE-CONTROLLED %1") + dumpLines << QSL(" * ICE-CONTROLLED %1") .arg(QString::fromLatin1(iceControlled.toHex())); if (useCandidate) - dumpLines << QString(" * USE-CANDIDATE"); + dumpLines << QSL(" * USE-CANDIDATE"); return dumpLines.join("\n"); } @@ -1212,7 +1212,7 @@ void QXmppTurnAllocation::connectToHost() // start listening for UDP if (socket->state() == QAbstractSocket::UnconnectedState) { if (!socket->bind()) { - warning("Could not start listening for TURN"); + warning(QSL("Could not start listening for TURN")); return; } } @@ -1314,7 +1314,7 @@ void QXmppTurnAllocation::handleDatagram(const QByteArray &buffer, const QHostAd } #ifdef QXMPP_DEBUG_STUN - logReceived(QString("TURN packet from %1 port %2\n%3").arg(remoteHost.toString(), QString::number(remotePort), message.toString())); + logReceived(QSL("TURN packet from %1 port %2\n%3").arg(remoteHost.toString(), QString::number(remotePort), message.toString())); #endif // find transaction @@ -1457,7 +1457,7 @@ void QXmppTurnAllocation::transactionFinished() if (method == QXmppStunMessage::Allocate) { if (reply.messageClass() == QXmppStunMessage::Error) { - warning(QString("Allocation failed: %1 %2").arg(QString::number(reply.errorCode), reply.errorPhrase)); + warning(QSL("Allocation failed: %1 %2").arg(QString::number(reply.errorCode), reply.errorPhrase)); setState(UnconnectedState); return; } @@ -1482,7 +1482,7 @@ void QXmppTurnAllocation::transactionFinished() } else if (method == QXmppStunMessage::ChannelBind) { if (reply.messageClass() == QXmppStunMessage::Error) { - warning(QString("ChannelBind failed: %1 %2").arg(QString::number(reply.errorCode), reply.errorPhrase)); + warning(QSL("ChannelBind failed: %1 %2").arg(QString::number(reply.errorCode), reply.errorPhrase)); // remove channel m_channels.remove(transaction->request().channelNumber()); @@ -1494,7 +1494,7 @@ void QXmppTurnAllocation::transactionFinished() } else if (method == QXmppStunMessage::Refresh) { if (reply.messageClass() == QXmppStunMessage::Error) { - warning(QString("Refresh failed: %1 %2").arg(QString::number(reply.errorCode), reply.errorPhrase)); + warning(QSL("Refresh failed: %1 %2").arg(QString::number(reply.errorCode), reply.errorPhrase)); setState(UnconnectedState); return; } @@ -1556,7 +1556,7 @@ void QXmppTurnAllocation::writeStun(const QXmppStunMessage &message) { socket->writeDatagram(message.encode(m_key), m_turnHost, m_turnPort); #ifdef QXMPP_DEBUG_STUN - logSent(QString("TURN packet to %1 port %2\n%3").arg(m_turnHost.toString(), QString::number(m_turnPort), message.toString())); + logSent(QSL("TURN packet to %1 port %2\n%3").arg(m_turnHost.toString(), QString::number(m_turnPort), message.toString())); #endif } @@ -1589,7 +1589,7 @@ QXmppJingleCandidate QXmppUdpTransport::localCandidate(int component) const candidate.setHost(addr); candidate.setId(QXmppUtils::generateStanzaHash(10)); candidate.setPort(m_socket->localPort()); - candidate.setProtocol("udp"); + candidate.setProtocol(QSL("udp")); candidate.setType(QXmppJingleCandidate::HostType); candidate.setPriority(candidatePriority(candidate)); candidate.setFoundation(computeFoundation( @@ -1677,19 +1677,19 @@ CandidatePair::State CandidatePair::state() const void CandidatePair::setState(CandidatePair::State state) { m_state = state; - info(QString("ICE pair changed to state %1 %2").arg(QLatin1String(pair_states[state]), toString())); + info(QSL("ICE pair changed to state %1 %2").arg(QLatin1String(pair_states[state]), toString())); } QString CandidatePair::toString() const { const QXmppJingleCandidate candidate = transport->localCandidate(m_component); - QString str = QString("%1 port %2").arg(remote.host().toString(), QString::number(remote.port())); + QString str = QSL("%1 port %2").arg(remote.host().toString(), QString::number(remote.port())); if (candidate.type() == QXmppJingleCandidate::HostType) - str += QString(" (local %1 port %2)").arg(candidate.host().toString(), QString::number(candidate.port())); + str += QSL(" (local %1 port %2)").arg(candidate.host().toString(), QString::number(candidate.port())); else - str += QString(" (relayed)"); + str += QSL(" (relayed)"); if (!reflexive.host().isNull() && reflexive.port()) - str += QString(" (reflexive %1 port %2)").arg(reflexive.host().toString(), QString::number(reflexive.port())); + str += QSL(" (reflexive %1 port %2)").arg(reflexive.host().toString(), QString::number(reflexive.port())); return str; } @@ -1773,7 +1773,7 @@ bool QXmppIceComponentPrivate::addRemoteCandidate(const QXmppJingleCandidate &ca (candidate.type() != QXmppJingleCandidate::HostType && candidate.type() != QXmppJingleCandidate::RelayedType && candidate.type() != QXmppJingleCandidate::ServerReflexiveType) || - candidate.protocol() != "udp" || + candidate.protocol() != QSL("udp") || (candidate.host().protocol() != QAbstractSocket::IPv4Protocol && candidate.host().protocol() != QAbstractSocket::IPv6Protocol)) return false; @@ -1818,7 +1818,7 @@ void QXmppIceComponentPrivate::performCheck(CandidatePair *pair, bool nominate) message.setId(QXmppUtils::generateRandomBytes(STUN_ID_SIZE)); message.setType(QXmppStunMessage::Binding | QXmppStunMessage::Request); message.setPriority(peerReflexivePriority); - message.setUsername(QString("%1:%2").arg(config->remoteUser, config->localUser)); + message.setUsername(QSL("%1:%2").arg(config->remoteUser, config->localUser)); if (config->iceControlling) { message.iceControlling = config->tieBreaker; message.useCandidate = true; @@ -1903,7 +1903,7 @@ void QXmppIceComponentPrivate::writeStun(const QXmppStunMessage &message, QXmppI const QByteArray data = message.encode(messagePassword.toUtf8()); transport->writeDatagram(data, address, port); #ifdef QXMPP_DEBUG_STUN - q->logSent(QString("STUN packet to %1 port %2\n%3").arg(address.toString(), QString::number(port), message.toString())); + q->logSent(QSL("STUN packet to %1 port %2\n%3").arg(address.toString(), QString::number(port), message.toString())); #endif } @@ -1937,7 +1937,7 @@ QXmppIceComponent::QXmppIceComponent(int component, QXmppIcePrivate *config, QOb reflexive.setType(QXmppJingleCandidate::PeerReflexiveType); d->peerReflexivePriority = candidatePriority(reflexive); - setObjectName(QString("STUN(%1)").arg(QString::number(d->component))); + setObjectName(QSL("STUN(%1)").arg(QString::number(d->component))); } /// Destroys the QXmppIceComponent. @@ -1960,7 +1960,7 @@ void QXmppIceComponent::checkCandidates() { if (d->config->remoteUser.isEmpty()) return; - debug("Checking remote candidates"); + debug(QSL("Checking remote candidates")); for (auto *pair : d->pairs) { if (pair->state() == CandidatePair::WaitingState) { @@ -2056,7 +2056,7 @@ void QXmppIceComponent::handleDatagram(const QByteArray &buffer, const QHostAddr return; } #ifdef QXMPP_DEBUG_STUN - logReceived(QString("STUN packet from %1 port %2\n%3").arg(remoteHost.toString(), QString::number(remotePort), message.toString())); + logReceived(QSL("STUN packet from %1 port %2\n%3").arg(remoteHost.toString(), QString::number(remotePort), message.toString())); #endif // we only want binding requests and responses @@ -2074,10 +2074,10 @@ void QXmppIceComponent::handleDatagram(const QByteArray &buffer, const QHostAddr if (message.messageClass() == QXmppStunMessage::Request) { // check for role conflict if (d->config->iceControlling && (!message.iceControlling.isEmpty() || message.useCandidate)) { - warning("Role conflict, expected to be controlling"); + warning(QSL("Role conflict, expected to be controlling")); return; } else if (!d->config->iceControlling && !message.iceControlled.isEmpty()) { - warning("Role conflict, expected to be controlled"); + warning(QSL("Role conflict, expected to be controlled")); return; } @@ -2106,7 +2106,7 @@ void QXmppIceComponent::handleDatagram(const QByteArray &buffer, const QHostAddr remoteCandidate.setId(QXmppUtils::generateStanzaHash(10)); remoteCandidate.setPort(remotePort); remoteCandidate.setPriority(message.priority()); - remoteCandidate.setProtocol("udp"); + remoteCandidate.setProtocol(QSL("udp")); remoteCandidate.setType(QXmppJingleCandidate::PeerReflexiveType); remoteCandidate.setFoundation(QXmppUtils::generateStanzaHash(32)); @@ -2163,7 +2163,7 @@ void QXmppIceComponent::handleDatagram(const QByteArray &buffer, const QHostAddr if (remoteHost != pair->remote.host() || remotePort != pair->remote.port()) { QXmppStunMessage error; error.setType(QXmppStunMessage::Error); - error.errorPhrase = QString("Received response from unexpected %1:%1").arg(remoteHost.toString(), QString::number(remotePort)); + error.errorPhrase = QSL("Received response from unexpected %1:%1").arg(remoteHost.toString(), QString::number(remotePort)); pair->transaction->readStun(error); return; } @@ -2175,7 +2175,7 @@ void QXmppIceComponent::handleDatagram(const QByteArray &buffer, const QHostAddr if (pair && pair->nominated) { d->timer->stop(); if (!d->activePair || pair->priority() > d->activePair->priority()) { - info(QString("ICE pair selected %1 (priority: %2)").arg(pair->toString(), QString::number(pair->priority()))); + info(QSL("ICE pair selected %1 (priority: %2)").arg(pair->toString(), QString::number(pair->priority()))); const bool wasConnected = (d->activePair != nullptr); d->activePair = pair; if (!wasConnected) @@ -2206,7 +2206,7 @@ void QXmppIceComponent::transactionFinished() pair->nominated = true; } } else { - debug(QString("ICE forward check failed %1 (error %2)").arg(pair->toString(), transaction->response().errorPhrase)); + debug(QSL("ICE forward check failed %1 (error %2)").arg(pair->toString(), transaction->response().errorPhrase)); pair->setState(CandidatePair::FailedState); } pair->transaction = nullptr; @@ -2228,7 +2228,7 @@ void QXmppIceComponent::transactionFinished() reflexiveHost = response.mappedHost; reflexivePort = response.mappedPort; } else { - warning("STUN server did not provide a reflexive address"); + warning(QSL("STUN server did not provide a reflexive address")); return; } @@ -2241,7 +2241,7 @@ void QXmppIceComponent::transactionFinished() } // add the new local candidate - debug(QString("Adding server-reflexive candidate %1 port %2").arg(reflexiveHost.toString(), QString::number(reflexivePort))); + debug(QSL("Adding server-reflexive candidate %1 port %2").arg(reflexiveHost.toString(), QString::number(reflexivePort))); QXmppJingleCandidate candidate; candidate.setComponent(d->component); candidate.setHost(reflexiveHost); @@ -2259,7 +2259,7 @@ void QXmppIceComponent::transactionFinished() emit localCandidatesChanged(); } else { - debug(QString("STUN test failed (error %1)").arg(transaction->response().errorPhrase)); + debug(QSL("STUN test failed (error %1)").arg(transaction->response().errorPhrase)); } d->stunTransactions.remove(transaction); updateGatheringState(); @@ -2272,7 +2272,7 @@ void QXmppIceComponent::turnConnected() const QXmppJingleCandidate candidate = d->turnAllocation->localCandidate(d->component); // add the new local candidate - debug(QString("Adding relayed candidate %1 port %2").arg(candidate.host().toString(), QString::number(candidate.port()))); + debug(QSL("Adding relayed candidate %1 port %2").arg(candidate.host().toString(), QString::number(candidate.port()))); d->localCandidates << candidate; emit localCandidatesChanged(); @@ -2422,7 +2422,7 @@ void QXmppIceComponent::writeStun(const QXmppStunMessage &message) if (transport) { transport->writeDatagram(message.encode(), transportDetails.stunHost, transportDetails.stunPort); #ifdef QXMPP_DEBUG_STUN - logSent(QString("STUN packet to %1 port %2\n%3").arg(transportDetails.stunHost.toString(), QString::number(transportDetails.stunPort), message.toString())); + logSent(QSL("STUN packet to %1 port %2\n%3").arg(transportDetails.stunHost.toString(), QString::number(transportDetails.stunPort), message.toString())); #endif return; } @@ -2488,7 +2488,7 @@ void QXmppIceConnection::addComponent(int component) { if (d->components.contains(component)) { - warning(QString("Already have component %1").arg(QString::number(component))); + warning(QSL("Already have component %1").arg(QString::number(component))); return; } @@ -2517,7 +2517,7 @@ void QXmppIceConnection::addRemoteCandidate(const QXmppJingleCandidate &candidat { QXmppIceComponent *socket = d->components.value(candidate.component()); if (!socket) { - warning(QString("Not adding candidate for unknown component %1").arg(QString::number(candidate.component()))); + warning(QSL("Not adding candidate for unknown component %1").arg(QString::number(candidate.component()))); return; } socket->d->addRemoteCandidate(candidate); @@ -2709,7 +2709,7 @@ void QXmppIceConnection::slotConnected() for (auto *socket : d->components.values()) if (!socket->isConnected()) return; - info(QString("ICE negotiation completed")); + info(QSL("ICE negotiation completed")); d->connectTimer->stop(); emit connected(); } @@ -2733,7 +2733,7 @@ void QXmppIceConnection::slotGatheringStateChanged() newGatheringState = BusyGatheringState; if (newGatheringState != d->gatheringState) { - info(QString("ICE gathering state changed from '%1' to '%2'").arg(gathering_states[d->gatheringState], gathering_states[newGatheringState])); + info(QSL("ICE gathering state changed from '%1' to '%2'").arg(gathering_states[d->gatheringState], gathering_states[newGatheringState])); d->gatheringState = newGatheringState; emit gatheringStateChanged(); } @@ -2741,7 +2741,7 @@ void QXmppIceConnection::slotGatheringStateChanged() void QXmppIceConnection::slotTimeout() { - warning(QString("ICE negotiation timed out")); + warning(QSL("ICE negotiation timed out")); for (auto *socket : d->components.values()) socket->close(); emit disconnected(); diff --git a/src/base/QXmppUtils.cpp b/src/base/QXmppUtils.cpp index c0ba62b2..faca37fe 100644 --- a/src/base/QXmppUtils.cpp +++ b/src/base/QXmppUtils.cpp @@ -113,25 +113,25 @@ static quint32 crctable[256] = { /// QDateTime QXmppUtils::datetimeFromString(const QString &str) { - QRegExp tzRe("(Z|([+-])([0-9]{2}):([0-9]{2}))"); + QRegExp tzRe(QSL("(Z|([+-])([0-9]{2}):([0-9]{2}))")); int tzPos = tzRe.indexIn(str, 19); if (str.size() < 20 || tzPos < 0) return QDateTime(); // process date and time - QDateTime dt = QDateTime::fromString(str.left(19), "yyyy-MM-ddThh:mm:ss"); + QDateTime dt = QDateTime::fromString(str.left(19), QSL("yyyy-MM-ddThh:mm:ss")); dt.setTimeSpec(Qt::UTC); // process milliseconds if (tzPos > 20 && str.at(19) == '.') { - QString millis = (str.mid(20, tzPos - 20) + "000").left(3); + QString millis = (str.mid(20, tzPos - 20) + QSL("000")).left(3); dt = dt.addMSecs(millis.toInt()); } // process time zone - if (tzRe.cap(1) != "Z") { + if (tzRe.cap(1) != QSL("Z")) { int offset = tzRe.cap(3).toInt() * 3600 + tzRe.cap(4).toInt() * 60; - if (tzRe.cap(2) == "+") + if (tzRe.cap(2) == QSL("+")) dt = dt.addSecs(-offset); else dt = dt.addSecs(offset); @@ -147,9 +147,9 @@ QString QXmppUtils::datetimeToString(const QDateTime &dt) { QDateTime utc = dt.toUTC(); if (utc.time().msec()) - return utc.toString("yyyy-MM-ddThh:mm:ss.zzzZ"); + return utc.toString(QSL("yyyy-MM-ddThh:mm:ss.zzzZ")); else - return utc.toString("yyyy-MM-ddThh:mm:ssZ"); + return utc.toString(QSL("yyyy-MM-ddThh:mm:ssZ")); } /// @@ -158,18 +158,18 @@ QString QXmppUtils::datetimeToString(const QDateTime &dt) /// int QXmppUtils::timezoneOffsetFromString(const QString &str) { - QRegExp tzRe("(Z|([+-])([0-9]{2}):([0-9]{2}))"); + QRegExp tzRe(QSL("(Z|([+-])([0-9]{2}):([0-9]{2}))")); if (!tzRe.exactMatch(str)) return 0; // No offset from UTC - if (tzRe.cap(1) == "Z") + if (tzRe.cap(1) == QSL("Z")) return 0; // Calculate offset const int offset = tzRe.cap(3).toInt() * 3600 + tzRe.cap(4).toInt() * 60; - if (tzRe.cap(2) == "-") + if (tzRe.cap(2) == QSL("-")) return -offset; else return offset; @@ -182,17 +182,17 @@ int QXmppUtils::timezoneOffsetFromString(const QString &str) QString QXmppUtils::timezoneOffsetToString(int secs) { if (!secs) - return QString::fromLatin1("Z"); + return QSL("Z"); const QTime tzoTime = QTime(0, 0, 0).addSecs(qAbs(secs)); - return (secs < 0 ? "-" : "+") + tzoTime.toString("hh:mm"); + return (secs < 0 ? QSL("-") : QSL("+")) + tzoTime.toString(QSL("hh:mm")); } /// Returns the domain for the given \a jid. QString QXmppUtils::jidToDomain(const QString &jid) { - return jidToBareJid(jid).split("@").last(); + return jidToBareJid(jid).split(QSL("@")).last(); } /// Returns the resource for the given \a jid. @@ -330,7 +330,7 @@ QString QXmppUtils::generateStanzaHash(int length) if (length == 36) return QXmppUtils::generateStanzaUuid(); - const QString somechars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + const QString somechars = QSL("1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"); const int N = somechars.size(); QString hashResult; for (int idx = 0; idx < length; ++idx) diff --git a/src/base/QXmppVCardIq.cpp b/src/base/QXmppVCardIq.cpp index 1452b309..30a6bc65 100644 --- a/src/base/QXmppVCardIq.cpp +++ b/src/base/QXmppVCardIq.cpp @@ -32,20 +32,20 @@ static QString getImageType(const QByteArray &contents) { if (contents.startsWith("\x89PNG\x0d\x0a\x1a\x0a")) - return "image/png"; + return QSL("image/png"); else if (contents.startsWith("\x8aMNG")) - return "video/x-mng"; + return QSL("video/x-mng"); else if (contents.startsWith("GIF8")) - return "image/gif"; + return QSL("image/gif"); else if (contents.startsWith("BM")) - return "image/bmp"; + return QSL("image/bmp"); else if (contents.contains("/* XPM */")) - return "image/x-xpm"; + return QSL("image/x-xpm"); else if (contents.contains("<?xml") && contents.contains("<svg")) - return "image/svg+xml"; + return QSL("image/svg+xml"); else if (contents.startsWith("\xFF\xD8\xFF\xE0")) - return "image/jpeg"; - return "image/unknown"; + return QSL("image/jpeg"); + return QSL("image/unknown"); } class QXmppVCardAddressPrivate : public QSharedData @@ -192,44 +192,44 @@ void QXmppVCardAddress::setType(QXmppVCardAddress::Type type) /// \cond void QXmppVCardAddress::parse(const QDomElement &element) { - if (!element.firstChildElement("HOME").isNull()) + if (!element.firstChildElement(QSL("HOME")).isNull()) d->type |= Home; - if (!element.firstChildElement("WORK").isNull()) + if (!element.firstChildElement(QSL("WORK")).isNull()) d->type |= Work; - if (!element.firstChildElement("POSTAL").isNull()) + if (!element.firstChildElement(QSL("POSTAL")).isNull()) d->type |= Postal; - if (!element.firstChildElement("PREF").isNull()) + if (!element.firstChildElement(QSL("PREF")).isNull()) d->type |= Preferred; - d->country = element.firstChildElement("CTRY").text(); - d->locality = element.firstChildElement("LOCALITY").text(); - d->postcode = element.firstChildElement("PCODE").text(); - d->region = element.firstChildElement("REGION").text(); - d->street = element.firstChildElement("STREET").text(); + d->country = element.firstChildElement(QSL("CTRY")).text(); + d->locality = element.firstChildElement(QSL("LOCALITY")).text(); + d->postcode = element.firstChildElement(QSL("PCODE")).text(); + d->region = element.firstChildElement(QSL("REGION")).text(); + d->street = element.firstChildElement(QSL("STREET")).text(); } void QXmppVCardAddress::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("ADR"); + writer->writeStartElement(QSL("ADR")); if (d->type & Home) - writer->writeEmptyElement("HOME"); + writer->writeEmptyElement(QSL("HOME")); if (d->type & Work) - writer->writeEmptyElement("WORK"); + writer->writeEmptyElement(QSL("WORK")); if (d->type & Postal) - writer->writeEmptyElement("POSTAL"); + writer->writeEmptyElement(QSL("POSTAL")); if (d->type & Preferred) - writer->writeEmptyElement("PREF"); + writer->writeEmptyElement(QSL("PREF")); if (!d->country.isEmpty()) - writer->writeTextElement("CTRY", d->country); + writer->writeTextElement(QSL("CTRY"), d->country); if (!d->locality.isEmpty()) - writer->writeTextElement("LOCALITY", d->locality); + writer->writeTextElement(QSL("LOCALITY"), d->locality); if (!d->postcode.isEmpty()) - writer->writeTextElement("PCODE", d->postcode); + writer->writeTextElement(QSL("PCODE"), d->postcode); if (!d->region.isEmpty()) - writer->writeTextElement("REGION", d->region); + writer->writeTextElement(QSL("REGION"), d->region); if (!d->street.isEmpty()) - writer->writeTextElement("STREET", d->street); + writer->writeTextElement(QSL("STREET"), d->street); writer->writeEndElement(); } @@ -315,33 +315,33 @@ void QXmppVCardEmail::setType(QXmppVCardEmail::Type type) /// \cond void QXmppVCardEmail::parse(const QDomElement &element) { - if (!element.firstChildElement("HOME").isNull()) + if (!element.firstChildElement(QSL("HOME")).isNull()) d->type |= Home; - if (!element.firstChildElement("WORK").isNull()) + if (!element.firstChildElement(QSL("WORK")).isNull()) d->type |= Work; - if (!element.firstChildElement("INTERNET").isNull()) + if (!element.firstChildElement(QSL("INTERNET")).isNull()) d->type |= Internet; - if (!element.firstChildElement("PREF").isNull()) + if (!element.firstChildElement(QSL("PREF")).isNull()) d->type |= Preferred; - if (!element.firstChildElement("X400").isNull()) + if (!element.firstChildElement(QSL("X400")).isNull()) d->type |= X400; - d->address = element.firstChildElement("USERID").text(); + d->address = element.firstChildElement(QSL("USERID")).text(); } void QXmppVCardEmail::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("EMAIL"); + writer->writeStartElement(QSL("EMAIL")); if (d->type & Home) - writer->writeEmptyElement("HOME"); + writer->writeEmptyElement(QSL("HOME")); if (d->type & Work) - writer->writeEmptyElement("WORK"); + writer->writeEmptyElement(QSL("WORK")); if (d->type & Internet) - writer->writeEmptyElement("INTERNET"); + writer->writeEmptyElement(QSL("INTERNET")); if (d->type & Preferred) - writer->writeEmptyElement("PREF"); + writer->writeEmptyElement(QSL("PREF")); if (d->type & X400) - writer->writeEmptyElement("X400"); - writer->writeTextElement("USERID", d->address); + writer->writeEmptyElement(QSL("X400")); + writer->writeTextElement(QSL("USERID"), d->address); writer->writeEndElement(); } /// \endcond @@ -426,65 +426,65 @@ void QXmppVCardPhone::setType(QXmppVCardPhone::Type type) /// \cond void QXmppVCardPhone::parse(const QDomElement &element) { - if (!element.firstChildElement("HOME").isNull()) + if (!element.firstChildElement(QSL("HOME")).isNull()) d->type |= Home; - if (!element.firstChildElement("WORK").isNull()) + if (!element.firstChildElement(QSL("WORK")).isNull()) d->type |= Work; - if (!element.firstChildElement("VOICE").isNull()) + if (!element.firstChildElement(QSL("VOICE")).isNull()) d->type |= Voice; - if (!element.firstChildElement("FAX").isNull()) + if (!element.firstChildElement(QSL("FAX")).isNull()) d->type |= Fax; - if (!element.firstChildElement("PAGER").isNull()) + if (!element.firstChildElement(QSL("PAGER")).isNull()) d->type |= Pager; - if (!element.firstChildElement("MSG").isNull()) + if (!element.firstChildElement(QSL("MSG")).isNull()) d->type |= Messaging; - if (!element.firstChildElement("CELL").isNull()) + if (!element.firstChildElement(QSL("CELL")).isNull()) d->type |= Cell; - if (!element.firstChildElement("VIDEO").isNull()) + if (!element.firstChildElement(QSL("VIDEO")).isNull()) d->type |= Video; - if (!element.firstChildElement("BBS").isNull()) + if (!element.firstChildElement(QSL("BBS")).isNull()) d->type |= BBS; - if (!element.firstChildElement("MODEM").isNull()) + if (!element.firstChildElement(QSL("MODEM")).isNull()) d->type |= Modem; - if (!element.firstChildElement("ISDN").isNull()) + if (!element.firstChildElement(QSL("ISDN")).isNull()) d->type |= ISDN; - if (!element.firstChildElement("PCS").isNull()) + if (!element.firstChildElement(QSL("PCS")).isNull()) d->type |= PCS; - if (!element.firstChildElement("PREF").isNull()) + if (!element.firstChildElement(QSL("PREF")).isNull()) d->type |= Preferred; - d->number = element.firstChildElement("NUMBER").text(); + d->number = element.firstChildElement(QSL("NUMBER")).text(); } void QXmppVCardPhone::toXml(QXmlStreamWriter *writer) const { - writer->writeStartElement("TEL"); + writer->writeStartElement(QSL("TEL")); if (d->type & Home) - writer->writeEmptyElement("HOME"); + writer->writeEmptyElement(QSL("HOME")); if (d->type & Work) - writer->writeEmptyElement("WORK"); + writer->writeEmptyElement(QSL("WORK")); if (d->type & Voice) - writer->writeEmptyElement("VOICE"); + writer->writeEmptyElement(QSL("VOICE")); if (d->type & Fax) - writer->writeEmptyElement("FAX"); + writer->writeEmptyElement(QSL("FAX")); if (d->type & Pager) - writer->writeEmptyElement("PAGER"); + writer->writeEmptyElement(QSL("PAGER")); if (d->type & Messaging) - writer->writeEmptyElement("MSG"); + writer->writeEmptyElement(QSL("MSG")); if (d->type & Cell) - writer->writeEmptyElement("CELL"); + writer->writeEmptyElement(QSL("CELL")); if (d->type & Video) - writer->writeEmptyElement("VIDEO"); + writer->writeEmptyElement(QSL("VIDEO")); if (d->type & BBS) - writer->writeEmptyElement("BBS"); + writer->writeEmptyElement(QSL("BBS")); if (d->type & Modem) - writer->writeEmptyElement("MODEM"); + writer->writeEmptyElement(QSL("MODEM")); if (d->type & ISDN) - writer->writeEmptyElement("ISDN"); + writer->writeEmptyElement(QSL("ISDN")); if (d->type & PCS) - writer->writeEmptyElement("PCS"); + writer->writeEmptyElement(QSL("PCS")); if (d->type & Preferred) - writer->writeEmptyElement("PREF"); - writer->writeTextElement("NUMBER", d->number); + writer->writeEmptyElement(QSL("PREF")); + writer->writeTextElement(QSL("NUMBER"), d->number); writer->writeEndElement(); } /// \endcond @@ -600,25 +600,25 @@ void QXmppVCardOrganization::setTitle(const QString &title) /// \cond void QXmppVCardOrganization::parse(const QDomElement &cardElem) { - d->title = cardElem.firstChildElement("TITLE").text(); - d->role = cardElem.firstChildElement("ROLE").text(); + d->title = cardElem.firstChildElement(QSL("TITLE")).text(); + d->role = cardElem.firstChildElement(QSL("ROLE")).text(); - const QDomElement &orgElem = cardElem.firstChildElement("ORG"); - d->organization = orgElem.firstChildElement("ORGNAME").text(); - d->unit = orgElem.firstChildElement("ORGUNIT").text(); + const QDomElement &orgElem = cardElem.firstChildElement(QSL("ORG")); + d->organization = orgElem.firstChildElement(QSL("ORGNAME")).text(); + d->unit = orgElem.firstChildElement(QSL("ORGUNIT")).text(); } void QXmppVCardOrganization::toXml(QXmlStreamWriter *stream) const { if (!d->unit.isEmpty() || !d->organization.isEmpty()) { - stream->writeStartElement("ORG"); - stream->writeTextElement("ORGNAME", d->organization); - stream->writeTextElement("ORGUNIT", d->unit); + stream->writeStartElement(QSL("ORG")); + stream->writeTextElement(QSL("ORGNAME"), d->organization); + stream->writeTextElement(QSL("ORGUNIT"), d->unit); stream->writeEndElement(); } - helperToXmlAddTextElement(stream, "TITLE", d->title); - helperToXmlAddTextElement(stream, "ROLE", d->role); + helperToXmlAddTextElement(stream, QSL("TITLE"), d->title); + helperToXmlAddTextElement(stream, QSL("ROLE"), d->role); } /// \endcond @@ -959,38 +959,38 @@ void QXmppVCardIq::setOrganization(const QXmppVCardOrganization &org) /// \cond bool QXmppVCardIq::isVCard(const QDomElement &nodeRecv) { - return nodeRecv.firstChildElement("vCard").namespaceURI() == ns_vcard; + return nodeRecv.firstChildElement(QSL("vCard")).namespaceURI() == ns_vcard; } void QXmppVCardIq::parseElementFromChild(const QDomElement &nodeRecv) { // vCard - QDomElement cardElement = nodeRecv.firstChildElement("vCard"); - d->birthday = QDate::fromString(cardElement.firstChildElement("BDAY").text(), "yyyy-MM-dd"); - d->description = cardElement.firstChildElement("DESC").text(); - d->fullName = cardElement.firstChildElement("FN").text(); - d->nickName = cardElement.firstChildElement("NICKNAME").text(); - QDomElement nameElement = cardElement.firstChildElement("N"); - d->firstName = nameElement.firstChildElement("GIVEN").text(); - d->lastName = nameElement.firstChildElement("FAMILY").text(); - d->middleName = nameElement.firstChildElement("MIDDLE").text(); - d->url = cardElement.firstChildElement("URL").text(); - QDomElement photoElement = cardElement.firstChildElement("PHOTO"); - QByteArray base64data = photoElement.firstChildElement("BINVAL").text().toLatin1(); + QDomElement cardElement = nodeRecv.firstChildElement(QSL("vCard")); + d->birthday = QDate::fromString(cardElement.firstChildElement(QSL("BDAY")).text(), QSL("yyyy-MM-dd")); + d->description = cardElement.firstChildElement(QSL("DESC")).text(); + d->fullName = cardElement.firstChildElement(QSL("FN")).text(); + d->nickName = cardElement.firstChildElement(QSL("NICKNAME")).text(); + QDomElement nameElement = cardElement.firstChildElement(QSL("N")); + d->firstName = nameElement.firstChildElement(QSL("GIVEN")).text(); + d->lastName = nameElement.firstChildElement(QSL("FAMILY")).text(); + d->middleName = nameElement.firstChildElement(QSL("MIDDLE")).text(); + d->url = cardElement.firstChildElement(QSL("URL")).text(); + QDomElement photoElement = cardElement.firstChildElement(QSL("PHOTO")); + QByteArray base64data = photoElement.firstChildElement(QSL("BINVAL")).text().toLatin1(); d->photo = QByteArray::fromBase64(base64data); - d->photoType = photoElement.firstChildElement("TYPE").text(); + d->photoType = photoElement.firstChildElement(QSL("TYPE")).text(); QDomElement child = cardElement.firstChildElement(); while (!child.isNull()) { - if (child.tagName() == "ADR") { + if (child.tagName() == QSL("ADR")) { QXmppVCardAddress address; address.parse(child); d->addresses << address; - } else if (child.tagName() == "EMAIL") { + } else if (child.tagName() == QSL("EMAIL")) { QXmppVCardEmail email; email.parse(child); d->emails << email; - } else if (child.tagName() == "TEL") { + } else if (child.tagName() == QSL("TEL")) { QXmppVCardPhone phone; phone.parse(child); d->phones << phone; @@ -1003,46 +1003,46 @@ void QXmppVCardIq::parseElementFromChild(const QDomElement &nodeRecv) void QXmppVCardIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("vCard"); + writer->writeStartElement(QSL("vCard")); writer->writeDefaultNamespace(ns_vcard); for (const QXmppVCardAddress &address : d->addresses) address.toXml(writer); if (d->birthday.isValid()) - helperToXmlAddTextElement(writer, "BDAY", d->birthday.toString("yyyy-MM-dd")); + helperToXmlAddTextElement(writer, QSL("BDAY"), d->birthday.toString(QSL("yyyy-MM-dd"))); if (!d->description.isEmpty()) - helperToXmlAddTextElement(writer, "DESC", d->description); + helperToXmlAddTextElement(writer, QSL("DESC"), d->description); for (const QXmppVCardEmail &email : d->emails) email.toXml(writer); if (!d->fullName.isEmpty()) - helperToXmlAddTextElement(writer, "FN", d->fullName); + helperToXmlAddTextElement(writer, QSL("FN"), d->fullName); if (!d->nickName.isEmpty()) - helperToXmlAddTextElement(writer, "NICKNAME", d->nickName); + helperToXmlAddTextElement(writer, QSL("NICKNAME"), d->nickName); if (!d->firstName.isEmpty() || !d->lastName.isEmpty() || !d->middleName.isEmpty()) { writer->writeStartElement("N"); if (!d->firstName.isEmpty()) - helperToXmlAddTextElement(writer, "GIVEN", d->firstName); + helperToXmlAddTextElement(writer, QSL("GIVEN"), d->firstName); if (!d->lastName.isEmpty()) - helperToXmlAddTextElement(writer, "FAMILY", d->lastName); + helperToXmlAddTextElement(writer, QSL("FAMILY"), d->lastName); if (!d->middleName.isEmpty()) - helperToXmlAddTextElement(writer, "MIDDLE", d->middleName); + helperToXmlAddTextElement(writer, QSL("MIDDLE"), d->middleName); writer->writeEndElement(); } for (const QXmppVCardPhone &phone : d->phones) phone.toXml(writer); if (!photo().isEmpty()) { - writer->writeStartElement("PHOTO"); + writer->writeStartElement(QSL("PHOTO")); QString photoType = d->photoType; if (photoType.isEmpty()) photoType = getImageType(d->photo); - helperToXmlAddTextElement(writer, "TYPE", photoType); - helperToXmlAddTextElement(writer, "BINVAL", d->photo.toBase64()); + helperToXmlAddTextElement(writer, QSL("TYPE"), photoType); + helperToXmlAddTextElement(writer, QSL("BINVAL"), d->photo.toBase64()); writer->writeEndElement(); } if (!d->url.isEmpty()) - helperToXmlAddTextElement(writer, "URL", d->url); + helperToXmlAddTextElement(writer, QSL("URL"), d->url); d->organization.toXml(writer); diff --git a/src/base/QXmppVersionIq.cpp b/src/base/QXmppVersionIq.cpp index 1e7cd33a..c0017515 100644 --- a/src/base/QXmppVersionIq.cpp +++ b/src/base/QXmppVersionIq.cpp @@ -82,31 +82,31 @@ void QXmppVersionIq::setVersion(const QString &version) /// \cond bool QXmppVersionIq::isVersionIq(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); + QDomElement queryElement = element.firstChildElement(QSL("query")); return queryElement.namespaceURI() == ns_version; } void QXmppVersionIq::parseElementFromChild(const QDomElement &element) { - QDomElement queryElement = element.firstChildElement("query"); - m_name = queryElement.firstChildElement("name").text(); - m_os = queryElement.firstChildElement("os").text(); - m_version = queryElement.firstChildElement("version").text(); + QDomElement queryElement = element.firstChildElement(QSL("query")); + m_name = queryElement.firstChildElement(QSL("name")).text(); + m_os = queryElement.firstChildElement(QSL("os")).text(); + m_version = queryElement.firstChildElement(QSL("version")).text(); } void QXmppVersionIq::toXmlElementFromChild(QXmlStreamWriter *writer) const { - writer->writeStartElement("query"); + writer->writeStartElement(QSL("query")); writer->writeDefaultNamespace(ns_version); if (!m_name.isEmpty()) - helperToXmlAddTextElement(writer, "name", m_name); + helperToXmlAddTextElement(writer, QSL("name"), m_name); if (!m_os.isEmpty()) - helperToXmlAddTextElement(writer, "os", m_os); + helperToXmlAddTextElement(writer, QSL("os"), m_os); if (!m_version.isEmpty()) - helperToXmlAddTextElement(writer, "version", m_version); + helperToXmlAddTextElement(writer, QSL("version"), m_version); writer->writeEndElement(); } |
