File indexing completed on 2024-04-28 16:51:48
0001 /* 0002 SPDX-FileCopyrightText: 2022 Weng Xuetian <wegnxt@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 #pragma once 0007 0008 #include <QByteArray> 0009 #include <QDataStream> 0010 #include <QJsonDocument> 0011 #include <QList> 0012 0013 struct Emoji { 0014 QString content; 0015 QString description; 0016 qint32 category; 0017 QStringList annotations; 0018 0019 QString categoryName() const; 0020 }; 0021 0022 inline QDataStream &operator>>(QDataStream &stream, Emoji &emoji) 0023 { 0024 QByteArray buffer; 0025 stream >> buffer; 0026 emoji.content = QString::fromUtf8(buffer); 0027 stream >> buffer; 0028 emoji.description = QString::fromUtf8(buffer); 0029 stream >> emoji.category; 0030 QList<QByteArray> annotationBuffers; 0031 stream >> annotationBuffers; 0032 for (const auto &annotation : annotationBuffers) { 0033 emoji.annotations << QString::fromUtf8(annotation); 0034 } 0035 return stream; 0036 } 0037 0038 struct EmojiDict { 0039 void load(const QString &path); 0040 0041 QList<Emoji> m_emojis; 0042 QMap<QString, int> m_processedEmojis; 0043 };