aboutsummaryrefslogtreecommitdiff
path: root/room.h
diff options
context:
space:
mode:
Diffstat (limited to 'room.h')
-rw-r--r--room.h22
1 files changed, 17 insertions, 5 deletions
diff --git a/room.h b/room.h
index 702c22f3..bef66b86 100644
--- a/room.h
+++ b/room.h
@@ -38,6 +38,8 @@ namespace QMatrixClient
class User;
class MemberSorter;
class LeaveRoomJob;
+ class RedactEventJob;
+ class Room;
class TimelineItem
{
@@ -49,9 +51,17 @@ namespace QMatrixClient
TimelineItem(RoomEvent* e, index_t number) : evt(e), idx(number) { }
RoomEvent* event() const { return evt.get(); }
- RoomEvent* operator->() const { return event(); } //< Synonym for event()
+ RoomEvent* operator->() const { return event(); } //< Synonym for event()->
index_t index() const { return idx; }
+ // Used for event redaction
+ RoomEvent* replaceEvent(RoomEvent* other)
+ {
+ auto* old = evt.release();
+ evt.reset(other);
+ return old;
+ }
+
private:
std::unique_ptr<RoomEvent> evt;
index_t idx;
@@ -176,8 +186,8 @@ namespace QMatrixClient
void markAllMessagesAsRead();
signals:
- void aboutToAddHistoricalMessages(const RoomEvents& events);
- void aboutToAddNewMessages(const RoomEvents& events);
+ void aboutToAddHistoricalMessages(RoomEventsView events);
+ void aboutToAddNewMessages(RoomEventsView events);
void addedMessages();
/**
@@ -200,12 +210,14 @@ namespace QMatrixClient
void lastReadEventChanged(User* user);
void readMarkerMoved();
void unreadMessagesChanged(Room* room);
+ void replacedEvent(RoomEvent* before, RoomEvent* after);
protected:
- virtual void doAddNewMessageEvents(const RoomEvents& events);
- virtual void doAddHistoricalMessageEvents(const RoomEvents& events);
+ virtual void doAddNewMessageEvents(RoomEventsView events);
+ virtual void doAddHistoricalMessageEvents(RoomEventsView events);
virtual void processStateEvents(const RoomEvents& events);
virtual void processEphemeralEvent(Event* event);
+ virtual void onRedaction(RoomEvent*, TimelineItem&) { }
private:
class Private;