diff options
author | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-02-26 09:07:16 +0900 |
---|---|---|
committer | Kitsune Ral <Kitsune-Ral@users.sf.net> | 2018-02-26 09:07:16 +0900 |
commit | 91cc0e8db0006beeb91b9e007cd21343984dfb6a (patch) | |
tree | 7a79286d7c6e5a99644c3f7141e1cdc8e2459416 /events/tagevent.cpp | |
parent | e77a53946805649be99f8c0f6ee9c00702348132 (diff) | |
parent | ec412621d71b1a7758b15d2b3c5cd5e7b2081ab1 (diff) | |
download | libquotient-91cc0e8db0006beeb91b9e007cd21343984dfb6a.tar.gz libquotient-91cc0e8db0006beeb91b9e007cd21343984dfb6a.zip |
Merge branch 'kitsune-account-data'
Diffstat (limited to 'events/tagevent.cpp')
-rw-r--r-- | events/tagevent.cpp | 42 |
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(); +} |