Cache sticker picker

This commit is contained in:
Nicolas Werner 2021-07-19 17:45:55 +02:00
parent 3b56ff2d85
commit 11c9666408
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9
2 changed files with 6 additions and 4 deletions

View file

@ -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();
})

View file

@ -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