File indexing completed on 2024-05-19 05:04:33

0001 /*
0002    SPDX-FileCopyrightText: 2019-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QListWidgetItem>
0010 #include <QWidget>
0011 #include <TextEmoticonsCore/UnicodeEmoticon>
0012 
0013 class QLineEdit;
0014 class KListWidgetSearchLine;
0015 
0016 class UnicodeEmoticonListWidgetItem : public QListWidgetItem
0017 {
0018 public:
0019     explicit UnicodeEmoticonListWidgetItem(const QString &str, QListWidget *parent);
0020 
0021     [[nodiscard]] TextEmoticonsCore::UnicodeEmoticon info() const;
0022     void setInfo(const TextEmoticonsCore::UnicodeEmoticon &info);
0023 
0024 private:
0025     TextEmoticonsCore::UnicodeEmoticon mInfo;
0026 };
0027 
0028 class QListWidget;
0029 class ValidEmoticonGui : public QWidget
0030 {
0031     Q_OBJECT
0032 public:
0033     explicit ValidEmoticonGui(QWidget *parent = nullptr);
0034     ~ValidEmoticonGui() override;
0035 
0036 private:
0037     [[nodiscard]] QStringList load();
0038     [[nodiscard]] QString generateExcludeEmoticon(const QUrl &url, const QStringList &identifiers) const;
0039     QListWidget *mListWidget = nullptr;
0040     KListWidgetSearchLine *mSearchEmoticon = nullptr;
0041 };