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;
+}
|