diff --git a/imports/NeoChat/Component/Timeline/MessageDelegate.qml b/imports/NeoChat/Component/Timeline/MessageDelegate.qml
index 1d338efae..94ce1e5d8 100644
--- a/imports/NeoChat/Component/Timeline/MessageDelegate.qml
+++ b/imports/NeoChat/Component/Timeline/MessageDelegate.qml
@@ -19,9 +19,18 @@ TimelineContainer {
onReplyClicked: ListView.view.goToEvent(eventID)
hoverComponent: hoverActions
- innerObject: TextDelegate {
+ innerObject: RichLabel {
isEmote: messageDelegate.isEmote
Layout.maximumWidth: messageDelegate.bubbleMaxWidth
- onRequestOpenMessageContext: openMessageContext(model, parent.selectedText)
+
+ TapHandler {
+ acceptedButtons: Qt.RightButton
+ onTapped: openMessageContext(model, parent.selectedText)
+ }
+
+ TapHandler {
+ acceptedButtons: Qt.LeftButton
+ onLongPressed: openMessageContext(model, parent.selectedText)
+ }
}
}
diff --git a/imports/NeoChat/Component/Timeline/ReplyComponent.qml b/imports/NeoChat/Component/Timeline/ReplyComponent.qml
index a4cdc7c50..fee7d1a9c 100644
--- a/imports/NeoChat/Component/Timeline/ReplyComponent.qml
+++ b/imports/NeoChat/Component/Timeline/ReplyComponent.qml
@@ -75,11 +75,10 @@ MouseArea {
Component {
id: textComponent
- TextDelegate {
+ RichLabel {
id: replyText
textMessage: reply.display
textFormat: Text.RichText
- hasContextMenu: false
width: Math.min(implicitWidth, bubbleMaxWidth - Kirigami.Units.largeSpacing * 3)
x: Kirigami.Units.smallSpacing * 3 + replyAvatar.width
}
diff --git a/imports/NeoChat/Component/Timeline/TextDelegate.qml b/imports/NeoChat/Component/Timeline/RichLabel.qml
similarity index 86%
rename from imports/NeoChat/Component/Timeline/TextDelegate.qml
rename to imports/NeoChat/Component/Timeline/RichLabel.qml
index f365ede6a..5c21d41a5 100644
--- a/imports/NeoChat/Component/Timeline/TextDelegate.qml
+++ b/imports/NeoChat/Component/Timeline/RichLabel.qml
@@ -18,10 +18,6 @@ TextEdit {
property string textMessage: model.display
property bool spoilerRevealed: !hasSpoiler.test(textMessage)
- property bool hasContextMenu: true
-
- signal requestOpenMessageContext()
-
ListView.onReused: Qt.binding(() => !hasSpoiler.test(textMessage))
Layout.fillWidth: Config.compactLayout
@@ -77,16 +73,4 @@ a{
enabled: !parent.hoveredLink && !spoilerRevealed
onTapped: spoilerRevealed = true
}
-
- TapHandler {
- acceptedButtons: Qt.RightButton
- onTapped: openMessageContext(model, parent.selectedText)
- enabled: hasContextMenu
- }
-
- TapHandler {
- acceptedButtons: Qt.LeftButton
- onLongPressed: requestOpenMessageContext()
- enabled: hasContextMenu
- }
}
diff --git a/imports/NeoChat/Component/Timeline/qmldir b/imports/NeoChat/Component/Timeline/qmldir
index afec3670d..e1691676e 100644
--- a/imports/NeoChat/Component/Timeline/qmldir
+++ b/imports/NeoChat/Component/Timeline/qmldir
@@ -1,6 +1,6 @@
module NeoChat.Component.Timeline
+RichLabel 1.0 RichLabel.qml
TimelineContainer 1.0 TimelineContainer.qml
-TextDelegate 1.0 TextDelegate.qml
StateDelegate 1.0 StateDelegate.qml
SectionDelegate 1.0 SectionDelegate.qml
ImageDelegate 1.0 ImageDelegate.qml
diff --git a/imports/NeoChat/Menu/Timeline/MessageDelegateContextMenu.qml b/imports/NeoChat/Menu/Timeline/MessageDelegateContextMenu.qml
index 3cd6bc4be..2516b4a70 100644
--- a/imports/NeoChat/Menu/Timeline/MessageDelegateContextMenu.qml
+++ b/imports/NeoChat/Menu/Timeline/MessageDelegateContextMenu.qml
@@ -74,13 +74,15 @@ Loader {
QQC2.Menu {
id: webshortcutmenu
title: i18n("Search for '%1'", webshortcutmodel.trunkatedSearchText)
- property bool isVisible: selectedText && selectedText.length > 0 && webshortcutmodel.enabled
- Component.onCompleted: webshortcutmenu.parent.visible = isVisible
+ property bool isVisible: webshortcutmodel.enabled
+ Component.onCompleted: {
+ webshortcutmenu.parent.visible = isVisible
+ }
onIsVisibleChanged: webshortcutmenu.parent.visible = isVisible
Instantiator {
model: WebShortcutModel {
id: webshortcutmodel
- selectedText: loadRoot.selectedText
+ selectedText: loadRoot.selectedText ? loadRoot.selectedText : loadRoot.message
onOpenUrl: RoomManager.visitNonMatrix(url)
}
delegate: QQC2.MenuItem {
diff --git a/res.qrc b/res.qrc
index 2fd04b91a..c9052658f 100644
--- a/res.qrc
+++ b/res.qrc
@@ -33,7 +33,7 @@
imports/NeoChat/Component/Timeline/qmldir
imports/NeoChat/Component/Timeline/ReplyComponent.qml
imports/NeoChat/Component/Timeline/StateDelegate.qml
- imports/NeoChat/Component/Timeline/TextDelegate.qml
+ imports/NeoChat/Component/Timeline/RichLabel.qml
imports/NeoChat/Component/Timeline/TimelineContainer.qml
imports/NeoChat/Component/Timeline/SectionDelegate.qml
imports/NeoChat/Component/Timeline/VideoDelegate.qml