Backport stickerevents
This commit is contained in:
committed by
Carl Schwan
parent
cc2b183fc5
commit
7ff54f62f3
@@ -21,6 +21,7 @@ add_executable(neochat
|
||||
devicesmodel.cpp
|
||||
filetypesingleton.cpp
|
||||
login.cpp
|
||||
stickerevent.cpp
|
||||
../res.qrc
|
||||
)
|
||||
|
||||
|
||||
26
src/stickerevent.cpp
Normal file
26
src/stickerevent.cpp
Normal 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
38
src/stickerevent.h
Normal 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
|
||||
Reference in New Issue
Block a user