aboutsummaryrefslogtreecommitdiff
path: root/events/tagevent.cpp
diff options
context:
space:
mode:
authorKitsune Ral <Kitsune-Ral@users.sf.net>2018-02-26 09:07:16 +0900
committerKitsune Ral <Kitsune-Ral@users.sf.net>2018-02-26 09:07:16 +0900
commit91cc0e8db0006beeb91b9e007cd21343984dfb6a (patch)
tree7a79286d7c6e5a99644c3f7141e1cdc8e2459416 /events/tagevent.cpp
parente77a53946805649be99f8c0f6ee9c00702348132 (diff)
parentec412621d71b1a7758b15d2b3c5cd5e7b2081ab1 (diff)
downloadlibquotient-91cc0e8db0006beeb91b9e007cd21343984dfb6a.tar.gz
libquotient-91cc0e8db0006beeb91b9e007cd21343984dfb6a.zip
Merge branch 'kitsune-account-data'
Diffstat (limited to 'events/tagevent.cpp')
-rw-r--r--events/tagevent.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/events/tagevent.cpp b/events/tagevent.cpp
new file mode 100644
index 00000000..9f381c76
--- /dev/null
+++ b/events/tagevent.cpp
@@ -0,0 +1,42 @@
+#include "tagevent.h"
+
+using namespace QMatrixClient;
+
+TagRecord::TagRecord(const QJsonObject& json)
+ : order(json.value("order").toString())
+{ }
+
+TagEvent::TagEvent(const QJsonObject& obj)
+ : Event(Type::Tag, obj)
+{
+ Q_ASSERT(obj["type"].toString() == TypeId);
+}
+
+QStringList TagEvent::tagNames() const
+{
+ return tagsObject().keys();
+}
+
+QHash<QString, TagRecord> TagEvent::tags() const
+{
+ QHash<QString, TagRecord> result;
+ auto allTags { tagsObject() };
+ for (auto it = allTags.begin(); it != allTags.end(); ++ it)
+ result.insert(it.key(), TagRecord(it.value().toObject()));
+ return result;
+}
+
+bool TagEvent::isFavourite() const
+{
+ return tagsObject().contains("m.favourite");
+}
+
+bool TagEvent::isLowPriority() const
+{
+ return tagsObject().contains("m.lowpriority");
+}
+
+QJsonObject TagEvent::tagsObject() const
+{
+ return contentJson().value("tags").toObject();
+}