summary refs log tree commit diff
path: root/resources
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2021-12-27 06:23:36 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2021-12-27 06:23:36 +0100
commitea6b19b3077dad0280e32aa762137728432e01f4 (patch)
tree038043c9f7796a498b86bfd514533e734b56d805 /resources
parentAdd man page (#851) (diff)
downloadnheko-ea6b19b3077dad0280e32aa762137728432e01f4.tar.xz
Add an ugly custom emote completer using ~
Diffstat (limited to 'resources')
-rw-r--r--resources/qml/Completer.qml38
-rw-r--r--resources/qml/MessageInput.qml9
2 files changed, 40 insertions, 7 deletions
diff --git a/resources/qml/Completer.qml b/resources/qml/Completer.qml

index 6bde67fa..c58cda14 100644 --- a/resources/qml/Completer.qml +++ b/resources/qml/Completer.qml
@@ -69,10 +69,7 @@ Popup { onCompleterNameChanged: { if (completerName) { - if (completerName == "user") - completer = TimelineManager.completerFor(completerName, room.roomId); - else - completer = TimelineManager.completerFor(completerName); + completer = TimelineManager.completerFor(completerName, room.roomId); completer.setSearchString(""); } else { completer = undefined; @@ -183,6 +180,39 @@ Popup { } DelegateChoice { + roleValue: "customEmoji" + + RowLayout { + id: del + + anchors.centerIn: parent + spacing: rowSpacing + + Avatar { + height: popup.avatarHeight + width: popup.avatarWidth + displayName: model.shortcode + //userid: model.shortcode + url: model.url.replace("mxc://", "image://MxcImage/") + onClicked: popup.completionClicked(completer.completionAt(model.index)) + crop: false + } + + Label { + text: model.shortcode + color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.text + } + + Label { + text: "(" + model.packname + ")" + color: model.index == popup.currentIndex ? Nheko.colors.highlightedText : Nheko.colors.buttonText + } + + } + + } + + DelegateChoice { roleValue: "room" RowLayout { diff --git a/resources/qml/MessageInput.qml b/resources/qml/MessageInput.qml
index 0d38d026..e5317605 100644 --- a/resources/qml/MessageInput.qml +++ b/resources/qml/MessageInput.qml
@@ -101,6 +101,7 @@ Rectangle { } function openCompleter(pos, type) { + if (popup.opened) return; completerTriggeredAt = pos; popup.completerName = type; popup.open(); @@ -166,13 +167,12 @@ Rectangle { messageInput.text = room.input.nextText(); } else if (event.key == Qt.Key_At) { messageInput.openCompleter(selectionStart, "user"); - popup.open(); } else if (event.key == Qt.Key_Colon) { messageInput.openCompleter(selectionStart, "emoji"); - popup.open(); } else if (event.key == Qt.Key_NumberSign) { messageInput.openCompleter(selectionStart, "roomAliases"); - popup.open(); + } else if (event.text == "~") { + messageInput.openCompleter(selectionStart, "customEmoji"); } else if (event.key == Qt.Key_Escape && popup.opened) { popup.completerName = ""; popup.close(); @@ -214,6 +214,9 @@ Rectangle { } else if (t == ':') { messageInput.openCompleter(pos, "emoji"); return ; + } else if (t == '~') { + messageInput.openCompleter(pos, "customEmoji"); + return ; } pos = pos - 1; }