diff options
author | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-01-21 02:04:10 +0100 |
---|---|---|
committer | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2022-01-21 02:04:34 +0100 |
commit | fdff209744ac4c422f63fe2549aa0132df7e6292 (patch) | |
tree | 55ebfcd92da71aa7809f311cc1d2550ff9e51db0 /lib/events/reactionevent.h | |
parent | 142fc5a21f541e2a7592119df075a543527195b9 (diff) | |
download | libquotient-fdff209744ac4c422f63fe2549aa0132df7e6292.tar.gz libquotient-fdff209744ac4c422f63fe2549aa0132df7e6292.zip |
Redo EventRelation; deprecate RelatesTo
RelatesTo and EventRelation have been two means to the same end in two
different contexts. (Modernised) EventRelation is the one used now both
for ReactionEvent and EventContent::TextContent. The modernisation
mostly boils down to using inline variables instead of functions to
return relation types and switching to QLatin1String from const char*
(because we know exactly that those constants are Latin-1 and
QLatin1String is more efficient than const char* to compare/convert to
QString).
Diffstat (limited to 'lib/events/reactionevent.h')
-rw-r--r-- | lib/events/reactionevent.h | 32 |
1 files changed, 2 insertions, 30 deletions
diff --git a/lib/events/reactionevent.h b/lib/events/reactionevent.h index ce11eaed..b3cb3ca7 100644 --- a/lib/events/reactionevent.h +++ b/lib/events/reactionevent.h @@ -4,38 +4,10 @@ #pragma once #include "roomevent.h" +#include "eventrelation.h" namespace Quotient { -struct QUOTIENT_API EventRelation { - using reltypeid_t = const char*; - static constexpr reltypeid_t Reply() { return "m.in_reply_to"; } - static constexpr reltypeid_t Annotation() { return "m.annotation"; } - static constexpr reltypeid_t Replacement() { return "m.replace"; } - - QString type; - QString eventId; - QString key = {}; // Only used for m.annotation for now - - static EventRelation replyTo(QString eventId) - { - return { Reply(), std::move(eventId) }; - } - static EventRelation annotate(QString eventId, QString key) - { - return { Annotation(), std::move(eventId), std::move(key) }; - } - static EventRelation replace(QString eventId) - { - return { Replacement(), std::move(eventId) }; - } -}; -template <> -struct QUOTIENT_API JsonObjectConverter<EventRelation> { - static void dumpTo(QJsonObject& jo, const EventRelation& pod); - static void fillFrom(const QJsonObject& jo, EventRelation& pod); -}; - class QUOTIENT_API ReactionEvent : public RoomEvent { public: DEFINE_EVENT_TYPEID("m.reaction", ReactionEvent) @@ -47,7 +19,7 @@ public: explicit ReactionEvent(const QJsonObject& obj) : RoomEvent(typeId(), obj) {} EventRelation relation() const { - return contentPart<EventRelation>("m.relates_to"_ls); + return contentPart<EventRelation>(RelatesToKey); } }; REGISTER_EVENT_TYPE(ReactionEvent) |