9 constexpr inline auto FavouriteTag =
"m.favourite"_ls;
10 constexpr inline auto LowPriorityTag =
"m.lowpriority"_ls;
11 constexpr inline auto ServerNoticeTag =
"m.server_notice"_ls;
14 std::optional<
float> order = std::nullopt;
17 inline bool operator<(TagRecord lhs, TagRecord rhs)
21 return lhs.order && (!rhs.order || *lhs.order < *rhs.order);
25 struct JsonObjectConverter<TagRecord> {
26 static void fillFrom(
const QJsonObject& jo, TagRecord& rec)
30 const auto orderJv = jo.value(
"order"_ls);
31 if (orderJv.isDouble())
32 rec.order = fromJson<
float>(orderJv);
33 if (orderJv.isString()) {
35 rec.order = orderJv.toString().toFloat(&ok);
37 rec.order = std::nullopt;
40 static void dumpTo(QJsonObject& jo, TagRecord rec)
42 addParam<IfNotEmpty>(jo, QStringLiteral(
"order"), rec.order);
46 using TagsMap = QHash<QString, TagRecord>;
52 QSet<QString>, ignoredUsers,
"ignored_users")