summary refs log tree commit diff
path: root/resources/qml
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-07-19 17:45:55 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2021-07-19 17:45:55 +0200
commit11c96664089e1437be1eb0ae8bca6c051da5e950 (patch)
tree3cd5f1af183a926bc6335694639f3dacf397d11d /resources/qml
parentFix replying and editing stickers (diff)
downloadnheko-11c96664089e1437be1eb0ae8bca6c051da5e950.tar.xz
Cache sticker picker
Diffstat (limited to 'resources/qml')
-rw-r--r--resources/qml/MessageInput.qml2
-rw-r--r--resources/qml/emoji/StickerPicker.qml8
2 files changed, 6 insertions, 4 deletions
diff --git a/resources/qml/MessageInput.qml b/resources/qml/MessageInput.qml
index d4f7ca62..415d67a7 100644
--- a/resources/qml/MessageInput.qml
+++ b/resources/qml/MessageInput.qml
@@ -331,7 +331,7 @@ Rectangle {
             image: ":/icons/icons/ui/sticky-note-solid.svg"
             ToolTip.visible: hovered
             ToolTip.text: qsTr("Stickers")
-            onClicked: stickerPopup.visible ? stickerPopup.close() : stickerPopup.show(stickerButton, TimelineManager.completerFor("stickers", room.roomId()), function(row) {
+            onClicked: stickerPopup.visible ? stickerPopup.close() : stickerPopup.show(stickerButton, room.roomId(), function(row) {
                 room.input.sticker(stickerPopup.model.sourceModel, row);
                 TimelineManager.focusMessageInput();
             })
diff --git a/resources/qml/emoji/StickerPicker.qml b/resources/qml/emoji/StickerPicker.qml
index eca302eb..a3d01d7a 100644
--- a/resources/qml/emoji/StickerPicker.qml
+++ b/resources/qml/emoji/StickerPicker.qml
@@ -15,7 +15,7 @@ Menu {
 
     property var callback
     property var colors
-    property alias model: gridView.model
+    property string roomid
     property var textArea
     property real highlightHue: Nheko.colors.highlight.hslHue
     property real highlightSat: Nheko.colors.highlight.hslSaturation
@@ -24,9 +24,9 @@ Menu {
     readonly property int stickerDimPad: 128 + Nheko.paddingSmall
     readonly property int stickersPerRow: 3
 
-    function show(showAt, model_, callback) {
+    function show(showAt, roomid_, callback) {
         console.debug("Showing sticker picker");
-        model = model_;
+        roomid = roomid_;
         stickerPopup.callback = callback;
         popup(showAt ? showAt : null);
     }
@@ -120,6 +120,8 @@ Menu {
             GridView {
                 id: gridView
 
+                model: roomid ? TimelineManager.completerFor("stickers", roomid) : null
+
                 Layout.preferredHeight: cellHeight * 3.5
                 Layout.preferredWidth: stickersPerRow * stickerDimPad + 20
                 Layout.leftMargin: 4