Skip to content

Commit

Permalink
Merge pull request #696 from resolritter/reply
Browse files Browse the repository at this point in the history
Right-click tap handler for replies
  • Loading branch information
deepbluev7 authored Sep 3, 2021
2 parents 43703c9 + 3f8bb19 commit 5d6c26c
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 7 deletions.
34 changes: 34 additions & 0 deletions resources/qml/MessageView.qml
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
}

}
28 changes: 21 additions & 7 deletions resources/qml/delegates/Reply.qml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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_

Expand All @@ -73,7 +88,6 @@ Item {
onSingleTapped: chat.model.openUserProfile(userId)
gesturePolicy: TapHandler.ReleaseWithinBounds
}

}

MessageDelegate {
Expand All @@ -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 {
Expand Down
7 changes: 7 additions & 0 deletions resources/qml/delegates/TextMessage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
// SPDX-License-Identifier: GPL-3.0-or-later

import ".."
import QtQuick.Controls 2.3
import im.nheko 1.0

MatrixText {
Expand Down Expand Up @@ -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 comments on commit 5d6c26c

Please sign in to comment.