diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-16 16:15:38 +0200 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2012-07-16 16:15:38 +0200 |
| commit | da148da400d65db15e2749a7066b84c9bcbb9b43 (patch) | |
| tree | 9401e058c7d4631d1aed816af61900f4f8613e04 /src | |
| parent | 99bd8884bc87fbdbbe3a053f3afda9155b914c0f (diff) | |
| parent | 0ae287b2c624df43b3744f79911d11baa0699c68 (diff) | |
| download | qxmpp-da148da400d65db15e2749a7066b84c9bcbb9b43.tar.gz | |
Merge branch 'master' of https://code.google.com/p/qxmpp
Diffstat (limited to 'src')
| -rw-r--r-- | src/base/QXmppArchiveIq.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/base/QXmppArchiveIq.cpp b/src/base/QXmppArchiveIq.cpp index 8bc6b12d..068b4366 100644 --- a/src/base/QXmppArchiveIq.cpp +++ b/src/base/QXmppArchiveIq.cpp @@ -93,6 +93,8 @@ void QXmppArchiveChat::parse(const QDomElement &element) m_thread = element.attribute("thread"); m_version = element.attribute("version").toInt(); + QDateTime timeAccu = m_start; + QDomElement child = element.firstChildElement(); while (!child.isNull()) { @@ -100,7 +102,8 @@ void QXmppArchiveChat::parse(const QDomElement &element) { QXmppArchiveMessage message; message.setBody(child.firstChildElement("body").text()); - message.setDate(m_start.addSecs(child.attribute("secs").toInt())); + timeAccu = timeAccu.addSecs(child.attribute("secs").toInt()); + message.setDate(timeAccu); message.setReceived(child.tagName() == "from"); m_messages << message; } @@ -119,12 +122,16 @@ void QXmppArchiveChat::toXml(QXmlStreamWriter *writer) const helperToXmlAddAttribute(writer, "thread", m_thread); if (m_version) helperToXmlAddAttribute(writer, "version", QString::number(m_version)); + + QDateTime prevTime = m_start; + foreach (const QXmppArchiveMessage &message, m_messages) { writer->writeStartElement(message.isReceived() ? "from" : "to"); - helperToXmlAddAttribute(writer, "secs", QString::number(m_start.secsTo(message.date()))); + helperToXmlAddAttribute(writer, "secs", QString::number(prevTime.secsTo(message.date()))); writer->writeTextElement("body", message.body()); writer->writeEndElement(); + prevTime = message.date(); } writer->writeEndElement(); } |
