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;
}
|