diff --git a/resources/qml/TimelineRow.qml b/resources/qml/TimelineRow.qml
index 07831c59..f2e3e12b 100644
--- a/resources/qml/TimelineRow.qml
+++ b/resources/qml/TimelineRow.qml
@@ -87,6 +87,8 @@ MouseArea {
ToolTip.visible: hovered
ToolTip.text: qsTr("React")
emojiPicker: emojiPopup
+ room_id: model.roomId
+ event_id: model.id
// onClicked: chat.model.reactAction(model.id)
}
ImageButton {
diff --git a/resources/qml/TimelineView.qml b/resources/qml/TimelineView.qml
index 721fd2b8..3da2f09c 100644
--- a/resources/qml/TimelineView.qml
+++ b/resources/qml/TimelineView.qml
@@ -46,6 +46,9 @@ Page {
category: Emoji.Category.People
sourceModel: EmojiModel {}
}
+ Component.onCompleted: {
+ emojiPopup.picked.connect(timelineManager.queueReactionMessage)
+ }
}
Menu {
diff --git a/resources/qml/emoji/EmojiButton.qml b/resources/qml/emoji/EmojiButton.qml
index 0940adfe..ce856db4 100644
--- a/resources/qml/emoji/EmojiButton.qml
+++ b/resources/qml/emoji/EmojiButton.qml
@@ -8,9 +8,11 @@ import "../"
ImageButton {
property var colors: currentActivePalette
property var emojiPicker
+ property string room_id
+ property string event_id
image: ":/icons/icons/ui/smile.png"
id: emojiButton
- onClicked: emojiPicker.visible ? emojiPicker.close() : emojiPicker.show(emojiButton)
+ onClicked: emojiPicker.visible ? emojiPicker.close() : emojiPicker.show(emojiButton, room_id, event_id)
}
\ No newline at end of file
diff --git a/resources/qml/emoji/EmojiPicker.qml b/resources/qml/emoji/EmojiPicker.qml
index 3a0eb365..8618e63f 100644
--- a/resources/qml/emoji/EmojiPicker.qml
+++ b/resources/qml/emoji/EmojiPicker.qml
@@ -10,12 +10,19 @@ import "../"
Popup {
- function show(showAt) {
+ function show(showAt, room_id, event_id) {
+ console.debug("Showing emojiPicker for " + event_id + "in room " + room_id)
parent = showAt
x = Math.round((showAt.width - width) / 2)
y = showAt.height
+ emojiPopup.room_id = room_id
+ emojiPopup.event_id = event_id
open()
}
+ signal picked(string room_id, string event_id, string key)
+
+ property string room_id
+ property string event_id
property var colors
property alias model: gridView.model
property var textArea
@@ -80,7 +87,7 @@ Popup {
ToolTip.text: model.shortName
ToolTip.visible: hovered
- // give the emoji a little oomf
+ // give the emoji a little oomf
DropShadow {
width: parent.width;
height: parent.height;
@@ -92,7 +99,10 @@ Popup {
source: parent.contentItem
}
// TODO: emit a signal and maybe add favorites at some point?
- //onClicked: textArea.insert(textArea.cursorPosition, modelData.unicode)
+ onClicked: {
+ console.debug("Picked " + model.unicode + "in response to " + emojiPopup.event_id + " in room " + emojiPopup.room_id)
+ emojiPopup.picked(emojiPopup.room_id, emojiPopup.event_id, model.unicode)
+ }
}
// Search field
|