diff --git a/src/app/qml/RoomPage.qml b/src/app/qml/RoomPage.qml index e27718ec2..6c0882b5e 100644 --- a/src/app/qml/RoomPage.qml +++ b/src/app/qml/RoomPage.qml @@ -266,6 +266,7 @@ Kirigami.Page { plainText: plainText, mimeType: mimeType, progressInfo: progressInfo, + messageComponentType: messageComponentType, }); contextMenu.popup(); } diff --git a/src/timeline/FileDelegateContextMenu.qml b/src/timeline/FileDelegateContextMenu.qml index 994eb4d56..87f5dddd5 100644 --- a/src/timeline/FileDelegateContextMenu.qml +++ b/src/timeline/FileDelegateContextMenu.qml @@ -33,6 +33,11 @@ DelegateContextMenu { */ required property var progressInfo + /** + * @brief The delegate type of the message. + */ + required property int messageComponentType + DelegateContextMenu.ReplyMessageAction {} Kirigami.Action { @@ -40,7 +45,17 @@ DelegateContextMenu { } QQC2.Action { - text: i18nc("@action:inmenu", "Open Image") + text: { + if (root.messageComponentType === MessageComponentType.Image) { + return i18nc("@action:inmenu", "Open Image"); + } else if (root.messageComponentType === MessageComponentType.Audio) { + return i18nc("@action:inmenu", "Open Audio"); + } else if (root.messageComponentType === MessageComponentType.Video) { + return i18nc("@action:inmenu", "Open Video"); + } else { + return i18nc("@action:inmenu", "Open File"); + } + } icon.name: "document-open" onTriggered: { currentRoom.openEventMediaExternally(root.eventId); @@ -48,7 +63,17 @@ DelegateContextMenu { } QQC2.Action { - text: i18nc("@action:inmenu", "Save Image…") + text: { + if (root.messageComponentType === MessageComponentType.Image) { + return i18nc("@action:inmenu", "Save Image…"); + } else if (root.messageComponentType === MessageComponentType.Audio) { + return i18nc("@action:inmenu", "Save Audio…"); + } else if (root.messageComponentType === MessageComponentType.Video) { + return i18nc("@action:inmenu", "Save Video…"); + } else { + return i18nc("@action:inmenu", "Save File…"); + } + } icon.name: "document-save" onTriggered: { var dialog = saveAsDialog.createObject(QQC2.Overlay.overlay); @@ -58,7 +83,17 @@ DelegateContextMenu { } QQC2.Action { - text: i18nc("@action:inmenu", "Copy Image") + text: { + if (root.messageComponentType === MessageComponentType.Image) { + return i18nc("@action:inmenu", "Copy Image"); + } else if (root.messageComponentType === MessageComponentType.Audio) { + return i18nc("@action:inmenu", "Copy Audio"); + } else if (root.messageComponentType === MessageComponentType.Video) { + return i18nc("@action:inmenu", "Copy Video"); + } else { + return i18nc("@action:inmenu", "Copy File"); + } + } icon.name: "edit-copy" onTriggered: { currentRoom.copyEventMedia(root.eventId);