summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2020-11-20 04:33:11 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2020-11-25 19:05:12 +0100
commit094c0b09abba70e5e4cec5740f918ae56971f3e7 (patch)
tree47975f5972a513ced328ee9c363549c840fad30d /src
parentSimple prefix match for completions (diff)
downloadnheko-094c0b09abba70e5e4cec5740f918ae56971f3e7.tar.xz
Qml emoji completer
Diffstat (limited to 'src')
-rw-r--r--src/emoji/EmojiModel.cpp4
-rw-r--r--src/timeline/InputBar.cpp6
2 files changed, 10 insertions, 0 deletions
diff --git a/src/emoji/EmojiModel.cpp b/src/emoji/EmojiModel.cpp
index b6a985b8..85c2dd34 100644
--- a/src/emoji/EmojiModel.cpp
+++ b/src/emoji/EmojiModel.cpp
@@ -3,6 +3,8 @@
 #include <Cache.h>
 #include <MatrixClient.h>
 
+#include "CompletionModelRoles.h"
+
 using namespace emoji;
 
 QHash<int, QByteArray>
@@ -35,10 +37,12 @@ EmojiModel::data(const QModelIndex &index, int role) const
         if (hasIndex(index.row(), index.column(), index.parent())) {
                 switch (role) {
                 case Qt::DisplayRole:
+                case CompletionModel::CompletionRole:
                 case static_cast<int>(EmojiModel::Roles::Unicode):
                         return Provider::emoji[index.row()].unicode;
 
                 case Qt::ToolTipRole:
+                case CompletionModel::SearchRole:
                 case static_cast<int>(EmojiModel::Roles::ShortName):
                         return Provider::emoji[index.row()].shortName;
 
diff --git a/src/timeline/InputBar.cpp b/src/timeline/InputBar.cpp
index 641d8379..5c8f0f11 100644
--- a/src/timeline/InputBar.cpp
+++ b/src/timeline/InputBar.cpp
@@ -25,6 +25,7 @@
 #include "Utils.h"
 #include "dialogs/PlaceCall.h"
 #include "dialogs/PreviewUploadOverlay.h"
+#include "emoji/EmojiModel.h"
 
 #include "blurhash.hpp"
 
@@ -173,6 +174,11 @@ InputBar::completerFor(QString completerName)
                 auto proxy     = new CompletionProxyModel(userModel);
                 userModel->setParent(proxy);
                 return proxy;
+        } else if (completerName == "emoji") {
+                auto emojiModel = new emoji::EmojiModel();
+                auto proxy      = new CompletionProxyModel(emojiModel);
+                emojiModel->setParent(proxy);
+                return proxy;
         }
         return nullptr;
 }