summary refs log tree commit diff
path: root/src/emoji
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2020-08-31 16:32:14 +0000
committerGitHub <noreply@github.com>2020-08-31 16:32:14 +0000
commiteb554e8266b3c66ead6c8edd0588d2b79a156e03 (patch)
treeb9110fda28fa216c7704808649ee7efc26892b42 /src/emoji
parentMerge pull request #265 from trilene/voip (diff)
parentremove unused includes and use QRegularExpression (diff)
downloadnheko-eb554e8266b3c66ead6c8edd0588d2b79a156e03.tar.xz
Merge pull request #267 from Lurkki14/master
Added emoji completion in text input
Diffstat (limited to 'src/emoji')
-rw-r--r--src/emoji/EmojiSearchModel.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/emoji/EmojiSearchModel.h b/src/emoji/EmojiSearchModel.h
new file mode 100644

index 00000000..1ff5f4e9 --- /dev/null +++ b/src/emoji/EmojiSearchModel.h
@@ -0,0 +1,37 @@ +#pragma once + +#include "EmojiModel.h" + +#include <QDebug> +#include <QEvent> +#include <QSortFilterProxyModel> + +namespace emoji { + +// Map emoji data to searchable data +class EmojiSearchModel : public QSortFilterProxyModel +{ +public: + EmojiSearchModel(QObject *parent = nullptr) + : QSortFilterProxyModel(parent) + { + setSourceModel(new EmojiModel(this)); + } + QVariant data(const QModelIndex &index, int role = Qt::UserRole + 1) const override + { + if (role == Qt::DisplayRole) { + auto emoji = QSortFilterProxyModel::data(index, role).toString(); + return emoji + " :" + + toShortcode(data(index, EmojiModel::ShortName).toString()) + ":"; + } + return QSortFilterProxyModel::data(index, role); + } + +private: + QString toShortcode(QString shortname) const + { + return shortname.replace(" ", "-").replace(":", "-").replace("--", "-").toLower(); + } +}; + +}