File indexing completed on 2024-06-16 04:27:57
0001 /* 0002 SPDX-FileCopyrightText: 2018-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "textemoticonscore_export.h" 0010 #include <QDebug> 0011 #include <QString> 0012 namespace TextEmoticonsCore 0013 { 0014 /** 0015 * @brief The UnicodeEmoticon class 0016 * @author Laurent Montel <montel@kde.org> 0017 */ 0018 class TEXTEMOTICONSCORE_EXPORT UnicodeEmoticon 0019 { 0020 Q_GADGET 0021 public: 0022 UnicodeEmoticon(); 0023 0024 [[nodiscard]] QString identifier() const; 0025 void setIdentifier(const QString &identifier); 0026 0027 [[nodiscard]] QString unicode() const; 0028 [[nodiscard]] QString unicodeDisplay() const; 0029 void setUnicode(const QString &unicode); 0030 0031 [[nodiscard]] QString category() const; 0032 void setCategory(const QString &category); 0033 0034 [[nodiscard]] QStringList aliases() const; 0035 void setAliases(const QStringList &aliases); 0036 0037 [[nodiscard]] bool hasEmoji(const QString &identifier) const; 0038 0039 [[nodiscard]] bool isValid() const; 0040 0041 [[nodiscard]] int order() const; 0042 void setOrder(int order); 0043 0044 [[nodiscard]] QString key() const; 0045 void setKey(const QString &key); 0046 0047 bool operator==(const UnicodeEmoticon &other) const; 0048 0049 private: 0050 [[nodiscard]] TEXTEMOTICONSCORE_NO_EXPORT QString escapeUnicodeEmoji(const QString &pString); 0051 QStringList mAliases; 0052 QString mIdentifier; 0053 QString mUnicode; 0054 QString mCategory; 0055 QString mKey; 0056 mutable QString mCachedHtml; 0057 int mOrder = -1; 0058 }; 0059 } 0060 Q_DECLARE_METATYPE(TextEmoticonsCore::UnicodeEmoticon) 0061 Q_DECLARE_TYPEINFO(TextEmoticonsCore::UnicodeEmoticon, Q_MOVABLE_TYPE); 0062 TEXTEMOTICONSCORE_EXPORT QDebug operator<<(QDebug d, const TextEmoticonsCore::UnicodeEmoticon &t);