File indexing completed on 2024-04-28 16:12:56

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 class UnicodeEmoticonInfo : public QWidget
0016 {
0017     Q_OBJECT
0018 public:
0019     explicit UnicodeEmoticonInfo(QWidget *parent = nullptr);
0020     ~UnicodeEmoticonInfo() override;
0021 
0022     [[nodiscard]] TextEmoticonsCore::UnicodeEmoticon info() const;
0023     void setInfo(const TextEmoticonsCore::UnicodeEmoticon &info);
0024 
0025 private:
0026     QLineEdit *mIdentifier = nullptr;
0027     QLineEdit *mUnicode = nullptr;
0028     QLineEdit *mAliases = nullptr;
0029     QLineEdit *mCategory = nullptr;
0030     QLineEdit *mOrder = nullptr;
0031     TextEmoticonsCore::UnicodeEmoticon mInfo;
0032 };
0033 
0034 class UnicodeEmoticonListWidgetItem : public QListWidgetItem
0035 {
0036 public:
0037     explicit UnicodeEmoticonListWidgetItem(const QString &str, QListWidget *parent);
0038 
0039     [[nodiscard]] TextEmoticonsCore::UnicodeEmoticon info() const;
0040     void setInfo(const TextEmoticonsCore::UnicodeEmoticon &info);
0041 
0042 private:
0043     TextEmoticonsCore::UnicodeEmoticon mInfo;
0044 };
0045 
0046 class QListWidget;
0047 class UnicodeEmoticonGui : public QWidget
0048 {
0049     Q_OBJECT
0050 public:
0051     explicit UnicodeEmoticonGui(QWidget *parent = nullptr);
0052     ~UnicodeEmoticonGui() override;
0053 
0054 private:
0055     void save();
0056     void load();
0057     void slotItemChanged(QListWidgetItem *item);
0058     void slotItemSelectionChanged();
0059     void slotExportIdentifier();
0060     QListWidget *mListWidget = nullptr;
0061     UnicodeEmoticonInfo *mWidgetInfo = nullptr;
0062     KListWidgetSearchLine *mSearchEmoticon = nullptr;
0063 };