diff options
| author | 0xd34df00d <0xd34df00d@gmail.com> | 2014-02-28 23:37:06 +0400 |
|---|---|---|
| committer | 0xd34df00d <0xd34df00d@gmail.com> | 2014-02-28 23:37:06 +0400 |
| commit | 5619a6e81498da219561b7c9b030a07d89b76c41 (patch) | |
| tree | c83ff225421c5d63f142356699a97c61b5469335 /src/base/QXmppMessage.cpp | |
| parent | 9871db7e8378193440df1afeaecabe95250b9b58 (diff) | |
| download | qxmpp-5619a6e81498da219561b7c9b030a07d89b76c41.tar.gz | |
Namespace-based matching for known elements.
Diffstat (limited to 'src/base/QXmppMessage.cpp')
| -rw-r--r-- | src/base/QXmppMessage.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/base/QXmppMessage.cpp b/src/base/QXmppMessage.cpp index e88e40f1..db46271b 100644 --- a/src/base/QXmppMessage.cpp +++ b/src/base/QXmppMessage.cpp @@ -344,20 +344,20 @@ void QXmppMessage::setXhtml(const QString &xhtml) namespace { - static QStringList knownMessageSubelems() + static QList<QPair<QString, QString> > knownMessageSubelems() { - QStringList result; - result << "body" - << "subject" - << "thread" - << "html" - << "received" - << "request" - << "delay" - << "attention" - << "addresses"; + QList<QPair<QString, QString> > result; + result << qMakePair(QString("body"), QString()) + << qMakePair(QString("subject"), QString()) + << qMakePair(QString("thread"), QString()) + << qMakePair(QString("html"), QString()) + << qMakePair(QString("received"), QString(ns_message_receipts)) + << qMakePair(QString("request"), QString()) + << qMakePair(QString("delay"), QString()) + << qMakePair(QString("attention"), QString()) + << qMakePair(QString("addresses"), QString()); for (int i = QXmppMessage::Active; i <= QXmppMessage::Paused; i++) - result << chat_states[i]; + result << qMakePair(QString(chat_states[i]), QString()); return result; } } @@ -432,7 +432,7 @@ void QXmppMessage::parse(const QDomElement &element) // XEP-0224: Attention d->attentionRequested = element.firstChildElement("attention").namespaceURI() == ns_attention; - const QStringList &knownElems = knownMessageSubelems(); + const QList<QPair<QString, QString> > &knownElems = knownMessageSubelems(); QXmppElementList extensions; QDomElement xElement = element.firstChildElement(); @@ -456,7 +456,8 @@ void QXmppMessage::parse(const QDomElement &element) else { extensions << QXmppElement(xElement); } - } else if (!knownElems.contains(xElement.tagName())) { + } else if (!knownElems.contains(qMakePair(xElement.tagName(), xElement.namespaceURI())) && + !knownElems.contains(qMakePair(xElement.tagName(), QString()))) { // other extensions extensions << QXmppElement(xElement); } |
