Merge pull request #696 from resolritter/reply

Right-click tap handler for replies
pull/709/head
DeepBlueV7.X 3 years ago committed by GitHub
commit 5d6c26c8c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 34
      resources/qml/MessageView.qml
  2. 28
      resources/qml/delegates/Reply.qml
  3. 7
      resources/qml/delegates/TextMessage.qml

@ -650,4 +650,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
}
}

Loading…
Cancel
Save