aboutsummaryrefslogtreecommitdiff
path: root/events
diff options
context:
space:
mode:
Diffstat (limited to 'events')
-rw-r--r--events/event.cpp35
-rw-r--r--events/event.h1
-rw-r--r--events/receiptevent.cpp3
-rw-r--r--events/receiptevent.h2
4 files changed, 25 insertions, 16 deletions
diff --git a/events/event.cpp b/events/event.cpp
index 8a6de822..d718306d 100644
--- a/events/event.cpp
+++ b/events/event.cpp
@@ -48,6 +48,11 @@ QByteArray Event::originalJson() const
return QJsonDocument(_originalJson).toJson();
}
+QJsonObject Event::originalJsonObject() const
+{
+ return _originalJson;
+}
+
QDateTime Event::toTimestamp(const QJsonValue& v)
{
Q_ASSERT(v.isDouble() || v.isNull() || v.isUndefined());
@@ -97,21 +102,21 @@ RoomEvent::RoomEvent(Type type, const QJsonObject& rep)
, _senderId(rep["sender"].toString())
, _txnId(rep["unsigned"].toObject().value("transactionId").toString())
{
- if (_id.isEmpty())
- {
- qCWarning(EVENTS) << "Can't find event_id in a room event";
- qCWarning(EVENTS) << formatJson << rep;
- }
- if (!rep.contains("origin_server_ts"))
- {
- qCWarning(EVENTS) << "Can't find server timestamp in a room event";
- qCWarning(EVENTS) << formatJson << rep;
- }
- if (_senderId.isEmpty())
- {
- qCWarning(EVENTS) << "Can't find sender in a room event";
- qCWarning(EVENTS) << formatJson << rep;
- }
+// if (_id.isEmpty())
+// {
+// qCWarning(EVENTS) << "Can't find event_id in a room event";
+// qCWarning(EVENTS) << formatJson << rep;
+// }
+// if (!rep.contains("origin_server_ts"))
+// {
+// qCWarning(EVENTS) << "Can't find server timestamp in a room event";
+// qCWarning(EVENTS) << formatJson << rep;
+// }
+// if (_senderId.isEmpty())
+// {
+// qCWarning(EVENTS) << "Can't find sender in a room event";
+// qCWarning(EVENTS) << formatJson << rep;
+// }
if (!_txnId.isEmpty())
qCDebug(EVENTS) << "Event transactionId:" << _txnId;
}
diff --git a/events/event.h b/events/event.h
index 8760aa28..7db14100 100644
--- a/events/event.h
+++ b/events/event.h
@@ -43,6 +43,7 @@ namespace QMatrixClient
Type type() const { return _type; }
QByteArray originalJson() const;
+ QJsonObject originalJsonObject() const;
// According to the CS API spec, every event also has
// a "content" object; but since its structure is different for
diff --git a/events/receiptevent.cpp b/events/receiptevent.cpp
index e3478cf1..3d6be9f1 100644
--- a/events/receiptevent.cpp
+++ b/events/receiptevent.cpp
@@ -46,7 +46,7 @@ ReceiptEvent::ReceiptEvent(const QJsonObject& obj)
{
Q_ASSERT(obj["type"].toString() == jsonType);
- const QJsonObject contents = obj["content"].toObject();
+ const QJsonObject contents = contentJson();
_eventsWithReceipts.reserve(static_cast<size_t>(contents.size()));
for( auto eventIt = contents.begin(); eventIt != contents.end(); ++eventIt )
{
@@ -66,5 +66,6 @@ ReceiptEvent::ReceiptEvent(const QJsonObject& obj)
}
_eventsWithReceipts.push_back({eventIt.key(), receipts});
}
+ _unreadMessages = obj["x-qmatrixclient.unread_messages"].toBool();
}
diff --git a/events/receiptevent.h b/events/receiptevent.h
index 1d280822..cbe36b10 100644
--- a/events/receiptevent.h
+++ b/events/receiptevent.h
@@ -41,9 +41,11 @@ namespace QMatrixClient
EventsWithReceipts eventsWithReceipts() const
{ return _eventsWithReceipts; }
+ bool unreadMessages() const { return _unreadMessages; }
private:
EventsWithReceipts _eventsWithReceipts;
+ bool _unreadMessages; // Spec extension for caching purposes
static constexpr const char * jsonType = "m.receipt";
};