diff options
| author | Zam-mbpr <love8879201@gmail.com> | 2015-05-15 17:18:15 +0800 |
|---|---|---|
| committer | Zam-mbpr <love8879201@gmail.com> | 2015-05-15 17:18:15 +0800 |
| commit | 15bc586a515aa22b686507d7729ae80ba8794b06 (patch) | |
| tree | f4c2b47d12a1c87faf00b6d7fff110f1a9d0c63e /src/base/QXmppMessage.cpp | |
| parent | 596c6e8447a0fc69bd1669aaeb4f05ac4f0242f7 (diff) | |
| download | qxmpp-15bc586a515aa22b686507d7729ae80ba8794b06.tar.gz | |
[add] unit test [add] comment [update] code order to if else statement
Diffstat (limited to 'src/base/QXmppMessage.cpp')
| -rw-r--r-- | src/base/QXmppMessage.cpp | 32 |
1 files changed, 18 insertions, 14 deletions
diff --git a/src/base/QXmppMessage.cpp b/src/base/QXmppMessage.cpp index 600fe47c..0ee4be20 100644 --- a/src/base/QXmppMessage.cpp +++ b/src/base/QXmppMessage.cpp @@ -501,6 +501,15 @@ void QXmppMessage::parse(const QDomElement &element) } d->receiptRequested = element.firstChildElement("request").namespaceURI() == ns_message_receipts; + // XEP-0203: Delayed Delivery + QDomElement delayElement = element.firstChildElement("delay"); + if (!delayElement.isNull() && delayElement.namespaceURI() == ns_delayed_delivery) + { + const QString str = delayElement.attribute("stamp"); + d->stamp = QXmppUtils::datetimeFromString(str); + d->stampType = DelayedDelivery; + } + // XEP-0224: Attention d->attentionRequested = element.firstChildElement("attention").namespaceURI() == ns_attention; @@ -544,11 +553,15 @@ void QXmppMessage::parse(const QDomElement &element) { if (xElement.namespaceURI() == ns_legacy_delayed_delivery) { - // XEP-0091: Legacy Delayed Delivery - const QString str = xElement.attribute("stamp"); - d->stamp = QDateTime::fromString(str, "yyyyMMddThh:mm:ss"); - d->stamp.setTimeSpec(Qt::UTC); - d->stampType = LegacyDelayedDelivery; + // if XEP-0203 exists, XEP-0091 has no need to parse because XEP-0091 is no more standard protocol) + if (d->stamp.isNull()) + { + // XEP-0091: Legacy Delayed Delivery + const QString str = xElement.attribute("stamp"); + d->stamp = QDateTime::fromString(str, "yyyyMMddThh:mm:ss"); + d->stamp.setTimeSpec(Qt::UTC); + d->stampType = LegacyDelayedDelivery; + } } else if (xElement.namespaceURI() == ns_conference) { // XEP-0249: Direct MUC Invitations d->mucInvitationJid = xElement.attribute("jid"); @@ -566,15 +579,6 @@ void QXmppMessage::parse(const QDomElement &element) xElement = xElement.nextSiblingElement(); } setExtensions(extensions); - - // XEP-0203: Delayed Delivery - QDomElement delayElement = element.firstChildElement("delay"); - if (!delayElement.isNull() && delayElement.namespaceURI() == ns_delayed_delivery) - { - const QString str = delayElement.attribute("stamp"); - d->stamp = QXmppUtils::datetimeFromString(str); - d->stampType = DelayedDelivery; - } } void QXmppMessage::toXml(QXmlStreamWriter *xmlWriter) const |
