From 6b664b054700e25cba3c851c285060300b3d76a7 Mon Sep 17 00:00:00 2001 From: Azhar Momin Date: Sat, 7 Feb 2026 12:37:10 +0530 Subject: [PATCH] Fix context menu not appearing in room media scroll view MessageDelegate calls model.findEvent(root.eventId), which existed in MessageFilterModel but was missing in MediaMessageFilterModel. This adds a findEvent() implementation to MediaMessageFilterModel so the context menu works correctly in the media scroll view. --- src/timeline/models/mediamessagefiltermodel.cpp | 5 +++++ src/timeline/models/mediamessagefiltermodel.h | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/src/timeline/models/mediamessagefiltermodel.cpp b/src/timeline/models/mediamessagefiltermodel.cpp index 3a254b710..f5d520a38 100644 --- a/src/timeline/models/mediamessagefiltermodel.cpp +++ b/src/timeline/models/mediamessagefiltermodel.cpp @@ -87,6 +87,11 @@ QHash MediaMessageFilterModel::roleNames() const return roles; } +const Quotient::RoomEvent *MediaMessageFilterModel::findEvent(const QString &eventId) const +{ + return static_cast(sourceModel())->findEvent(eventId); +} + int MediaMessageFilterModel::getRowForEventId(const QString &eventId) const { for (auto i = 0; i < rowCount(); i++) { diff --git a/src/timeline/models/mediamessagefiltermodel.h b/src/timeline/models/mediamessagefiltermodel.h index ffafd10d1..dc1e4b6c3 100644 --- a/src/timeline/models/mediamessagefiltermodel.h +++ b/src/timeline/models/mediamessagefiltermodel.h @@ -63,5 +63,10 @@ public: */ [[nodiscard]] QHash roleNames() const override; + /** + * @brief Finds the event of the given event ID in the model, returning nullptr if no matches were found. + */ + Q_INVOKABLE const Quotient::RoomEvent *findEvent(const QString &eventId) const; + int getRowForEventId(const QString &eventId) const; };