-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathjsonitem.h
34 lines (29 loc) · 937 Bytes
/
jsonitem.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef JSONITEM_H
#define JSONITEM_H
#include <QVariant>
#include <QJsonValue>
#include "types.h"
class JsonItem
{
public:
JsonItem(JsonItem* parent = nullptr);
virtual ~JsonItem();
virtual JsonItem* child(int row);
virtual JsonItem* parent() const;
virtual int row();
virtual int indexOf(JsonItem *item) const;
virtual int rowCount() const;
virtual QVariant data(int role, int column);
virtual QString labelForChild(JsonItem *child) const;
virtual QJsonValue toJson() const;
virtual bool insertChild(QPair<QString, JsonItem *> child, int position);
virtual ItemType type() const;
virtual bool setData(const QVariant& data);
bool setLabelInContainer(QString label);
virtual bool removeChildrenAt(int i);
virtual bool appendItem(JsonItem* item, QString label);
void setParent(JsonItem* parent);
private:
JsonItem* parentItem = nullptr;
};
#endif // JSONITEM_H