diff --git a/resources/qml/TimelineRow.qml b/resources/qml/TimelineRow.qml
index e13cde28..05c69112 100644
--- a/resources/qml/TimelineRow.qml
+++ b/resources/qml/TimelineRow.qml
@@ -17,11 +17,11 @@ MouseArea {
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: {
if (mouse.button === Qt.RightButton)
- messageContextMenu.show(model.id, model.type, row)
+ messageContextMenu.show(model.id, model.type, model.isEncrypted, row)
}
onPressAndHold: {
if (mouse.source === Qt.MouseEventNotSynthesized)
- messageContextMenu.show(model.id, model.type, row)
+ messageContextMenu.show(model.id, model.type, model.isEncrypted, row)
}
RowLayout {
@@ -97,8 +97,7 @@ MouseArea {
ToolTip.visible: hovered
ToolTip.text: qsTr("Options")
- onClicked: messageContextMenu.show(model.id, model.type, optionsButton)
-
+ onClicked: messageContextMenu.show(model.id, model.type, model.isEncrypted, optionsButton)
}
Label {
diff --git a/resources/qml/TimelineView.qml b/resources/qml/TimelineView.qml
index 86b511b2..cad341b5 100644
--- a/resources/qml/TimelineView.qml
+++ b/resources/qml/TimelineView.qml
@@ -33,14 +33,16 @@ Page {
id: messageContextMenu
modal: true
- function show(eventId_, eventType_, showAt) {
+ function show(eventId_, eventType_, isEncrypted_, showAt) {
eventId = eventId_
eventType = eventType_
+ isEncrypted = isEncrypted_
popup(showAt)
}
property string eventId
property int eventType
+ property bool isEncrypted
MenuItem {
text: qsTr("Reply")
@@ -58,11 +60,18 @@ Page {
onTriggered: chat.model.viewRawMessage(messageContextMenu.eventId)
}
MenuItem {
+ visible: messageContextMenu.isEncrypted
+ height: visible ? implicitHeight : 0
+ text: qsTr("View decrypted raw message")
+ onTriggered: chat.model.viewDecryptedRawMessage(messageContextMenu.eventId)
+ }
+ MenuItem {
text: qsTr("Redact message")
onTriggered: chat.model.redactEvent(messageContextMenu.eventId)
}
MenuItem {
visible: messageContextMenu.eventType == MtxEvent.ImageMessage || messageContextMenu.eventType == MtxEvent.VideoMessage || messageContextMenu.eventType == MtxEvent.AudioMessage || messageContextMenu.eventType == MtxEvent.FileMessage || messageContextMenu.eventType == MtxEvent.Sticker
+ height: visible ? implicitHeight : 0
text: qsTr("Save as")
onTriggered: timelineManager.timeline.saveMedia(messageContextMenu.eventId)
}
|