Qml emoji completer
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;
}
|