iterableqqmlpropertymap.h
Go to the documentation of this file.
1 #ifndef DNAI_UTILS_ITERABLE_QQMLPROPERTYMAP_H
2 #define DNAI_UTILS_ITERABLE_QQMLPROPERTYMAP_H
3 
4 #include <QQmlPropertyMap>
5 #include <QAbstractListModel>
6 
7 namespace dnai {
8 namespace utils {
9 class IterableQQmlPropertyMap : public QAbstractListModel
10 {
11  Q_OBJECT
12 public:
13  IterableQQmlPropertyMap(QObject *parent = nullptr);
14 
15  // QAbstractItemModel interface
16 public:
17  enum ROLES
18  {
19  OBJ = Qt::UserRole + 1,
21  };
22 
23  virtual int rowCount(const QModelIndex& parent = QModelIndex()) const override;
24  QVariant data(const QModelIndex& index, int role) const override;
25 
26  QVariant value(const QString &key) const;
27  void insert(const QString &key, const QVariant &value);
28  void clear(const QString &key);
29 
30  Q_INVOKABLE QStringList keys() const;
31 
32  int count() const;
33  int size() const;
34  bool isEmpty() const;
35  bool contains(const QString &key) const;
36 
37  QVariant &operator[](const QString &key);
38  QVariant operator[](const QString &key) const;
39 
40 private:
41  virtual QHash<int, QByteArray> roleNames() const override;
42 
43 signals:
44  void valueChanged(const QString &key, const QVariant &value);
45 
46 private:
47  QQmlPropertyMap m_map;
48 };
49 }
50 }
51 
52 #endif // DNAI_UTILS_ITERABLE_QQMLPROPERTYMAP_H
IterableQQmlPropertyMap(QObject *parent=nullptr)
Definition: iterableqqmlpropertymap.cpp:8
Definition: iterableqqmlpropertymap.h:19
QVariant & operator[](const QString &key)
Definition: iterableqqmlpropertymap.cpp:71
QVariant data(const QModelIndex &index, int role) const override
Definition: iterableqqmlpropertymap.cpp:20
Q_INVOKABLE QStringList keys() const
Definition: iterableqqmlpropertymap.cpp:46
bool contains(const QString &key) const
Definition: iterableqqmlpropertymap.cpp:66
int size() const
Definition: iterableqqmlpropertymap.cpp:56
void insert(const QString &key, const QVariant &value)
Definition: iterableqqmlpropertymap.cpp:36
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition: iterableqqmlpropertymap.cpp:14
virtual QHash< int, QByteArray > roleNames() const override
Definition: iterableqqmlpropertymap.cpp:81
void clear(const QString &key)
Definition: iterableqqmlpropertymap.cpp:41
Definition: iterableqqmlpropertymap.h:20
Definition: iterableqqmlpropertymap.h:9
int count() const
Definition: iterableqqmlpropertymap.cpp:51
bool isEmpty() const
Definition: iterableqqmlpropertymap.cpp:61
ROLES
Definition: iterableqqmlpropertymap.h:17
void valueChanged(const QString &key, const QVariant &value)
Definition: moc_iterableqqmlpropertymap.cpp:135
Definition: api.h:13
QVariant value(const QString &key) const
Definition: iterableqqmlpropertymap.cpp:31
QQmlPropertyMap m_map
Definition: iterableqqmlpropertymap.h:47