1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of Qt Creator.
7 **
8 ** Commercial License Usage
9 ** Licensees holding valid commercial Qt licenses may use this file in
10 ** accordance with the commercial license agreement provided with the
11 ** Software or, alternatively, in accordance with the terms contained in
12 ** a written agreement between you and The Qt Company. For licensing terms
13 ** and conditions see https://www.qt.io/terms-conditions. For further
14 ** information use the contact form at https://www.qt.io/contact-us.
15 **
16 ** GNU General Public License Usage
17 ** Alternatively, this file may be used under the terms of the GNU
18 ** General Public License version 3 as published by the Free Software
19 ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
20 ** included in the packaging of this file. Please review the following
21 ** information to ensure the GNU General Public License requirements will
22 ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
23 **
24 ****************************************************************************/
25 
26 #pragma once
27 
28 // Enumeration describing a type.
29 enum KnownType
30 {
31     KT_Unknown =0,
32     // Flags to be used in type values.
33     KT_POD_Type = 0x10000,
34     KT_Qt_Type = 0x20000,
35     KT_Qt_PrimitiveType = 0x40000,
36     KT_Qt_MovableType = 0x80000,
37     KT_STL_Type = 0x100000,
38     KT_ContainerType = 0x200000,
39     KT_HasSimpleDumper = 0x400000,
40     KT_HasComplexDumper = 0x800000, // Non-container complex dumper
41     KT_Editable = 0x1000000, // Editable complex type
42     // Types: PODs
43     KT_Char = KT_POD_Type + 1,
44     KT_UnsignedChar = KT_POD_Type + 2,
45     KT_IntType = KT_POD_Type + 3,         // any signed short, long, int
46     KT_UnsignedIntType = KT_POD_Type + 4, // any unsigned int
47     KT_FloatType = KT_POD_Type + 5,       // float, double
48     KT_POD_PointerType = KT_POD_Type + 6,     // pointer to some POD
49     KT_PointerType = KT_POD_Type + 7,     // pointer to class or complex type
50     // Types: Qt Basic
51     KT_QChar = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 1,
52     KT_QByteArray = KT_Qt_Type + KT_Editable + KT_Qt_MovableType + KT_HasComplexDumper + KT_HasSimpleDumper + 2,
53     KT_QString = KT_Qt_Type + KT_Editable + KT_Qt_MovableType + KT_HasSimpleDumper + 3,
54     KT_QColor = KT_Qt_Type + KT_HasSimpleDumper + 4,
55     KT_QFlags = KT_Qt_Type + KT_HasSimpleDumper + 5,
56     KT_QDate = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 6,
57     KT_QTime = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 7,
58     KT_QPoint = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 8,
59     KT_QPointF = KT_Qt_Type +KT_Qt_MovableType + KT_HasSimpleDumper + 9,
60     KT_QSize = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 11,
61     KT_QSizeF = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 12,
62     KT_QLine = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 13,
63     KT_QLineF = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 14,
64     KT_QRect = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 15,
65     KT_QRectF = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 16,
66     KT_QVariant = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + KT_HasComplexDumper + 17,
67     KT_QBasicAtomicInt = KT_Qt_Type + KT_HasSimpleDumper + 18,
68     KT_QAtomicInt = KT_Qt_Type + KT_HasSimpleDumper + 19,
69     KT_QStringRef = KT_Qt_Type + KT_HasSimpleDumper + 20,
70     KT_QTextCursor = KT_Qt_Type + KT_HasSimpleDumper + 21,
71     KT_QObject = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 20,
72     KT_QWindow = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 21,
73     KT_QWidget = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 22,
74     KT_QSharedPointer = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 23,
75     KT_QRegion = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 24,
76     KT_QWeakPointer = KT_Qt_Type + KT_HasSimpleDumper + KT_HasComplexDumper + 25,
77     // Types: Various QT movable types
78     KT_QPen = KT_Qt_Type + KT_Qt_MovableType + 30,
79     KT_QUrl = KT_Qt_Type + KT_Qt_MovableType + 31 + KT_HasSimpleDumper,
80     KT_QIcon = KT_Qt_Type + KT_Qt_MovableType + 32,
81     KT_QBrush = KT_Qt_Type + KT_Qt_MovableType + 33,
82     KT_QPixmap = KT_Qt_Type + KT_HasSimpleDumper + KT_Qt_MovableType + 34,
83     KT_QImage = KT_Qt_Type + KT_HasSimpleDumper + KT_Qt_MovableType + 35,
84     KT_QLocale = KT_Qt_Type + KT_Qt_MovableType + 36,
85     KT_QMatrix = KT_Qt_Type + KT_Qt_MovableType + 37,
86     KT_QRegExp = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 38,
87     KT_QMargins = KT_Qt_Type + KT_Qt_MovableType + 39,
88     KT_QXmltem = KT_Qt_Type + KT_Qt_MovableType + 40,
89     KT_QXmlName = KT_Qt_Type + KT_Qt_MovableType + 41,
90     KT_QBitArray = KT_Qt_Type + KT_Qt_MovableType + 42,
91     KT_QDateTime = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 43,
92     KT_QFileInfo = KT_Qt_Type + KT_Qt_MovableType + KT_HasSimpleDumper + 44,
93     KT_QMetaEnum = KT_Qt_Type + KT_Qt_MovableType + 45,
94     KT_QVector2D = KT_Qt_Type + KT_Qt_MovableType + 46,
95     KT_QVector3D = KT_Qt_Type + KT_Qt_MovableType + 47,
96     KT_QVector4D = KT_Qt_Type + KT_Qt_MovableType + 48,
97     KT_QMatrix4x4 = KT_Qt_Type + KT_Qt_MovableType + 49,
98     KT_QTextBlock = KT_Qt_Type + KT_Qt_MovableType + 50,
99     KT_QTransform = KT_Qt_Type + KT_Qt_MovableType + 51,
100     KT_QBasicTimer = KT_Qt_Type + KT_Qt_MovableType + 52,
101     KT_QMetaMethod = KT_Qt_Type + KT_Qt_MovableType + 53,
102     KT_QModelIndex = KT_Qt_Type + KT_Qt_MovableType + 54,
103     KT_QQuaternion = KT_Qt_Type + KT_Qt_MovableType + 55,
104     KT_QScriptItem = KT_Qt_Type + KT_Qt_MovableType + 56,
105     KT_QKeySequence = KT_Qt_Type + KT_Qt_MovableType + 57,
106     KT_QTextFragment = KT_Qt_Type + KT_Qt_MovableType + 58,
107     KT_QTreeViewItem = KT_Qt_Type + KT_Qt_MovableType + 59,
108     KT_QMetaClassInfo = KT_Qt_Type + KT_Qt_MovableType + 60,
109     KT_QNetworkCookie = KT_Qt_Type + KT_Qt_MovableType + 61,
110     KT_QHashDummyValue = KT_Qt_Type + KT_Qt_MovableType + 62,
111     KT_QSourceLocation = KT_Qt_Type + KT_Qt_MovableType + 63,
112     KT_QNetworkProxyQuery = KT_Qt_Type + KT_Qt_MovableType + 64,
113     KT_QXmlNodeModelIndex = KT_Qt_Type + KT_Qt_MovableType + 65,
114     KT_QItemSelectionRange = KT_Qt_Type + KT_Qt_MovableType + 66,
115     KT_QPaintBufferCommand = KT_Qt_Type + KT_Qt_MovableType + 67,
116     KT_QTextHtmlParserNode = KT_Qt_Type + KT_Qt_MovableType + 68,
117     KT_QXmlStreamAttribute = KT_Qt_Type + KT_Qt_MovableType + 69,
118     KT_QTextBlock_iterator = KT_Qt_Type + KT_Qt_MovableType + 70,
119     KT_QTextFrame_iterator = KT_Qt_Type + KT_Qt_MovableType + 71,
120     KT_QPersistentModelIndex = KT_Qt_Type + KT_Qt_MovableType + 72,
121     KT_QObjectPrivate_Sender = KT_Qt_Type + KT_Qt_MovableType + 73,
122     KT_QPatternist_AtomicValue = KT_Qt_Type + KT_Qt_MovableType + 74,
123     KT_QPatternist_Cardinality = KT_Qt_Type + KT_Qt_MovableType + 75,
124     KT_QObjectPrivate_Connection = KT_Qt_Type + KT_Qt_MovableType + 76,
125     KT_QPatternist_ItemCacheCell = KT_Qt_Type + KT_Qt_MovableType + 77,
126     KT_QPatternist_ItemType_Ptr = KT_Qt_Type + KT_Qt_MovableType + 78,
127     KT_QPatternist_NamePool_Ptr = KT_Qt_Type + KT_Qt_MovableType + 79,
128     KT_QXmlStreamEntityDeclaration = KT_Qt_Type + KT_Qt_MovableType + 80,
129     KT_QPatternist_Expression_Ptr = KT_Qt_Type + KT_Qt_MovableType + 81,
130     KT_QXmlStreamNotationDeclaration = KT_Qt_Type + KT_Qt_MovableType + 82,
131     KT_QPatternist_SequenceType_Ptr = KT_Qt_Type + KT_Qt_MovableType + 83,
132     KT_QXmlStreamNamespaceDeclaration = KT_Qt_Type + KT_Qt_MovableType + 84,
133     KT_QPatternist_Item_Iterator_Ptr = KT_Qt_Type + KT_Qt_MovableType + 85,
134     KT_QPatternist_ItemSequenceCacheCell = KT_Qt_Type + KT_Qt_MovableType + 86,
135     KT_QNetworkHeadersPrivate_RawHeaderPair = KT_Qt_Type + KT_Qt_MovableType + 87,
136     KT_QPatternist_AccelTree_BasicNodeData = KT_Qt_Type + KT_Qt_MovableType + 88,
137     KT_QFile = KT_Qt_Type + KT_HasSimpleDumper + 89,
138     KT_QDir  = KT_Qt_Type + KT_HasSimpleDumper + 90,
139     KT_QScriptValue = KT_Qt_Type + KT_HasSimpleDumper + 91,
140     KT_QHostAddress = KT_Qt_Type + KT_HasSimpleDumper + 92,
141     KT_QProcess = KT_Qt_Type + KT_HasSimpleDumper + 93,
142     KT_QTimeZone = KT_Qt_Type + KT_HasSimpleDumper + 94,
143     KT_QIPv6Address = KT_Qt_Type + KT_HasSimpleDumper + 95,
144     // Types: Qt primitive types
145     KT_QFixed = KT_Qt_Type + KT_Qt_PrimitiveType + 90,
146     KT_QTextItem = KT_Qt_Type + KT_Qt_PrimitiveType + 91,
147     KT_QFixedSize = KT_Qt_Type + KT_Qt_PrimitiveType + 92,
148     KT_QFixedPoint = KT_Qt_Type + KT_Qt_PrimitiveType + 93,
149     KT_QScriptLine = KT_Qt_Type + KT_Qt_PrimitiveType + 94,
150     KT_QScriptAnalysis = KT_Qt_Type + KT_Qt_PrimitiveType + 95,
151     KT_QTextUndoCommand = KT_Qt_Type + KT_Qt_PrimitiveType + 96,
152     KT_QGlyphJustification = KT_Qt_Type + KT_Qt_PrimitiveType + 97,
153     KT_QPainterPath_Element = KT_Qt_Type + KT_Qt_PrimitiveType + 98,
154     // Types: Qt Containers
155     KT_QStringList = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 1,
156     KT_QList = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 2,
157     KT_QLinkedList = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 3,
158     KT_QVector = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 4,
159     KT_QStack = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 5,
160     KT_QQueue = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 6,
161     KT_QSet = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 7,
162     KT_QHash = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 8,
163     KT_QMultiHash = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 9,
164     KT_QMap = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 10,
165     KT_QMultiMap = KT_Qt_Type + KT_ContainerType + KT_HasSimpleDumper + 11,
166     // Types: STL
167     KT_StdString = KT_STL_Type + KT_Editable + KT_HasSimpleDumper + 1,
168     KT_StdWString = KT_STL_Type + KT_Editable + KT_HasSimpleDumper + 2,
169     KT_StdComplex = KT_STL_Type + KT_HasSimpleDumper + 3,
170     // Types: STL containers
171     KT_StdVector =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 1,
172     KT_StdList =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 2,
173     KT_StdStack =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 3,
174     KT_StdDeque =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 4,
175     KT_StdSet =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 5,
176     KT_StdMultiSet =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 6,
177     KT_StdUnorderedSet =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 7,
178     KT_StdUnorderedMultiSet =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 8,
179     KT_StdMap =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 9,
180     KT_StdMultiMap =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 10,
181     KT_StdUnorderedMap =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 11,
182     KT_StdUnorderedMultiMap =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 12,
183     KT_StdArray =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 13,
184     KT_StdValArray =  KT_STL_Type + KT_ContainerType + KT_HasSimpleDumper + 14
185 
186 };
187