From 1ba4eb02f5015a0fcc5d7bdce03bac62e4b0f183 Mon Sep 17 00:00:00 2001 From: Juan Aragon Date: Tue, 20 May 2014 14:52:45 +0100 Subject: XEP-0333: Chat Markers --- src/base/QXmppMessage.h | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/base/QXmppMessage.h') diff --git a/src/base/QXmppMessage.h b/src/base/QXmppMessage.h index e927a85c..193ac6d2 100644 --- a/src/base/QXmppMessage.h +++ b/src/base/QXmppMessage.h @@ -60,8 +60,18 @@ public: Paused, ///< User had been composing but now has stopped. }; + /// This enum describes a chat marker as defined by + /// XEP-0333 : Char Markers + enum Marker { + NoMarker = 0, + Received, + Displayed, + Acknowledged + }; + QXmppMessage(const QString& from = QString(), const QString& to = QString(), const QString& body = QString(), const QString& thread = QString()); + QXmppMessage(const QXmppMessage &other); ~QXmppMessage(); @@ -106,6 +116,14 @@ public: QString xhtml() const; void setXhtml(const QString &xhtml); + // XEP-0333 + bool isMarkable() const; + void setMarkable(const bool); + Marker marker() const; + QString markedId() const; + QString markedThread() const; + void setMarker(const Marker, const QString& id, const QString& thread = QString()); + /// \cond void parse(const QDomElement &element); void toXml(QXmlStreamWriter *writer) const; -- cgit v1.2.3 From 599cf81e6a785d8c748db375f9959547392e4467 Mon Sep 17 00:00:00 2001 From: Juan Aragon Date: Wed, 21 May 2014 16:09:23 +0100 Subject: XEP-0333 updated: -Methods documented -Symmetrical getters/setters -Unit tests updated --- src/base/QXmppMessage.cpp | 48 ++++++++++++++++++++++++++------- src/base/QXmppMessage.h | 11 +++++--- tests/qxmppmessage/tst_qxmppmessage.cpp | 15 ++++++++--- 3 files changed, 58 insertions(+), 16 deletions(-) (limited to 'src/base/QXmppMessage.h') diff --git a/src/base/QXmppMessage.cpp b/src/base/QXmppMessage.cpp index c4743b98..4bdc6329 100644 --- a/src/base/QXmppMessage.cpp +++ b/src/base/QXmppMessage.cpp @@ -379,38 +379,68 @@ namespace } } +/// Returns true if a message is markable, as defined +/// XEP-0333: Chat Markers. + bool QXmppMessage::isMarkable() const { return d->markable; } +/// Sets if the message is markable, as defined +/// XEP-0333: Chat Markers. + void QXmppMessage::setMarkable(const bool markable) { d->markable = markable; } -QXmppMessage::Marker QXmppMessage::marker() const -{ - return d->marker; -} +/// Returns the message's marker id, as defined +/// XEP-0333: Chat Markers. QString QXmppMessage::markedId() const { return d->markedId; } +/// Sets the message's marker id, as defined +/// XEP-0333: Chat Markers. + +void QXmppMessage::setMarkerId(const QString &markerId) +{ + d->markedId = markerId; +} + +/// Returns the message's marker thread, as defined +/// XEP-0333: Chat Markers. + QString QXmppMessage::markedThread() const { return d->markedThread; } -void QXmppMessage::setMarker(const Marker marker, - const QString& id, - const QString& thread) +/// Sets the message's marked thread, as defined +/// XEP-0333: Chat Markers. + +void QXmppMessage::setMarkedThread(const QString &markedThread) +{ + d->markedThread = markedThread; +} + +/// Returns the message's marker, as defined +/// XEP-0333: Chat Markers. + +QXmppMessage::Marker QXmppMessage::marker() const +{ + return d->marker; +} + +/// Sets the message's marker, as defined +/// XEP-0333: Chat Markers + +void QXmppMessage::setMarker(const Marker marker) { d->marker = marker; - d->markedId = id; - d->markedThread = thread; } /// \cond diff --git a/src/base/QXmppMessage.h b/src/base/QXmppMessage.h index 193ac6d2..119dba3e 100644 --- a/src/base/QXmppMessage.h +++ b/src/base/QXmppMessage.h @@ -119,11 +119,16 @@ public: // XEP-0333 bool isMarkable() const; void setMarkable(const bool); - Marker marker() const; + QString markedId() const; + void setMarkerId(const QString&); + QString markedThread() const; - void setMarker(const Marker, const QString& id, const QString& thread = QString()); - + void setMarkedThread(const QString&); + + Marker marker() const; + void setMarker(const Marker); + /// \cond void parse(const QDomElement &element); void toXml(QXmlStreamWriter *writer) const; diff --git a/tests/qxmppmessage/tst_qxmppmessage.cpp b/tests/qxmppmessage/tst_qxmppmessage.cpp index d97f45c6..1ec4f18b 100644 --- a/tests/qxmppmessage/tst_qxmppmessage.cpp +++ b/tests/qxmppmessage/tst_qxmppmessage.cpp @@ -465,7 +465,8 @@ void tst_QXmppMessage::testChatMarkers() ""); serialisationMessage.setMarkable(false); - serialisationMessage.setMarker(QXmppMessage::Received, "message-2"); + serialisationMessage.setMarker(QXmppMessage::Received); + serialisationMessage.setMarkerId("message-2"); serializePacket(serialisationMessage, receivedSerialisation); const QByteArray receivedThreadSerialisation( @@ -479,7 +480,9 @@ void tst_QXmppMessage::testChatMarkers() "thread=\"sleeping\"/>" ""); - serialisationMessage.setMarker(QXmppMessage::Received, "message-2", "sleeping"); + serialisationMessage.setMarker(QXmppMessage::Received); + serialisationMessage.setMarkerId("message-2"); + serialisationMessage.setMarkedThread("sleeping"); serializePacket(serialisationMessage, receivedThreadSerialisation); const QByteArray displayedThreadSerialisation( @@ -493,7 +496,9 @@ void tst_QXmppMessage::testChatMarkers() "thread=\"sleeping\"/>" ""); - serialisationMessage.setMarker(QXmppMessage::Displayed, "message-2", "sleeping"); + serialisationMessage.setMarker(QXmppMessage::Displayed); + serialisationMessage.setMarkerId("message-2"); + serialisationMessage.setMarkedThread("sleeping"); serializePacket(serialisationMessage, displayedThreadSerialisation); const QByteArray acknowledgedThreadSerialisation( @@ -507,7 +512,9 @@ void tst_QXmppMessage::testChatMarkers() "thread=\"sleeping\"/>" ""); - serialisationMessage.setMarker(QXmppMessage::Acknowledged, "message-2", "sleeping"); + serialisationMessage.setMarker(QXmppMessage::Acknowledged); + serialisationMessage.setMarkerId("message-2"); + serialisationMessage.setMarkedThread("sleeping"); serializePacket(serialisationMessage, acknowledgedThreadSerialisation); } -- cgit v1.2.3