Backport stickerevents
This commit is contained in:
committed by
Carl Schwan
parent
cc2b183fc5
commit
7ff54f62f3
@@ -21,6 +21,7 @@ add_executable(neochat
|
|||||||
devicesmodel.cpp
|
devicesmodel.cpp
|
||||||
filetypesingleton.cpp
|
filetypesingleton.cpp
|
||||||
login.cpp
|
login.cpp
|
||||||
|
stickerevent.cpp
|
||||||
../res.qrc
|
../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