From 6cca3dbe3a65ba1010eb18cac0eaa6b4d2658667 Mon Sep 17 00:00:00 2001 From: James Graham Date: Sat, 27 Aug 2022 11:52:45 +0000 Subject: [PATCH] Add the right click menu for image delegates in fullscreen mode Add the right click menu for image delegates in fullscreen mode BUG: 455147 --- imports/NeoChat/Component/FullScreenImage.qml | 19 +++++++++++++++++++ .../Component/Timeline/ImageDelegate.qml | 5 +++-- .../Menu/Timeline/FileDelegateContextMenu.qml | 5 +++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/imports/NeoChat/Component/FullScreenImage.qml b/imports/NeoChat/Component/FullScreenImage.qml index c4d5fe39c..234ee62db 100644 --- a/imports/NeoChat/Component/FullScreenImage.qml +++ b/imports/NeoChat/Component/FullScreenImage.qml @@ -14,6 +14,7 @@ ApplicationWindow { property string blurhash: "" property int imageWidth: -1 property int imageHeight: -1 + property var modelData flags: Qt.FramelessWindowHint | Qt.WA_TranslucentBackground @@ -52,6 +53,24 @@ ApplicationWindow { source: root.blurhash !== "" ? ("image://blurhash/" + root.blurhash) : "" visible: root.blurhash !== "" && parent.status !== Image.Ready } + + TapHandler { + acceptedButtons: Qt.RightButton + onTapped: { + const contextMenu = fileDelegateContextMenu.createObject(parent, { + author: modelData.author, + message: modelData.message, + eventId: modelData.eventId, + source: modelData.source, + file: root.parent, + mimeType: modelData.mimeType, + progressInfo: modelData.progressInfo, + plainMessage: modelData.message, + }); + contextMenu.closeFullscreen.connect(root.destroy) + contextMenu.open(); + } + } } Button { diff --git a/imports/NeoChat/Component/Timeline/ImageDelegate.qml b/imports/NeoChat/Component/Timeline/ImageDelegate.qml index e0d76bde0..c03493d2d 100644 --- a/imports/NeoChat/Component/Timeline/ImageDelegate.qml +++ b/imports/NeoChat/Component/Timeline/ImageDelegate.qml @@ -91,10 +91,11 @@ TimelineContainer { onTapped: { fullScreenImage.createObject(parent, { filename: eventId, - source: model.mediaUrl, + source: mediaUrl, blurhash: model.content.info["xyz.amorgan.blurhash"], imageWidth: content.info.w, - imageHeight: content.info.h + imageHeight: content.info.h, + modelData: model }).showFullScreen(); } } diff --git a/imports/NeoChat/Menu/Timeline/FileDelegateContextMenu.qml b/imports/NeoChat/Menu/Timeline/FileDelegateContextMenu.qml index 2a5623f79..ed57d8cf2 100644 --- a/imports/NeoChat/Menu/Timeline/FileDelegateContextMenu.qml +++ b/imports/NeoChat/Menu/Timeline/FileDelegateContextMenu.qml @@ -14,6 +14,8 @@ import NeoChat.Menu 1.0 MessageDelegateContextMenu { id: root + signal closeFullscreen + required property var file required property var progressInfo required property string mimeType @@ -51,6 +53,7 @@ MessageDelegateContextMenu { icon.name: "mail-replied-symbolic" onTriggered: { chatBoxHelper.replyToMessage(eventId, message, author); + root.closeFullscreen() } }, Kirigami.Action { @@ -60,6 +63,7 @@ MessageDelegateContextMenu { icon.color: "red" onTriggered: { currentRoom.redactEvent(eventId); + root.closeFullscreen() } }, Kirigami.Action { @@ -72,6 +76,7 @@ MessageDelegateContextMenu { title: i18n("Message Source"), width: Kirigami.Units.gridUnit * 25 }); + root.closeFullscreen() } } ]