Support the order parameter in m.space.child events

Support the order parameter in m.space.child events, with the exception of always putting spaces higher than non-spaces

see https://spec.matrix.org/v1.8/client-server-api/#ordering-of-children-within-a-space for the spec algorithm
This commit is contained in:
James Graham
2024-02-04 19:10:37 +00:00
parent 1854373dd6
commit f9cdd55a4d
5 changed files with 58 additions and 2 deletions

View File

@@ -141,6 +141,22 @@ bool SpaceTreeItem::isSpace() const
return m_isSpace;
}
QJsonObject SpaceTreeItem::childState(const SpaceTreeItem *child) const
{
if (child == nullptr) {
return {};
}
if (child->parentItem() != this) {
return {};
}
for (const auto &childState : m_childStates) {
if (childState->stateKey() == child->id()) {
return childState->fullJson();
}
}
return {};
}
QJsonObject SpaceTreeItem::childStateContent(const SpaceTreeItem *child) const
{
if (child == nullptr) {