From c15860cac3f591b570c6927030968ac9103dad86 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Wed, 14 Jan 2026 21:32:04 -0500 Subject: [PATCH] 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. --- src/app/qml/RoomPage.qml | 3 ++- src/app/roommanager.cpp | 1 + src/app/roommanager.h | 1 + src/timeline/DelegateContextMenu.qml | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/app/qml/RoomPage.qml b/src/app/qml/RoomPage.qml index 16503d1e7..a4816559d 100644 --- a/src/app/qml/RoomPage.qml +++ b/src/app/qml/RoomPage.qml @@ -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, diff --git a/src/app/roommanager.cpp b/src/app/roommanager.cpp index 73da9aa10..fce77fef7 100644 --- a/src/app/roommanager.cpp +++ b/src/app/roommanager.cpp @@ -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), diff --git a/src/app/roommanager.h b/src/app/roommanager.h index ff569e419..f765969d5 100644 --- a/src/app/roommanager.h +++ b/src/app/roommanager.h @@ -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, diff --git a/src/timeline/DelegateContextMenu.qml b/src/timeline/DelegateContextMenu.qml index 7771b6a43..22360381b 100644 --- a/src/timeline/DelegateContextMenu.qml +++ b/src/timeline/DelegateContextMenu.qml @@ -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: {