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);