summary refs log tree commit diff
path: root/src/emoji
diff options
context:
space:
mode:
authorDeepBlueV7.X <nicolas.werner@hotmail.de>2020-09-03 18:11:17 +0000
committerGitHub <noreply@github.com>2020-09-03 18:11:17 +0000
commit657f4073e98176dab3de85a3868ed633d8544ede (patch)
tree5614ee224aa8acb0fa492a154f7e456ad4d33990 /src/emoji
parentAdd support for Encrypted to-device verification messages (diff)
parentFix endless pagination, when old history is inaccessible (diff)
downloadnheko-657f4073e98176dab3de85a3868ed633d8544ede.tar.xz
Merge branch 'master' into device-verification
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(); + } +}; + +}