instancecontainer.h 2.57 KB
Newer Older
1
2
3
4
5
6
/**************************************************************************
**
** This file is part of Qt Creator
**
** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
**
Eike Ziller's avatar
Eike Ziller committed
7
** Contact: http://www.qt-project.org/
8
9
10
11
**
**
** GNU Lesser General Public License Usage
**
hjk's avatar
hjk committed
12
13
14
15
16
17
** 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.
18
19
**
** In addition, as a special exception, Nokia gives you certain additional
hjk's avatar
hjk committed
20
** rights. These rights are described in the Nokia Qt LGPL Exception
21
22
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
hjk's avatar
hjk committed
23
24
25
26
27
** Other Usage
**
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
28
29
30
**
**************************************************************************/

31
32
33
34
35
#ifndef INSTANCECONTAINER_H
#define INSTANCECONTAINER_H

#include <qmetatype.h>
#include <QString>
36
#include <QDataStream>
37
38
39
40
41
42
43
44
45
46
47
48
49

namespace QmlDesigner {

class InstanceContainer;

QDataStream &operator<<(QDataStream &out, const InstanceContainer &container);
QDataStream &operator>>(QDataStream &in, InstanceContainer &container);

class InstanceContainer
{
    friend QDataStream &operator>>(QDataStream &in, InstanceContainer &container);

public:
50
51
52
53
54
55
    enum NodeSourceType {
        NoSource = 0,
        CustomParserSource = 1,
        ComponentSource = 2
    };

56
57
58
59
60
    enum NodeMetaType {
        ObjectMetaType,
        ItemMetaType
    };

61
    InstanceContainer();
62
    InstanceContainer(qint32 instanceId, const QString &type, int majorNumber, int minorNumber, const QString &componentPath, const QString &nodeSource, NodeSourceType nodeSourceType, NodeMetaType metaType);
63
64
65
66
67
68

    qint32 instanceId() const;
    QString type() const;
    int majorNumber() const;
    int minorNumber() const;
    QString componentPath() const;
69
70
    QString nodeSource() const;
    NodeSourceType nodeSourceType() const;
71
    NodeMetaType metaType() const;
72
73
74
75

private:
    qint32 m_instanceId;
    QString m_type;
76
77
    qint32 m_majorNumber;
    qint32 m_minorNumber;
78
    QString m_componentPath;
79
80
    QString m_nodeSource;
    qint32 m_nodeSourceType;
81
    qint32 m_metaType;
82
83
84
85
};

} // namespace QmlDesigner

86
Q_DECLARE_METATYPE(QmlDesigner::InstanceContainer)
87
#endif // INSTANCECONTAINER_H