Basic emoji history support. #96

This commit is contained in:
Black Hat
2019-05-02 14:20:04 +08:00
parent 27a279bc3c
commit 85ceec7b44
5 changed files with 89 additions and 20 deletions

View File

@@ -2,6 +2,7 @@
#define EMOJIMODEL_H
#include <QObject>
#include <QSettings>
#include <QVariant>
#include <QVector>
@@ -9,6 +10,18 @@ struct Emoji {
Emoji(const QString& u, const QString& s) : unicode(u), shortname(s) {}
Emoji() {}
friend QDataStream& operator<<(QDataStream& arch, const Emoji& object) {
arch << object.unicode;
arch << object.shortname;
return arch;
}
friend QDataStream& operator>>(QDataStream& arch, Emoji& object) {
arch >> object.unicode;
arch >> object.shortname;
return arch;
}
QString unicode;
QString shortname;
@@ -21,11 +34,31 @@ Q_DECLARE_METATYPE(Emoji)
class EmojiModel : public QObject {
Q_OBJECT
Q_PROPERTY(QVariantMap model READ getModel CONSTANT)
Q_PROPERTY(QVariantList history READ history NOTIFY historyChanged)
Q_PROPERTY(QVariantList people MEMBER people CONSTANT)
Q_PROPERTY(QVariantList nature MEMBER nature CONSTANT)
Q_PROPERTY(QVariantList food MEMBER food CONSTANT)
Q_PROPERTY(QVariantList activity MEMBER activity CONSTANT)
Q_PROPERTY(QVariantList travel MEMBER travel CONSTANT)
Q_PROPERTY(QVariantList objects MEMBER objects CONSTANT)
Q_PROPERTY(QVariantList symbols MEMBER symbols CONSTANT)
Q_PROPERTY(QVariantList flags MEMBER flags CONSTANT)
public:
Q_INVOKABLE QVariantMap getModel();
explicit EmojiModel(QObject* parent = nullptr)
: QObject(parent), m_settings(new QSettings()) {}
Q_INVOKABLE QVariantList history();
Q_INVOKABLE QVariantList filterModel(const QString& filter);
signals:
void historyChanged();
public slots:
void emojiUsed(QVariant modelData);
private:
static const QVariantList people;
static const QVariantList nature;
@@ -35,6 +68,8 @@ class EmojiModel : public QObject {
static const QVariantList objects;
static const QVariantList symbols;
static const QVariantList flags;
QSettings* m_settings;
};
#endif // EMOJIMODEL_H