diff --git a/src/foreigntypes.h b/src/foreigntypes.h index b55333686..02f6e71ea 100644 --- a/src/foreigntypes.h +++ b/src/foreigntypes.h @@ -38,9 +38,3 @@ struct ForeignSSSSHandler { QML_FOREIGN(Quotient::SSSSHandler) QML_NAMED_ELEMENT(SSSSHandler) }; - -struct RoomMemberForeign { - Q_GADGET - QML_FOREIGN(Quotient::RoomMember) - QML_NAMED_ELEMENT(RoomMember) -}; diff --git a/src/qml/CodeMaximizeComponent.qml b/src/qml/CodeMaximizeComponent.qml index 84add4422..0b01e2b36 100644 --- a/src/qml/CodeMaximizeComponent.qml +++ b/src/qml/CodeMaximizeComponent.qml @@ -17,7 +17,7 @@ Components.AbstractMaximizeComponent { /** * @brief The message author. */ - property RoomMember author + property NeochatRoomMember author /** * @brief The timestamp of the message. diff --git a/src/roommanager.cpp b/src/roommanager.cpp index 285321ae0..af9af2749 100644 --- a/src/roommanager.cpp +++ b/src/roommanager.cpp @@ -203,14 +203,14 @@ void RoomManager::viewEventSource(const QString &eventId) Q_EMIT showEventSource(eventId); } -void RoomManager::viewEventMenu(const QString &eventId, NeoChatRoom *room, const QString &selectedText) +void RoomManager::viewEventMenu(const QString &eventId, NeoChatRoom *room, NeochatRoomMember *sender, const QString &selectedText) { const auto &event = **room->findInTimeline(eventId); const auto eventHandler = EventHandler(room, &event); if (eventHandler.getMediaInfo().contains("mimeType"_ls)) { Q_EMIT showFileMenu(eventId, - new NeochatRoomMember(room, eventId), + sender, eventHandler.messageComponentType(), eventHandler.getPlainBody(), eventHandler.getMediaInfo()["mimeType"_ls].toString(), @@ -218,12 +218,7 @@ void RoomManager::viewEventMenu(const QString &eventId, NeoChatRoom *room, const return; } - Q_EMIT showMessageMenu(eventId, - new NeochatRoomMember(room, eventId), - eventHandler.messageComponentType(), - eventHandler.getPlainBody(), - eventHandler.getRichBody(), - selectedText); + Q_EMIT showMessageMenu(eventId, sender, eventHandler.messageComponentType(), eventHandler.getPlainBody(), eventHandler.getRichBody(), selectedText); } bool RoomManager::hasOpenRoom() const diff --git a/src/roommanager.h b/src/roommanager.h index 4e908b0d4..08f80b136 100644 --- a/src/roommanager.h +++ b/src/roommanager.h @@ -232,7 +232,7 @@ public: /** * @brief Show a context menu for the given event. */ - Q_INVOKABLE void viewEventMenu(const QString &eventId, NeoChatRoom *room, const QString &selectedText = {}); + Q_INVOKABLE void viewEventMenu(const QString &eventId, NeoChatRoom *room, NeochatRoomMember *sender, const QString &selectedText = {}); ChatDocumentHandler *chatDocumentHandler() const; void setChatDocumentHandler(ChatDocumentHandler *handler); diff --git a/src/timeline/CodeComponent.qml b/src/timeline/CodeComponent.qml index 1972e6ee9..3a6882480 100644 --- a/src/timeline/CodeComponent.qml +++ b/src/timeline/CodeComponent.qml @@ -20,7 +20,7 @@ QQC2.Control { * * @sa Quotient::RoomMember */ - required property RoomMember author + required property NeochatRoomMember author /** * @brief The timestamp of the message. diff --git a/src/timeline/HiddenDelegate.qml b/src/timeline/HiddenDelegate.qml index 4f4a3a2ec..c0438f478 100644 --- a/src/timeline/HiddenDelegate.qml +++ b/src/timeline/HiddenDelegate.qml @@ -26,7 +26,7 @@ TimelineDelegate { /** * @brief The message author. */ - required property RoomMember author + required property NeochatRoomMember author width: parent?.width rightPadding: NeoChatConfig.compactLayout && root.ListView.view.width >= Kirigami.Units.gridUnit * 20 ? Kirigami.Units.gridUnit * 2 + Kirigami.Units.largeSpacing : Kirigami.Units.largeSpacing @@ -88,7 +88,7 @@ TimelineDelegate { QtObject { id: _private function showMessageMenu() { - RoomManager.viewEventMenu(root.eventId, root.room, ""); + RoomManager.viewEventMenu(root.eventId, root.room, root.author, ""); } } } diff --git a/src/timeline/MessageDelegate.qml b/src/timeline/MessageDelegate.qml index f717dfc6c..f2259b665 100644 --- a/src/timeline/MessageDelegate.qml +++ b/src/timeline/MessageDelegate.qml @@ -50,7 +50,7 @@ TimelineDelegate { * * @sa Quotient::RoomMember */ - required property var author + required property NeochatRoomMember author /** * @brief The model to visualise the content of the message. @@ -365,7 +365,7 @@ TimelineDelegate { property bool showUserMessageOnRight: NeoChatConfig.showLocalMessagesOnRight && root.author.isLocalMember && !NeoChatConfig.compactLayout && !root.alwaysFillWidth function showMessageMenu() { - RoomManager.viewEventMenu(root.eventId, root.room, root.selectedText); + RoomManager.viewEventMenu(root.eventId, root.room, root.author, root.selectedText); } } }