aboutsummaryrefslogtreecommitdiff
path: root/lib/events
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2020-07-26 09:26:19 +0200
committerKitsune Ral <Kitsune-Ral@users.sf.net>2020-07-26 09:26:19 +0200
commit176b260bfaf8f575560bfe3fb520ee3fa0ad3a7a (patch)
tree82fc4851e6a3704527756434877fbbe2dde895a4 /lib/events
parent55d8d9c073b732e296c72bc8a747bbd691931209 (diff)
downloadlibquotient-176b260bfaf8f575560bfe3fb520ee3fa0ad3a7a.tar.gz
libquotient-176b260bfaf8f575560bfe3fb520ee3fa0ad3a7a.zip
RoomAvatarEvent: add constructors from content
So that room avatar events could also be sent, not only received.
Diffstat (limited to 'lib/events')
-rw-r--r--lib/events/eventcontent.h2
-rw-r--r--lib/events/roomavatarevent.h12
2 files changed, 14 insertions, 0 deletions
diff --git a/lib/events/eventcontent.h b/lib/events/eventcontent.h
index e7656de5..0d4c047e 100644
--- a/lib/events/eventcontent.h
+++ b/lib/events/eventcontent.h
@@ -214,6 +214,8 @@ namespace EventContent {
template <typename InfoT>
class UrlWithThumbnailContent : public UrlBasedContent<InfoT> {
public:
+ // NB: when using inherited constructors, thumbnail has to be
+ // initialised separately
using UrlBasedContent<InfoT>::UrlBasedContent;
explicit UrlWithThumbnailContent(const QJsonObject& json)
: UrlBasedContent<InfoT>(json), thumbnail(InfoT::originalInfoJson)
diff --git a/lib/events/roomavatarevent.h b/lib/events/roomavatarevent.h
index 4013773c..c2100eaa 100644
--- a/lib/events/roomavatarevent.h
+++ b/lib/events/roomavatarevent.h
@@ -31,6 +31,18 @@ public:
DEFINE_EVENT_TYPEID("m.room.avatar", RoomAvatarEvent)
explicit RoomAvatarEvent(const QJsonObject& obj) : StateEvent(typeId(), obj)
{}
+ explicit RoomAvatarEvent(const EventContent::ImageContent& avatar)
+ : StateEvent(typeId(), matrixTypeId(), QString(), avatar)
+ {}
+ // A replica of EventContent::ImageInfo constructor
+ explicit RoomAvatarEvent(const QUrl& u, qint64 fileSize = -1,
+ QMimeType mimeType = {},
+ const QSize& imageSize = {},
+ const QString& originalFilename = {})
+ : RoomAvatarEvent(EventContent::ImageContent {
+ u, fileSize, mimeType, imageSize, originalFilename })
+ {}
+
QUrl url() const { return content().url; }
};
REGISTER_EVENT_TYPE(RoomAvatarEvent)