summary refs log tree commit diff
path: root/src/Utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Utils.cpp')
-rw-r--r--src/Utils.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/Utils.cpp b/src/Utils.cpp

index 0ac37d8e..3a90bd50 100644 --- a/src/Utils.cpp +++ b/src/Utils.cpp
@@ -27,6 +27,7 @@ #include <cmark.h> #include "Cache.h" +#include "Cache_p.h" #include "Config.h" #include "EventAccessors.h" #include "Logging.h" @@ -880,3 +881,21 @@ utils::markRoomAsDirect(QString roomid, std::vector<RoomMember> members) }); }); } + +QPair<int, int> +utils::getChildNotificationsForSpace(const QString &spaceId) +{ + auto children = cache::getRoomInfo(cache::client()->getChildRoomIds(spaceId.toStdString())); + QPair<int, int> retVal; + for (const auto &[childId, child] : children) { + if (child.is_space) { + auto temp{utils::getChildNotificationsForSpace(childId)}; + retVal.first += temp.first; + retVal.second += temp.second; + } else { + retVal.first += child.notification_count; + retVal.second += child.highlight_count; + } + } + return retVal; +}