File indexing completed on 2024-04-28 05:01:54
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 };