Backport stickerevents

This commit is contained in:
Tobias Fella
2021-02-16 21:29:21 +01:00
committed by Carl Schwan
parent cc2b183fc5
commit 7ff54f62f3
3 changed files with 65 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ add_executable(neochat
devicesmodel.cpp
filetypesingleton.cpp
login.cpp
stickerevent.cpp
../res.qrc
)

26
src/stickerevent.cpp Normal file
View File

@@ -0,0 +1,26 @@
// SDPX-FileCopyrightText: 2020 Carl Schwan <carlschwan@kde.org>
// SPDX-License-Identifier: LGPL-2.1-or-later
#include "stickerevent.h"
using namespace Quotient;
StickerEvent::StickerEvent(const QJsonObject &obj)
: RoomEvent(typeId(), obj)
, m_imageContent(EventContent::ImageContent(obj["content"_ls].toObject()))
{}
QString StickerEvent::body() const
{
return content<QString>("body"_ls);
}
const EventContent::ImageContent &StickerEvent::image() const
{
return m_imageContent;
}
QUrl StickerEvent::url() const
{
return m_imageContent.url;
}

38
src/stickerevent.h Normal file
View File

@@ -0,0 +1,38 @@
// SDPX-FileCopyrightText: 2020 Carl Schwan <carlschwan@kde.org>
// SPDX-License-Identifier: LGPL-2.1-or-later
#pragma once
#include "events/roomevent.h"
#include "events/eventcontent.h"
namespace Quotient {
/// Sticker messages are specialised image messages that are displayed without
/// controls (e.g. no "download" link, or light-box view on click, as would be
/// displayed for for m.image events).
class StickerEvent : public RoomEvent
{
public:
DEFINE_EVENT_TYPEID("m.sticker", StickerEvent)
explicit StickerEvent(const QJsonObject &obj);
/// \brief A textual representation or associated description of the
/// sticker image.
///
/// This could be the alt text of the original image, or a message to
/// accompany and further describe the sticker.
QString body() const;
/// \brief Metadata about the image referred to in url including a
/// thumbnail representation.
const EventContent::ImageContent &image() const;
/// \brief The URL to the sticker image. This must be a valid mxc:// URI.
QUrl url() const;
private:
EventContent::ImageContent m_imageContent;
};
REGISTER_EVENT_TYPE(StickerEvent)
} // namespace Quotient