summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/Permissions.h2
-rw-r--r--src/timeline/TimelineModel.cpp11
-rw-r--r--src/timeline/TimelineModel.h2
3 files changed, 15 insertions, 0 deletions
diff --git a/src/timeline/Permissions.h b/src/timeline/Permissions.h

index aa10999d..1b3f55e4 100644 --- a/src/timeline/Permissions.h +++ b/src/timeline/Permissions.h
@@ -34,6 +34,8 @@ public: void invalidate(); + const mtx::events::state::PowerLevels &powerlevelEvent() const { return pl; }; + private: QString roomId_; mtx::events::state::PowerLevels pl; diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index 0eec5cae..0e726bde 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -2921,6 +2921,17 @@ TimelineModel::directChatOtherUserId() const return {}; } +mtx::pushrules::PushRuleEvaluator::RoomContext +TimelineModel::pushrulesRoomContext() const +{ + return mtx::pushrules::PushRuleEvaluator::RoomContext{ + .user_display_name = + cache::displayName(room_id_.toStdString(), http::client()->user_id().to_string()), + .member_count = cache::client()->memberCount(room_id_.toStdString()), + .power_levels = permissions_.powerlevelEvent(), + }; +} + RoomSummary * TimelineModel::parentSpace() { diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 8e191556..a4904f4f 100644 --- a/src/timeline/TimelineModel.h +++ b/src/timeline/TimelineModel.h
@@ -336,6 +336,8 @@ public: bool isDirect() const { return roomMemberCount() <= 2; } QString directChatOtherUserId() const; + mtx::pushrules::PushRuleEvaluator::RoomContext pushrulesRoomContext() const; + std::optional<mtx::events::collections::TimelineEvents> eventById(const QString &id) { auto e = events.get(id.toStdString(), "");