-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathJSONListItemBinder.h
More file actions
69 lines (58 loc) · 2.51 KB
/
JSONListItemBinder.h
File metadata and controls
69 lines (58 loc) · 2.51 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/****************************************************************************
**
** Copyright (C) Paul Lemire, Tepee3DTeam and/or its subsidiary(-ies).
** Contact: paul.lemire@epitech.eu
** Contact: tepee3d_2014@labeip.epitech.eu
**
** This file is part of the Tepee3D project
**
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser
** General Public License version 2.1 as published by the Free Software
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3.0 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
** met: http://www.gnu.org/copyleft/gpl.html.
**
**
****************************************************************************/
#ifndef JSONLISTITEM_H
#define JSONLISTITEM_H
#include "ListModel.h"
#include "SubListedListItem.h"
#include <QJsonValue>
#include <QStringList>
namespace Models
{
class ListModel;
class JSONListItemBinder
{
private:
JSONListItemBinder(Models::ListItem *item);
Models::ListItem *item;
public:
virtual ~JSONListItemBinder();
static void fromQJsonValue(const QJsonValue &jsonValue, Models::ListItem *item);
protected :
static QHash<QJsonValue::Type,
void (JSONListItemBinder::*)(const QString &keyName,
const QJsonValue &jsonValue)> jsonToValue;
static QHash<QJsonValue::Type,
void (JSONListItemBinder::*)(const QString &keyName,
const QJsonValue &jsonValue)> initJsonToValueHash();
QHash<QByteArray, int> nameToRoles;
virtual void valueFromQJsonObject(const QString &keyName = "", const QJsonValue &jsonValue = QJsonValue());
virtual void valueFromQJsonArray(const QString &keyName = "", const QJsonValue &jsonValue = QJsonValue());
virtual void valueFromScalar(const QString &keyName = "", const QJsonValue &jsonValue = QJsonValue());
virtual void valueFromNullOrUndefined(const QString &keyName = "", const QJsonValue &jsonValue = QJsonValue());
};
}
#endif // JSONLISTITEM_H