diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2017-10-26 19:40:59 +0300 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2017-10-26 19:47:54 +0300 |
commit | 2fb03272a8bc7da4943347ea7ecca6070f667bd6 (patch) | |
tree | a5c8c56621259713ac9a475b8a4a1f5ee2beb36c /events/roommessageevent.cpp | |
parent | 6600905fb0704e0d22eb776167750f341e7f3d98 (diff) | |
download | libquotient-2fb03272a8bc7da4943347ea7ecca6070f667bd6.tar.gz libquotient-2fb03272a8bc7da4943347ea7ecca6070f667bd6.zip |
Move out common message event content classes
ImageContent is usable outside of m.room.message (in particular, m.room.avatar
uses the same structure for content. And EventContent::Base is very suitable to
derive from even for standard event content structures (such as in room name
events), let alone non-standard ones.
Also, renamed MessageEventContent to EventContent (for obvious reasons).
Diffstat (limited to 'events/roommessageevent.cpp')
-rw-r--r-- | events/roommessageevent.cpp | 48 |
1 files changed, 1 insertions, 47 deletions
diff --git a/events/roommessageevent.cpp b/events/roommessageevent.cpp index 3fb0226a..82bd07b6 100644 --- a/events/roommessageevent.cpp +++ b/events/roommessageevent.cpp @@ -23,7 +23,7 @@ #include <QtCore/QMimeDatabase> using namespace QMatrixClient; -using namespace MessageEventContent; +using namespace EventContent; using MsgType = RoomMessageEvent::MsgType; @@ -124,20 +124,6 @@ QJsonObject RoomMessageEvent::toJson() const return obj; } -QJsonObject Base::toJson() const -{ - QJsonObject o; - fillJson(&o); - return o; -} - -QJsonObject InfoBase::toInfoJson() const -{ - QJsonObject info; - fillInfoJson(&info); - return info; -} - TextContent::TextContent(const QString& text, const QString& contentType) : Base(QMimeDatabase().mimeTypeForName(contentType)), body(text) { } @@ -167,38 +153,6 @@ void TextContent::fillJson(QJsonObject* json) const json->insert("formatted_body", body); } -FileInfo::FileInfo(const QUrl& u, int payloadSize, const QMimeType& mimeType, - const QString& originalFilename) - : InfoBase(mimeType), url(u), payloadSize(payloadSize) - , originalName(originalFilename) -{ } - -FileInfo::FileInfo(const QUrl& u, const QJsonObject& infoJson, - const QString& originalFilename) - : FileInfo(u, infoJson["size"].toInt(), - QMimeDatabase().mimeTypeForName(infoJson["mimetype"].toString()), - originalFilename) -{ - if (!mimeType.isValid()) - mimeType = QMimeDatabase().mimeTypeForData(QByteArray()); -} - -void FileInfo::fillInfoJson(QJsonObject* infoJson) const -{ - Q_ASSERT(infoJson); - infoJson->insert("size", payloadSize); - infoJson->insert("mimetype", mimeType.name()); -} - -void FileInfo::fillJson(QJsonObject* json) const -{ - Q_ASSERT(json); - json->insert("url", url.toString()); - if (!originalName.isEmpty()) - json->insert("filename", originalName); - json->insert("info", toInfoJson()); -} - LocationContent::LocationContent(const QString& geoUri, const ImageInfo<>& thumbnail) : Thumbnailed<>(thumbnail), geoUri(geoUri) |