Give DelegateContextMenu an actual room

This allows me to hide the "Reply" action for read-only rooms. Don't ask
me how it even worked before, I don't know.
This commit is contained in:
Joshua Goins
2026-01-14 21:32:04 -05:00
parent f5c991c55c
commit c15860cac3
4 changed files with 5 additions and 2 deletions

View File

@@ -349,8 +349,9 @@ Kirigami.Page {
});
}
function onShowDelegateMenu(parent: QtObject, eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, selectedText: string, hoveredLink: string) {
function onShowDelegateMenu(parent: QtObject, room: NeoChatRoom, eventId: string, author, messageComponentType, plainText: string, richText: string, mimeType: string, progressInfo, selectedText: string, hoveredLink: string) {
(delegateContextMenu.createObject(parent, {
room: room,
author: author,
eventId: eventId,
plainText: plainText,

View File

@@ -290,6 +290,7 @@ void RoomManager::viewEventMenu(QObject *parent, const RoomEvent *event, NeoChat
}
Q_EMIT showDelegateMenu(parent,
room,
event->id(),
room->qmlSafeMember(event->senderId()),
MessageComponentType::typeForEvent(*event),

View File

@@ -308,6 +308,7 @@ Q_SIGNALS:
* @brief Request to show a menu for the given event.
*/
void showDelegateMenu(QObject *parent,
NeoChatRoom *room,
const QString &eventId,
const NeochatRoomMember *author,
MessageComponentType::Type messageComponentType,

View File

@@ -159,7 +159,7 @@ KirigamiComponents.ConvergentContextMenu {
Kirigami.Action {
id: replyAction
visible: root.messageComponentType !== MessageComponentType.Other || NeoChatConfig.relateAnyEvent
visible: !root.room.readOnly && (root.messageComponentType !== MessageComponentType.Other || NeoChatConfig.relateAnyEvent)
text: i18nc("@action:inmenu", "Reply")
icon.name: "mail-replied-symbolic"
onTriggered: {