Skip to content
Snippets Groups Projects
Commit 3f8bb19b authored by resolritter's avatar resolritter
Browse files

right-click tap handler for replies

parent 8e5060b2
No related branches found
No related tags found
No related merge requests found
Pipeline #1686 passed
......@@ -648,4 +648,38 @@ ScrollView {
}
Platform.Menu {
id: replyContextMenu
property string text
property string link
function show(text_, link_) {
text = text_;
link = link_;
open();
}
Platform.MenuItem {
visible: replyContextMenu.text
enabled: visible
text: qsTr("&Copy")
onTriggered: Clipboard.text = replyContextMenu.text
}
Platform.MenuItem {
visible: replyContextMenu.link
enabled: visible
text: qsTr("Copy &link location")
onTriggered: Clipboard.text = replyContextMenu.link
}
Platform.MenuItem {
visible: true
enabled: visible
text: qsTr("&Go to reply")
onTriggered: chat.model.showEvent(eventId)
}
}
}
......@@ -7,6 +7,7 @@ import QtQuick.Controls 2.3
import QtQuick.Layouts 1.2
import QtQuick.Window 2.13
import im.nheko 1.0
import Qt.labs.platform 1.1 as Platform
Item {
id: r
......@@ -36,11 +37,6 @@ Item {
width: parent.width
height: replyContainer.height
TapHandler {
onSingleTapped: chat.model.showEvent(eventId)
gesturePolicy: TapHandler.ReleaseWithinBounds
}
CursorShape {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
......@@ -62,6 +58,25 @@ Item {
anchors.leftMargin: 4
width: parent.width - 8
TapHandler {
acceptedButtons: Qt.LeftButton
onSingleTapped: chat.model.showEvent(r.eventId)
gesturePolicy: TapHandler.ReleaseWithinBounds
}
TapHandler {
acceptedButtons: Qt.RightButton
onLongPressed: replyContextMenu.show(
reply.child.copyText,
reply.child.linkAt(eventPoint.position.x, eventPoint.position.y - userName_.implicitHeight)
)
onSingleTapped: replyContextMenu.show(
reply.child.copyText,
reply.child.linkAt(eventPoint.position.x, eventPoint.position.y - userName_.implicitHeight)
)
gesturePolicy: TapHandler.ReleaseWithinBounds
}
Text {
id: userName_
......@@ -73,7 +88,6 @@ Item {
onSingleTapped: chat.model.openUserProfile(userId)
gesturePolicy: TapHandler.ReleaseWithinBounds
}
}
MessageDelegate {
......@@ -99,11 +113,11 @@ Item {
callType: r.callType
relatedEventCacheBuster: r.relatedEventCacheBuster
encryptionError: r.encryptionError
// This is disabled so that left clicking the reply goes to its location
enabled: false
width: parent.width
isReply: true
}
}
Rectangle {
......
......@@ -3,6 +3,7 @@
// SPDX-License-Identifier: GPL-3.0-or-later
import ".."
import QtQuick.Controls 2.3
import im.nheko 1.0
MatrixText {
......@@ -35,4 +36,10 @@ MatrixText {
clip: isReply
selectByMouse: !Settings.mobileMode && !isReply
font.pointSize: (Settings.enlargeEmojiOnlyMessages && isOnlyEmoji > 0 && isOnlyEmoji < 4) ? Settings.fontSize * 3 : Settings.fontSize
CursorShape {
enabled: isReply
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment