OSDN Git Service

drop support for static text [ci reset]
[kde/Katie.git] / src / tools / uic / cpp / cppwriteincludes.cpp
1 /****************************************************************************
2 **
3 ** Copyright (C) 2015 The Qt Company Ltd.
4 ** Copyright (C) 2016 Ivailo Monev
5 **
6 ** This file is part of the tools applications of the Katie Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 **
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser
12 ** General Public License version 2.1 as published by the Free Software
13 ** Foundation and appearing in the file LICENSE.LGPL included in the
14 ** packaging of this file.  Please review the following information to
15 ** ensure the GNU Lesser General Public License version 2.1 requirements
16 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 **
18 ** $QT_END_LICENSE$
19 **
20 ****************************************************************************/
21
22 #include "cppwriteincludes.h"
23 #include "driver.h"
24 #include "ui4.h"
25 #include "uic.h"
26
27 #include <QtCore/QDebug>
28 #include <QtCore/QFileInfo>
29 #include <QtCore/QTextStream>
30
31 #include <stdio.h>
32
33 QT_BEGIN_NAMESPACE
34
35 #define DEBUG_WRITE_INCLUDES 0
36 #define WARN_HEADER_GENERATOR 0
37
38 namespace CPP {
39
40 // generated by genmap.py
41 static const struct ClassTblData {
42     const QLatin1String klass;
43     const QLatin1String header;
44 } ClassTbl[] = {
45     { QLatin1String("ActionProviderBase"), QLatin1String("QtDesigner/default_actionprovider.h") },
46     { QLatin1String("BlockSizeManager"), QLatin1String("QtCore/qtconcurrentiteratekernel.h") },
47     { QLatin1String("BuddyEditor"), QLatin1String("QtDesigner/buddyeditor.h") },
48     { QLatin1String("BuddyEditorPlugin"), QLatin1String("QtDesigner/buddyeditor_plugin.h") },
49     { QLatin1String("BuddyEditorTool"), QLatin1String("QtDesigner/buddyeditor_tool.h") },
50     { QLatin1String("ConverterState"), QLatin1String("QtCore/qtextcodec.h") },
51     { QLatin1String("Exception"), QLatin1String("QtCore/qtconcurrentexception.h") },
52     { QLatin1String("ExceptionStore"), QLatin1String("QtCore/qtconcurrentexception.h") },
53     { QLatin1String("FormEditor"), QLatin1String("QtDesigner/formeditor.h") },
54     { QLatin1String("FormWindow"), QLatin1String("QtDesigner/formwindow.h") },
55     { QLatin1String("FormWindowCursor"), QLatin1String("QtDesigner/formwindowcursor.h") },
56     { QLatin1String("FormWindowManager"), QLatin1String("QtDesigner/formwindowmanager.h") },
57     { QLatin1String("FormWindowWidgetStack"), QLatin1String("QtDesigner/formwindow_widgetstack.h") },
58     { QLatin1String("IconCache"), QLatin1String("QtDesigner/iconcache.h") },
59     { QLatin1String("NewDynamicPropertyDialog"), QLatin1String("QtDesigner/newdynamicpropertydialog.h") },
60     { QLatin1String("ObjectInspector"), QLatin1String("QtDesigner/objectinspector.h") },
61     { QLatin1String("PaletteEditorButton"), QLatin1String("QtDesigner/paletteeditorbutton.h") },
62     { QLatin1String("PropertyEditor"), QLatin1String("QtDesigner/propertyeditor.h") },
63     { QLatin1String("QAbstractAnimation"), QLatin1String("QtGui/qabstractanimation.h") },
64     { QLatin1String("QAbstractButton"), QLatin1String("QtGui/qabstractbutton.h") },
65     { QLatin1String("QAbstractEventDispatcher"), QLatin1String("QtCore/qabstracteventdispatcher.h") },
66     { QLatin1String("QAbstractFileEngine"), QLatin1String("QtCore/qabstractfileengine.h") },
67     { QLatin1String("QAbstractFileEngineIterator"), QLatin1String("QtCore/qabstractfileengine.h") },
68     { QLatin1String("QAbstractFormBuilder"), QLatin1String("QtUiTools/abstractformbuilder.h") },
69     { QLatin1String("QAbstractGraphicsShapeItem"), QLatin1String("QtGui/qgraphicsitem.h") },
70     { QLatin1String("QAbstractItemDelegate"), QLatin1String("QtGui/qabstractitemdelegate.h") },
71     { QLatin1String("QAbstractItemModel"), QLatin1String("QtCore/qabstractitemmodel.h") },
72     { QLatin1String("QAbstractItemView"), QLatin1String("QtGui/qabstractitemview.h") },
73     { QLatin1String("QAbstractListModel"), QLatin1String("QtCore/qabstractitemmodel.h") },
74     { QLatin1String("QAbstractNetworkCache"), QLatin1String("QtNetwork/qabstractnetworkcache.h") },
75     { QLatin1String("QAbstractPageSetupDialog"), QLatin1String("QtGui/qabstractpagesetupdialog.h") },
76     { QLatin1String("QAbstractPrintDialog"), QLatin1String("QtGui/qabstractprintdialog.h") },
77     { QLatin1String("QAbstractProxyModel"), QLatin1String("QtGui/qabstractproxymodel.h") },
78     { QLatin1String("QAbstractScrollArea"), QLatin1String("QtGui/qabstractscrollarea.h") },
79     { QLatin1String("QAbstractSlider"), QLatin1String("QtGui/qabstractslider.h") },
80     { QLatin1String("QAbstractSocket"), QLatin1String("QtNetwork/qabstractsocket.h") },
81     { QLatin1String("QAbstractSpinBox"), QLatin1String("QtGui/qabstractspinbox.h") },
82     { QLatin1String("QAbstractTableModel"), QLatin1String("QtCore/qabstractitemmodel.h") },
83     { QLatin1String("QAbstractTextDocumentLayout"), QLatin1String("QtGui/qabstracttextdocumentlayout.h") },
84     { QLatin1String("QAbstractUndoItem"), QLatin1String("QtGui/qtextdocument.h") },
85     { QLatin1String("QAccessible"), QLatin1String("QtGui/qaccessible.h") },
86     { QLatin1String("QAccessible2Interface"), QLatin1String("QtGui/qaccessible2.h") },
87     { QLatin1String("QAccessibleActionInterface"), QLatin1String("QtGui/qaccessible2.h") },
88     { QLatin1String("QAccessibleApplication"), QLatin1String("QtGui/qaccessibleobject.h") },
89     { QLatin1String("QAccessibleBridgeFactoryInterface"), QLatin1String("QtGui/qaccessiblebridge.h") },
90     { QLatin1String("QAccessibleBridgePlugin"), QLatin1String("QtGui/qaccessiblebridge.h") },
91     { QLatin1String("QAccessibleEditableTextInterface"), QLatin1String("QtGui/qaccessible2.h") },
92     { QLatin1String("QAccessibleEvent"), QLatin1String("QtGui/qaccessible.h") },
93     { QLatin1String("QAccessibleFactoryInterface"), QLatin1String("QtGui/qaccessibleplugin.h") },
94     { QLatin1String("QAccessibleImageInterface"), QLatin1String("QtGui/qaccessible2.h") },
95     { QLatin1String("QAccessibleInterface"), QLatin1String("QtGui/qaccessible.h") },
96     { QLatin1String("QAccessibleObject"), QLatin1String("QtGui/qaccessibleobject.h") },
97     { QLatin1String("QAccessiblePlugin"), QLatin1String("QtGui/qaccessibleplugin.h") },
98     { QLatin1String("QAccessibleSimpleEditableTextInterface"), QLatin1String("QtGui/qaccessible2.h") },
99     { QLatin1String("QAccessibleTable2CellInterface"), QLatin1String("QtGui/qaccessible2.h") },
100     { QLatin1String("QAccessibleTable2Interface"), QLatin1String("QtGui/qaccessible2.h") },
101     { QLatin1String("QAccessibleTableInterface"), QLatin1String("QtGui/qaccessible2.h") },
102     { QLatin1String("QAccessibleTextInterface"), QLatin1String("QtGui/qaccessible2.h") },
103     { QLatin1String("QAccessibleValueInterface"), QLatin1String("QtGui/qaccessible2.h") },
104     { QLatin1String("QAccessibleWidget"), QLatin1String("QtGui/qaccessiblewidget.h") },
105     { QLatin1String("QAction"), QLatin1String("QtGui/qaction.h") },
106     { QLatin1String("QActionEvent"), QLatin1String("QtGui/qevent.h") },
107     { QLatin1String("QActionGroup"), QLatin1String("QtGui/qactiongroup.h") },
108     { QLatin1String("QAnimationDriver"), QLatin1String("QtGui/qabstractanimation.h") },
109     { QLatin1String("QAnimationGroup"), QLatin1String("QtGui/qanimationgroup.h") },
110     { QLatin1String("QApplication"), QLatin1String("QtGui/qapplication.h") },
111     { QLatin1String("QAtomicInt"), QLatin1String("QtCore/qatomic.h") },
112     { QLatin1String("QAtomicPointer"), QLatin1String("QtCore/qatomic.h") },
113     { QLatin1String("QAuthenticator"), QLatin1String("QtNetwork/qauthenticator.h") },
114     { QLatin1String("QBasicTimer"), QLatin1String("QtCore/qbasictimer.h") },
115     { QLatin1String("QBenchmarkIterationController"), QLatin1String("QtTest/qbenchmark.h") },
116     { QLatin1String("QBitArray"), QLatin1String("QtCore/qbitarray.h") },
117     { QLatin1String("QBitRef"), QLatin1String("QtCore/qbitarray.h") },
118     { QLatin1String("QBitmap"), QLatin1String("QtGui/qbitmap.h") },
119     { QLatin1String("QBoxLayout"), QLatin1String("QtGui/qboxlayout.h") },
120     { QLatin1String("QBrush"), QLatin1String("QtGui/qbrush.h") },
121     { QLatin1String("QBuffer"), QLatin1String("QtCore/qbuffer.h") },
122     { QLatin1String("QButtonGroup"), QLatin1String("QtGui/qbuttongroup.h") },
123     { QLatin1String("QByteArray"), QLatin1String("QtCore/qbytearray.h") },
124     { QLatin1String("QByteArrayMatcher"), QLatin1String("QtCore/qbytearraymatcher.h") },
125     { QLatin1String("QByteRef"), QLatin1String("QtCore/qbytearray.h") },
126     { QLatin1String("QCache"), QLatin1String("QtCore/qcache.h") },
127     { QLatin1String("QCalendarWidget"), QLatin1String("QtGui/qcalendarwidget.h") },
128     { QLatin1String("QChar"), QLatin1String("QtCore/qchar.h") },
129     { QLatin1String("QCharRef"), QLatin1String("QtCore/qstring.h") },
130     { QLatin1String("QCheckBox"), QLatin1String("QtGui/qcheckbox.h") },
131     { QLatin1String("QChildEvent"), QLatin1String("QtCore/qcoreevent.h") },
132     { QLatin1String("QCleanlooksStyle"), QLatin1String("QtGui/qcleanlooksstyle.h") },
133     { QLatin1String("QClipboard"), QLatin1String("QtGui/qclipboard.h") },
134     { QLatin1String("QCloseEvent"), QLatin1String("QtGui/qevent.h") },
135     { QLatin1String("QColor"), QLatin1String("QtGui/qcolor.h") },
136     { QLatin1String("QColorDialog"), QLatin1String("QtGui/qcolordialog.h") },
137     { QLatin1String("QColormap"), QLatin1String("QtGui/qcolormap.h") },
138     { QLatin1String("QColumnView"), QLatin1String("QtGui/qcolumnview.h") },
139     { QLatin1String("QComboBox"), QLatin1String("QtGui/qcombobox.h") },
140     { QLatin1String("QCommandLinkButton"), QLatin1String("QtGui/qcommandlinkbutton.h") },
141     { QLatin1String("QCommonStyle"), QLatin1String("QtGui/qcommonstyle.h") },
142     { QLatin1String("QCompleter"), QLatin1String("QtGui/qcompleter.h") },
143     { QLatin1String("QContextMenuEvent"), QLatin1String("QtGui/qevent.h") },
144     { QLatin1String("QContiguousCache"), QLatin1String("QtCore/qcontiguouscache.h") },
145     { QLatin1String("QContiguousCacheData"), QLatin1String("QtCore/qcontiguouscache.h") },
146     { QLatin1String("QCoreApplication"), QLatin1String("QtCore/qcoreapplication.h") },
147     { QLatin1String("QCryptographicHash"), QLatin1String("QtNetwork/qcryptographichash.h") },
148     { QLatin1String("QCursor"), QLatin1String("QtGui/qcursor.h") },
149     { QLatin1String("QDBusAbstractAdaptor"), QLatin1String("QtDBus/qdbusabstractadaptor.h") },
150     { QLatin1String("QDBusAbstractInterface"), QLatin1String("QtDBus/qdbusabstractinterface.h") },
151     { QLatin1String("QDBusAbstractInterfaceBase"), QLatin1String("QtDBus/qdbusabstractinterface.h") },
152     { QLatin1String("QDBusArgument"), QLatin1String("QtDBus/qdbusargument.h") },
153     { QLatin1String("QDBusConnection"), QLatin1String("QtDBus/qdbusconnection.h") },
154     { QLatin1String("QDBusConnectionInterface"), QLatin1String("QtDBus/qdbusconnectioninterface.h") },
155     { QLatin1String("QDBusContext"), QLatin1String("QtDBus/qdbuscontext.h") },
156     { QLatin1String("QDBusError"), QLatin1String("QtDBus/qdbuserror.h") },
157     { QLatin1String("QDBusInterface"), QLatin1String("QtDBus/qdbusinterface.h") },
158     { QLatin1String("QDBusMessage"), QLatin1String("QtDBus/qdbusmessage.h") },
159     { QLatin1String("QDBusMetaType"), QLatin1String("QtDBus/qdbusmetatype.h") },
160     { QLatin1String("QDBusObjectPath"), QLatin1String("QtDBus/qdbusextratypes.h") },
161     { QLatin1String("QDBusPendingCall"), QLatin1String("QtDBus/qdbuspendingcall.h") },
162     { QLatin1String("QDBusPendingCallWatcher"), QLatin1String("QtDBus/qdbuspendingcall.h") },
163     { QLatin1String("QDBusPendingReplyData"), QLatin1String("QtDBus/qdbuspendingreply.h") },
164     { QLatin1String("QDBusReply"), QLatin1String("QtDBus/qdbusreply.h") },
165     { QLatin1String("QDBusServer"), QLatin1String("QtDBus/qdbusserver.h") },
166     { QLatin1String("QDBusServiceWatcher"), QLatin1String("QtDBus/qdbusservicewatcher.h") },
167     { QLatin1String("QDBusSignature"), QLatin1String("QtDBus/qdbusextratypes.h") },
168     { QLatin1String("QDBusUnixFileDescriptor"), QLatin1String("QtDBus/qdbusunixfiledescriptor.h") },
169     { QLatin1String("QDBusVariant"), QLatin1String("QtDBus/qdbusextratypes.h") },
170     { QLatin1String("QDataStream"), QLatin1String("QtCore/qdatastream.h") },
171     { QLatin1String("QDataWidgetMapper"), QLatin1String("QtGui/qdatawidgetmapper.h") },
172     { QLatin1String("QDate"), QLatin1String("QtCore/qdatetime.h") },
173     { QLatin1String("QDateEdit"), QLatin1String("QtGui/qdatetimeedit.h") },
174     { QLatin1String("QDateTime"), QLatin1String("QtCore/qdatetime.h") },
175     { QLatin1String("QDateTimeEdit"), QLatin1String("QtGui/qdatetimeedit.h") },
176     { QLatin1String("QDebug"), QLatin1String("QtCore/qdebug.h") },
177     { QLatin1String("QDeclarativeComponent"), QLatin1String("QtDeclarative/qdeclarativecomponent.h") },
178     { QLatin1String("QDeclarativeContext"), QLatin1String("QtDeclarative/qdeclarativecontext.h") },
179     { QLatin1String("QDeclarativeEngine"), QLatin1String("QtDeclarative/qdeclarativeengine.h") },
180     { QLatin1String("QDeclarativeError"), QLatin1String("QtDeclarative/qdeclarativeerror.h") },
181     { QLatin1String("QDeclarativeExpression"), QLatin1String("QtDeclarative/qdeclarativeexpression.h") },
182     { QLatin1String("QDeclarativeExtensionInterface"), QLatin1String("QtDeclarative/qdeclarativeextensioninterface.h") },
183     { QLatin1String("QDeclarativeExtensionPlugin"), QLatin1String("QtDeclarative/qdeclarativeextensionplugin.h") },
184     { QLatin1String("QDeclarativeImageProvider"), QLatin1String("QtDeclarative/qdeclarativeimageprovider.h") },
185     { QLatin1String("QDeclarativeInfo"), QLatin1String("QtDeclarative/qdeclarativeinfo.h") },
186     { QLatin1String("QDeclarativeItem"), QLatin1String("QtDeclarative/qdeclarativeitem.h") },
187     { QLatin1String("QDeclarativeListReference"), QLatin1String("QtDeclarative/qdeclarativelist.h") },
188     { QLatin1String("QDeclarativeNetworkAccessManagerFactory"), QLatin1String("QtDeclarative/qdeclarativenetworkaccessmanagerfactory.h") },
189     { QLatin1String("QDeclarativeParserStatus"), QLatin1String("QtDeclarative/qdeclarativeparserstatus.h") },
190     { QLatin1String("QDeclarativeProperty"), QLatin1String("QtDeclarative/qdeclarativeproperty.h") },
191     { QLatin1String("QDeclarativePropertyMap"), QLatin1String("QtDeclarative/qdeclarativepropertymap.h") },
192     { QLatin1String("QDeclarativePropertyValueInterceptor"), QLatin1String("QtDeclarative/qdeclarativepropertyvalueinterceptor.h") },
193     { QLatin1String("QDeclarativePropertyValueSource"), QLatin1String("QtDeclarative/qdeclarativepropertyvaluesource.h") },
194     { QLatin1String("QDeclarativeScriptString"), QLatin1String("QtDeclarative/qdeclarativescriptstring.h") },
195     { QLatin1String("QDeclarativeView"), QLatin1String("QtDeclarative/qdeclarativeview.h") },
196     { QLatin1String("QDesignerActionEditorInterface"), QLatin1String("QtDesigner/abstractactioneditor.h") },
197     { QLatin1String("QDesignerComponents"), QLatin1String("QtDesigner/qdesigner_components.h") },
198     { QLatin1String("QDesignerDnDItemInterface"), QLatin1String("QtDesigner/abstractdnditem.h") },
199     { QLatin1String("QDesignerExtraInfoExtension"), QLatin1String("QtDesigner/extrainfo.h") },
200     { QLatin1String("QDesignerFormEditorInterface"), QLatin1String("QtDesigner/abstractformeditor.h") },
201     { QLatin1String("QDesignerFormEditorPluginInterface"), QLatin1String("QtDesigner/abstractformeditorplugin.h") },
202     { QLatin1String("QDesignerFormWindowCursorInterface"), QLatin1String("QtDesigner/abstractformwindowcursor.h") },
203     { QLatin1String("QDesignerFormWindowInterface"), QLatin1String("QtDesigner/abstractformwindow.h") },
204     { QLatin1String("QDesignerFormWindowManagerInterface"), QLatin1String("QtDesigner/abstractformwindowmanager.h") },
205     { QLatin1String("QDesignerFormWindowToolInterface"), QLatin1String("QtDesigner/abstractformwindowtool.h") },
206     { QLatin1String("QDesignerIconCacheInterface"), QLatin1String("QtDesigner/abstracticoncache.h") },
207     { QLatin1String("QDesignerIntegrationInterface"), QLatin1String("QtDesigner/abstractintegration.h") },
208     { QLatin1String("QDesignerMetaDataBaseInterface"), QLatin1String("QtDesigner/abstractmetadatabase.h") },
209     { QLatin1String("QDesignerObjectInspectorInterface"), QLatin1String("QtDesigner/abstractobjectinspector.h") },
210     { QLatin1String("QDesignerPromotionInterface"), QLatin1String("QtDesigner/abstractpromotioninterface.h") },
211     { QLatin1String("QDesignerPropertyEditorInterface"), QLatin1String("QtDesigner/abstractpropertyeditor.h") },
212     { QLatin1String("QDesignerResource"), QLatin1String("QtDesigner/qdesigner_resource.h") },
213     { QLatin1String("QDesignerResourceBrowserInterface"), QLatin1String("QtDesigner/abstractresourcebrowser.h") },
214     { QLatin1String("QDesignerWidgetBoxInterface"), QLatin1String("QtDesigner/abstractwidgetbox.h") },
215     { QLatin1String("QDesignerWidgetDataBaseInterface"), QLatin1String("QtDesigner/abstractwidgetdatabase.h") },
216     { QLatin1String("QDesignerWidgetFactoryInterface"), QLatin1String("QtDesigner/abstractwidgetfactory.h") },
217     { QLatin1String("QDesktopWidget"), QLatin1String("QtGui/qdesktopwidget.h") },
218     { QLatin1String("QDial"), QLatin1String("QtGui/qdial.h") },
219     { QLatin1String("QDialog"), QLatin1String("QtGui/qdialog.h") },
220     { QLatin1String("QDialogButtonBox"), QLatin1String("QtGui/qdialogbuttonbox.h") },
221     { QLatin1String("QDir"), QLatin1String("QtCore/qdir.h") },
222     { QLatin1String("QDirIterator"), QLatin1String("QtCore/qdiriterator.h") },
223     { QLatin1String("QDirModel"), QLatin1String("QtGui/qdirmodel.h") },
224     { QLatin1String("QDockWidget"), QLatin1String("QtGui/qdockwidget.h") },
225     { QLatin1String("QDomAttr"), QLatin1String("QtXml/qdom.h") },
226     { QLatin1String("QDomCDATASection"), QLatin1String("QtXml/qdom.h") },
227     { QLatin1String("QDomCharacterData"), QLatin1String("QtXml/qdom.h") },
228     { QLatin1String("QDomComment"), QLatin1String("QtXml/qdom.h") },
229     { QLatin1String("QDomDocument"), QLatin1String("QtXml/qdom.h") },
230     { QLatin1String("QDomDocumentFragment"), QLatin1String("QtXml/qdom.h") },
231     { QLatin1String("QDomDocumentType"), QLatin1String("QtXml/qdom.h") },
232     { QLatin1String("QDomElement"), QLatin1String("QtXml/qdom.h") },
233     { QLatin1String("QDomEntity"), QLatin1String("QtXml/qdom.h") },
234     { QLatin1String("QDomEntityReference"), QLatin1String("QtXml/qdom.h") },
235     { QLatin1String("QDomImplementation"), QLatin1String("QtXml/qdom.h") },
236     { QLatin1String("QDomNamedNodeMap"), QLatin1String("QtXml/qdom.h") },
237     { QLatin1String("QDomNode"), QLatin1String("QtXml/qdom.h") },
238     { QLatin1String("QDomNodeList"), QLatin1String("QtXml/qdom.h") },
239     { QLatin1String("QDomNotation"), QLatin1String("QtXml/qdom.h") },
240     { QLatin1String("QDomProcessingInstruction"), QLatin1String("QtXml/qdom.h") },
241     { QLatin1String("QDomText"), QLatin1String("QtXml/qdom.h") },
242     { QLatin1String("QDoubleSpinBox"), QLatin1String("QtGui/qspinbox.h") },
243     { QLatin1String("QDoubleValidator"), QLatin1String("QtGui/qvalidator.h") },
244     { QLatin1String("QDrag"), QLatin1String("QtGui/qdrag.h") },
245     { QLatin1String("QDragEnterEvent"), QLatin1String("QtGui/qevent.h") },
246     { QLatin1String("QDragLeaveEvent"), QLatin1String("QtGui/qevent.h") },
247     { QLatin1String("QDragMoveEvent"), QLatin1String("QtGui/qevent.h") },
248     { QLatin1String("QDropEvent"), QLatin1String("QtGui/qevent.h") },
249     { QLatin1String("QDynamicPropertyChangeEvent"), QLatin1String("QtCore/qcoreevent.h") },
250     { QLatin1String("QEasingCurve"), QLatin1String("QtCore/qeasingcurve.h") },
251     { QLatin1String("QElapsedTimer"), QLatin1String("QtCore/qelapsedtimer.h") },
252     { QLatin1String("QErrorMessage"), QLatin1String("QtGui/qerrormessage.h") },
253     { QLatin1String("QEvent"), QLatin1String("QtCore/qcoreevent.h") },
254     { QLatin1String("QEventLoop"), QLatin1String("QtCore/qeventloop.h") },
255     { QLatin1String("QExtensionFactory"), QLatin1String("QtDesigner/default_extensionfactory.h") },
256     { QLatin1String("QExtensionManager"), QLatin1String("QtDesigner/qextensionmanager.h") },
257     { QLatin1String("QFSFileEngine"), QLatin1String("QtCore/qfsfileengine.h") },
258     { QLatin1String("QFactoryInterface"), QLatin1String("QtCore/qfactoryinterface.h") },
259     { QLatin1String("QFile"), QLatin1String("QtCore/qfile.h") },
260     { QLatin1String("QFileDialog"), QLatin1String("QtGui/qfiledialog.h") },
261     { QLatin1String("QFileIconProvider"), QLatin1String("QtGui/qfileiconprovider.h") },
262     { QLatin1String("QFileInfo"), QLatin1String("QtCore/qfileinfo.h") },
263     { QLatin1String("QFileSystemModel"), QLatin1String("QtGui/qfilesystemmodel.h") },
264     { QLatin1String("QFileSystemWatcher"), QLatin1String("QtCore/qfilesystemwatcher.h") },
265     { QLatin1String("QFlag"), QLatin1String("QtCore/qglobal.h") },
266     { QLatin1String("QFocusEvent"), QLatin1String("QtGui/qevent.h") },
267     { QLatin1String("QFocusFrame"), QLatin1String("QtGui/qfocusframe.h") },
268     { QLatin1String("QFont"), QLatin1String("QtGui/qfont.h") },
269     { QLatin1String("QFontComboBox"), QLatin1String("QtGui/qfontcombobox.h") },
270     { QLatin1String("QFontDatabase"), QLatin1String("QtGui/qfontdatabase.h") },
271     { QLatin1String("QFontDialog"), QLatin1String("QtGui/qfontdialog.h") },
272     { QLatin1String("QFontInfo"), QLatin1String("QtGui/qfontinfo.h") },
273     { QLatin1String("QFontMetrics"), QLatin1String("QtGui/qfontmetrics.h") },
274     { QLatin1String("QFontMetricsF"), QLatin1String("QtGui/qfontmetrics.h") },
275     { QLatin1String("QFormBuilder"), QLatin1String("QtUiTools/formbuilder.h") },
276     { QLatin1String("QFormLayout"), QLatin1String("QtGui/qformlayout.h") },
277     { QLatin1String("QFrame"), QLatin1String("QtGui/qframe.h") },
278     { QLatin1String("QFtp"), QLatin1String("QtNetwork/qftp.h") },
279     { QLatin1String("QFutureInterfaceBase"), QLatin1String("QtCore/qfutureinterface.h") },
280     { QLatin1String("QFutureWatcherBase"), QLatin1String("QtCore/qfuturewatcher.h") },
281     { QLatin1String("QGenericArgument"), QLatin1String("QtCore/qobjectdefs.h") },
282     { QLatin1String("QGenericReturnArgument"), QLatin1String("QtCore/qobjectdefs.h") },
283     { QLatin1String("QGradient"), QLatin1String("QtGui/qbrush.h") },
284     { QLatin1String("QGraphicsAnchor"), QLatin1String("QtGui/qgraphicsanchorlayout.h") },
285     { QLatin1String("QGraphicsAnchorLayout"), QLatin1String("QtGui/qgraphicsanchorlayout.h") },
286     { QLatin1String("QGraphicsBlurEffect"), QLatin1String("QtGui/qgraphicseffect.h") },
287     { QLatin1String("QGraphicsColorizeEffect"), QLatin1String("QtGui/qgraphicseffect.h") },
288     { QLatin1String("QGraphicsDropShadowEffect"), QLatin1String("QtGui/qgraphicseffect.h") },
289     { QLatin1String("QGraphicsEffect"), QLatin1String("QtGui/qgraphicseffect.h") },
290     { QLatin1String("QGraphicsEllipseItem"), QLatin1String("QtGui/qgraphicsitem.h") },
291     { QLatin1String("QGraphicsGridLayout"), QLatin1String("QtGui/qgraphicsgridlayout.h") },
292     { QLatin1String("QGraphicsItem"), QLatin1String("QtGui/qgraphicsitem.h") },
293     { QLatin1String("QGraphicsItemAnimation"), QLatin1String("QtGui/qgraphicsitemanimation.h") },
294     { QLatin1String("QGraphicsItemGroup"), QLatin1String("QtGui/qgraphicsitem.h") },
295     { QLatin1String("QGraphicsLayout"), QLatin1String("QtGui/qgraphicslayout.h") },
296     { QLatin1String("QGraphicsLayoutItem"), QLatin1String("QtGui/qgraphicslayoutitem.h") },
297     { QLatin1String("QGraphicsLineItem"), QLatin1String("QtGui/qgraphicsitem.h") },
298     { QLatin1String("QGraphicsLinearLayout"), QLatin1String("QtGui/qgraphicslinearlayout.h") },
299     { QLatin1String("QGraphicsObject"), QLatin1String("QtGui/qgraphicsitem.h") },
300     { QLatin1String("QGraphicsOpacityEffect"), QLatin1String("QtGui/qgraphicseffect.h") },
301     { QLatin1String("QGraphicsPathItem"), QLatin1String("QtGui/qgraphicsitem.h") },
302     { QLatin1String("QGraphicsPixmapItem"), QLatin1String("QtGui/qgraphicsitem.h") },
303     { QLatin1String("QGraphicsPolygonItem"), QLatin1String("QtGui/qgraphicsitem.h") },
304     { QLatin1String("QGraphicsProxyWidget"), QLatin1String("QtGui/qgraphicsproxywidget.h") },
305     { QLatin1String("QGraphicsRectItem"), QLatin1String("QtGui/qgraphicsitem.h") },
306     { QLatin1String("QGraphicsRotation"), QLatin1String("QtGui/qgraphicstransform.h") },
307     { QLatin1String("QGraphicsScale"), QLatin1String("QtGui/qgraphicstransform.h") },
308     { QLatin1String("QGraphicsScene"), QLatin1String("QtGui/qgraphicsscene.h") },
309     { QLatin1String("QGraphicsSceneContextMenuEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
310     { QLatin1String("QGraphicsSceneDragDropEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
311     { QLatin1String("QGraphicsSceneEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
312     { QLatin1String("QGraphicsSceneHelpEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
313     { QLatin1String("QGraphicsSceneHoverEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
314     { QLatin1String("QGraphicsSceneMouseEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
315     { QLatin1String("QGraphicsSceneMoveEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
316     { QLatin1String("QGraphicsSceneResizeEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
317     { QLatin1String("QGraphicsSceneWheelEvent"), QLatin1String("QtGui/qgraphicssceneevent.h") },
318     { QLatin1String("QGraphicsSimpleTextItem"), QLatin1String("QtGui/qgraphicsitem.h") },
319     { QLatin1String("QGraphicsSvgItem"), QLatin1String("QtSvg/qgraphicssvgitem.h") },
320     { QLatin1String("QGraphicsTextItem"), QLatin1String("QtGui/qgraphicsitem.h") },
321     { QLatin1String("QGraphicsTransform"), QLatin1String("QtGui/qgraphicstransform.h") },
322     { QLatin1String("QGraphicsView"), QLatin1String("QtGui/qgraphicsview.h") },
323     { QLatin1String("QGraphicsWidget"), QLatin1String("QtGui/qgraphicswidget.h") },
324     { QLatin1String("QGridLayout"), QLatin1String("QtGui/qgridlayout.h") },
325     { QLatin1String("QGroupBox"), QLatin1String("QtGui/qgroupbox.h") },
326     { QLatin1String("QGuiPlatformPlugin"), QLatin1String("QtGui/qguiplatformplugin.h") },
327     { QLatin1String("QGuiPlatformPluginInterface"), QLatin1String("QtGui/qguiplatformplugin.h") },
328     { QLatin1String("QHBoxLayout"), QLatin1String("QtGui/qboxlayout.h") },
329     { QLatin1String("QHash"), QLatin1String("QtCore/qhash.h") },
330     { QLatin1String("QHashData"), QLatin1String("QtCore/qhash.h") },
331     { QLatin1String("QHeaderView"), QLatin1String("QtGui/qheaderview.h") },
332     { QLatin1String("QHelpEvent"), QLatin1String("QtGui/qevent.h") },
333     { QLatin1String("QHideEvent"), QLatin1String("QtGui/qevent.h") },
334     { QLatin1String("QHostAddress"), QLatin1String("QtNetwork/qhostaddress.h") },
335     { QLatin1String("QHostInfo"), QLatin1String("QtNetwork/qhostinfo.h") },
336     { QLatin1String("QHoverEvent"), QLatin1String("QtGui/qevent.h") },
337     { QLatin1String("QHttp"), QLatin1String("QtNetwork/qhttp.h") },
338     { QLatin1String("QHttpHeader"), QLatin1String("QtNetwork/qhttp.h") },
339     { QLatin1String("QHttpMultiPart"), QLatin1String("QtNetwork/qhttpmultipart.h") },
340     { QLatin1String("QHttpPart"), QLatin1String("QtNetwork/qhttpmultipart.h") },
341     { QLatin1String("QHttpRequestHeader"), QLatin1String("QtNetwork/qhttp.h") },
342     { QLatin1String("QHttpResponseHeader"), QLatin1String("QtNetwork/qhttp.h") },
343     { QLatin1String("QIODevice"), QLatin1String("QtCore/qiodevice.h") },
344     { QLatin1String("QIPv6Address"), QLatin1String("QtNetwork/qhostaddress.h") },
345     { QLatin1String("QIcon"), QLatin1String("QtGui/qicon.h") },
346     { QLatin1String("QIconEngine"), QLatin1String("QtGui/qiconengine.h") },
347     { QLatin1String("QIconEngineFactoryInterface"), QLatin1String("QtGui/qiconengineplugin.h") },
348     { QLatin1String("QIconEnginePlugin"), QLatin1String("QtGui/qiconengineplugin.h") },
349     { QLatin1String("QIdentityProxyModel"), QLatin1String("QtGui/qidentityproxymodel.h") },
350     { QLatin1String("QImage"), QLatin1String("QtGui/qimage.h") },
351     { QLatin1String("QImageIOHandler"), QLatin1String("QtGui/qimageiohandler.h") },
352     { QLatin1String("QImageIOHandlerFactoryInterface"), QLatin1String("QtGui/qimageiohandler.h") },
353     { QLatin1String("QImageIOPlugin"), QLatin1String("QtGui/qimageiohandler.h") },
354     { QLatin1String("QImageReader"), QLatin1String("QtGui/qimagereader.h") },
355     { QLatin1String("QImageWriter"), QLatin1String("QtGui/qimagewriter.h") },
356     { QLatin1String("QIncompatibleFlag"), QLatin1String("QtCore/qglobal.h") },
357     { QLatin1String("QInputDialog"), QLatin1String("QtGui/qinputdialog.h") },
358     { QLatin1String("QInputEvent"), QLatin1String("QtGui/qevent.h") },
359     { QLatin1String("QIntValidator"), QLatin1String("QtGui/qvalidator.h") },
360     { QLatin1String("QInternal"), QLatin1String("QtCore/qnamespace.h") },
361     { QLatin1String("QItemDelegate"), QLatin1String("QtGui/qitemdelegate.h") },
362     { QLatin1String("QItemEditorCreatorBase"), QLatin1String("QtGui/qitemeditorfactory.h") },
363     { QLatin1String("QItemEditorFactory"), QLatin1String("QtGui/qitemeditorfactory.h") },
364     { QLatin1String("QItemSelection"), QLatin1String("QtGui/qitemselectionmodel.h") },
365     { QLatin1String("QItemSelectionModel"), QLatin1String("QtGui/qitemselectionmodel.h") },
366     { QLatin1String("QItemSelectionRange"), QLatin1String("QtGui/qitemselectionmodel.h") },
367     { QLatin1String("QJsonDocument"), QLatin1String("QtCore/qjsondocument.h") },
368     { QLatin1String("QKeyEvent"), QLatin1String("QtGui/qevent.h") },
369     { QLatin1String("QKeySequence"), QLatin1String("QtGui/qkeysequence.h") },
370     { QLatin1String("QLCDNumber"), QLatin1String("QtGui/qlcdnumber.h") },
371     { QLatin1String("QLabel"), QLatin1String("QtGui/qlabel.h") },
372     { QLatin1String("QLatin1String"), QLatin1String("QtCore/qstring.h") },
373     { QLatin1String("QLayout"), QLatin1String("QtGui/qlayout.h") },
374     { QLatin1String("QLayoutItem"), QLatin1String("QtGui/qlayoutitem.h") },
375     { QLatin1String("QLibrary"), QLatin1String("QtCore/qlibrary.h") },
376     { QLatin1String("QLibraryInfo"), QLatin1String("QtCore/qlibraryinfo.h") },
377     { QLatin1String("QLine"), QLatin1String("QtCore/qline.h") },
378     { QLatin1String("QLineEdit"), QLatin1String("QtGui/qlineedit.h") },
379     { QLatin1String("QLineF"), QLatin1String("QtCore/qline.h") },
380     { QLatin1String("QLinearGradient"), QLatin1String("QtGui/qbrush.h") },
381     { QLatin1String("QLinkedList"), QLatin1String("QtCore/qlinkedlist.h") },
382     { QLatin1String("QLinkedListData"), QLatin1String("QtCore/qlinkedlist.h") },
383     { QLatin1String("QList"), QLatin1String("QtCore/qlist.h") },
384     { QLatin1String("QListData"), QLatin1String("QtCore/qlist.h") },
385     { QLatin1String("QListView"), QLatin1String("QtGui/qlistview.h") },
386     { QLatin1String("QListWidget"), QLatin1String("QtGui/qlistwidget.h") },
387     { QLatin1String("QListWidgetItem"), QLatin1String("QtGui/qlistwidget.h") },
388     { QLatin1String("QLocalServer"), QLatin1String("QtNetwork/qlocalserver.h") },
389     { QLatin1String("QLocalSocket"), QLatin1String("QtNetwork/qlocalsocket.h") },
390     { QLatin1String("QLocale"), QLatin1String("QtCore/qlocale.h") },
391     { QLatin1String("QMainWindow"), QLatin1String("QtGui/qmainwindow.h") },
392     { QLatin1String("QMap"), QLatin1String("QtCore/qmap.h") },
393     { QLatin1String("QMapData"), QLatin1String("QtCore/qmap.h") },
394     { QLatin1String("QMatrix"), QLatin1String("QtGui/qmatrix.h") },
395     { QLatin1String("QMatrix4x4"), QLatin1String("QtGui/qmatrix4x4.h") },
396     { QLatin1String("QMdiArea"), QLatin1String("QtGui/qmdiarea.h") },
397     { QLatin1String("QMdiSubWindow"), QLatin1String("QtGui/qmdisubwindow.h") },
398     { QLatin1String("QMenu"), QLatin1String("QtGui/qmenu.h") },
399     { QLatin1String("QMenuActionProvider"), QLatin1String("QtDesigner/default_actionprovider.h") },
400     { QLatin1String("QMenuBar"), QLatin1String("QtGui/qmenubar.h") },
401     { QLatin1String("QMenuBarActionProvider"), QLatin1String("QtDesigner/default_actionprovider.h") },
402     { QLatin1String("QMessageBox"), QLatin1String("QtGui/qmessagebox.h") },
403     { QLatin1String("QMetaClassInfo"), QLatin1String("QtCore/qmetaobject.h") },
404     { QLatin1String("QMetaEnum"), QLatin1String("QtCore/qmetaobject.h") },
405     { QLatin1String("QMetaMethod"), QLatin1String("QtCore/qmetaobject.h") },
406     { QLatin1String("QMetaObject"), QLatin1String("QtCore/qobjectdefs.h") },
407     { QLatin1String("QMetaProperty"), QLatin1String("QtCore/qmetaobject.h") },
408     { QLatin1String("QMetaType"), QLatin1String("QtCore/qmetatype.h") },
409     { QLatin1String("QMimeData"), QLatin1String("QtCore/qmimedata.h") },
410     { QLatin1String("QModelIndex"), QLatin1String("QtCore/qabstractitemmodel.h") },
411     { QLatin1String("QMotifStyle"), QLatin1String("QtGui/qmotifstyle.h") },
412     { QLatin1String("QMouseEvent"), QLatin1String("QtGui/qevent.h") },
413     { QLatin1String("QMoveEvent"), QLatin1String("QtGui/qevent.h") },
414     { QLatin1String("QMovie"), QLatin1String("QtGui/qmovie.h") },
415     { QLatin1String("QMultiHash"), QLatin1String("QtCore/qhash.h") },
416     { QLatin1String("QMutex"), QLatin1String("QtCore/qmutex.h") },
417     { QLatin1String("QMutexLocker"), QLatin1String("QtCore/qmutex.h") },
418     { QLatin1String("QNetworkAccessManager"), QLatin1String("QtNetwork/qnetworkaccessmanager.h") },
419     { QLatin1String("QNetworkAddressEntry"), QLatin1String("QtNetwork/qnetworkinterface.h") },
420     { QLatin1String("QNetworkCacheMetaData"), QLatin1String("QtNetwork/qabstractnetworkcache.h") },
421     { QLatin1String("QNetworkCookie"), QLatin1String("QtNetwork/qnetworkcookie.h") },
422     { QLatin1String("QNetworkCookieJar"), QLatin1String("QtNetwork/qnetworkcookiejar.h") },
423     { QLatin1String("QNetworkDiskCache"), QLatin1String("QtNetwork/qnetworkdiskcache.h") },
424     { QLatin1String("QNetworkInterface"), QLatin1String("QtNetwork/qnetworkinterface.h") },
425     { QLatin1String("QNetworkProxy"), QLatin1String("QtNetwork/qnetworkproxy.h") },
426     { QLatin1String("QNetworkProxyFactory"), QLatin1String("QtNetwork/qnetworkproxy.h") },
427     { QLatin1String("QNetworkProxyQuery"), QLatin1String("QtNetwork/qnetworkproxy.h") },
428     { QLatin1String("QNetworkReply"), QLatin1String("QtNetwork/qnetworkreply.h") },
429     { QLatin1String("QNetworkRequest"), QLatin1String("QtNetwork/qnetworkrequest.h") },
430     { QLatin1String("QObject"), QLatin1String("QtCore/qobject.h") },
431     { QLatin1String("QObjectCleanupHandler"), QLatin1String("QtCore/qobjectcleanuphandler.h") },
432     { QLatin1String("QPageSetupDialog"), QLatin1String("QtGui/qpagesetupdialog.h") },
433     { QLatin1String("QPaintDevice"), QLatin1String("QtGui/qpaintdevice.h") },
434     { QLatin1String("QPaintEngine"), QLatin1String("QtGui/qpaintengine.h") },
435     { QLatin1String("QPaintEngineState"), QLatin1String("QtGui/qpaintengine.h") },
436     { QLatin1String("QPaintEvent"), QLatin1String("QtGui/qevent.h") },
437     { QLatin1String("QPainter"), QLatin1String("QtGui/qpainter.h") },
438     { QLatin1String("QPainterPath"), QLatin1String("QtGui/qpainterpath.h") },
439     { QLatin1String("QPainterPathStroker"), QLatin1String("QtGui/qpainterpath.h") },
440     { QLatin1String("QPair"), QLatin1String("QtCore/qpair.h") },
441     { QLatin1String("QPalette"), QLatin1String("QtGui/qpalette.h") },
442     { QLatin1String("QParallelAnimationGroup"), QLatin1String("QtGui/qparallelanimationgroup.h") },
443     { QLatin1String("QPauseAnimation"), QLatin1String("QtGui/qpauseanimation.h") },
444     { QLatin1String("QPen"), QLatin1String("QtGui/qpen.h") },
445     { QLatin1String("QPersistentModelIndex"), QLatin1String("QtCore/qabstractitemmodel.h") },
446     { QLatin1String("QPixmap"), QLatin1String("QtGui/qpixmap.h") },
447     { QLatin1String("QPixmapCache"), QLatin1String("QtGui/qpixmapcache.h") },
448     { QLatin1String("QPlainTextDocumentLayout"), QLatin1String("QtGui/qplaintextedit.h") },
449     { QLatin1String("QPlainTextEdit"), QLatin1String("QtGui/qplaintextedit.h") },
450     { QLatin1String("QPlastiqueStyle"), QLatin1String("QtGui/qplastiquestyle.h") },
451     { QLatin1String("QPluginLoader"), QLatin1String("QtCore/qpluginloader.h") },
452     { QLatin1String("QPoint"), QLatin1String("QtCore/qpoint.h") },
453     { QLatin1String("QPointF"), QLatin1String("QtCore/qpoint.h") },
454     { QLatin1String("QPointer"), QLatin1String("QtCore/qpointer.h") },
455     { QLatin1String("QPolygon"), QLatin1String("QtGui/qpolygon.h") },
456     { QLatin1String("QPolygonF"), QLatin1String("QtGui/qpolygon.h") },
457     { QLatin1String("QPrintDialog"), QLatin1String("QtGui/qprintdialog.h") },
458     { QLatin1String("QPrintEngine"), QLatin1String("QtGui/qprintengine.h") },
459     { QLatin1String("QPrintPreviewDialog"), QLatin1String("QtGui/qprintpreviewdialog.h") },
460     { QLatin1String("QPrintPreviewWidget"), QLatin1String("QtGui/qprintpreviewwidget.h") },
461     { QLatin1String("QPrinter"), QLatin1String("QtGui/qprinter.h") },
462     { QLatin1String("QPrinterInfo"), QLatin1String("QtGui/qprinterinfo.h") },
463     { QLatin1String("QProcess"), QLatin1String("QtCore/qprocess.h") },
464     { QLatin1String("QProcessEnvironment"), QLatin1String("QtCore/qprocess.h") },
465     { QLatin1String("QProgressBar"), QLatin1String("QtGui/qprogressbar.h") },
466     { QLatin1String("QProgressDialog"), QLatin1String("QtGui/qprogressdialog.h") },
467     { QLatin1String("QPropertyAnimation"), QLatin1String("QtGui/qpropertyanimation.h") },
468     { QLatin1String("QProxyModel"), QLatin1String("QtGui/qproxymodel.h") },
469     { QLatin1String("QProxyStyle"), QLatin1String("QtGui/qproxystyle.h") },
470     { QLatin1String("QPushButton"), QLatin1String("QtGui/qpushbutton.h") },
471     { QLatin1String("QQuaternion"), QLatin1String("QtGui/qquaternion.h") },
472     { QLatin1String("QRadialGradient"), QLatin1String("QtGui/qbrush.h") },
473     { QLatin1String("QRadioButton"), QLatin1String("QtGui/qradiobutton.h") },
474     { QLatin1String("QReadLocker"), QLatin1String("QtCore/qreadwritelock.h") },
475     { QLatin1String("QReadWriteLock"), QLatin1String("QtCore/qreadwritelock.h") },
476     { QLatin1String("QRect"), QLatin1String("QtCore/qrect.h") },
477     { QLatin1String("QRectF"), QLatin1String("QtCore/qrect.h") },
478     { QLatin1String("QRegExp"), QLatin1String("QtCore/qregexp.h") },
479     { QLatin1String("QRegExpValidator"), QLatin1String("QtGui/qvalidator.h") },
480     { QLatin1String("QRegion"), QLatin1String("QtGui/qregion.h") },
481     { QLatin1String("QResizeEvent"), QLatin1String("QtGui/qevent.h") },
482     { QLatin1String("QResource"), QLatin1String("QtCore/qresource.h") },
483     { QLatin1String("QRubberBand"), QLatin1String("QtGui/qrubberband.h") },
484     { QLatin1String("QScopedValueRollback"), QLatin1String("QtCore/qscopedvaluerollback.h") },
485     { QLatin1String("QScriptClass"), QLatin1String("QtScript/qscriptclass.h") },
486     { QLatin1String("QScriptClassPropertyIterator"), QLatin1String("QtScript/qscriptclasspropertyiterator.h") },
487     { QLatin1String("QScriptContext"), QLatin1String("QtScript/qscriptcontext.h") },
488     { QLatin1String("QScriptContextInfo"), QLatin1String("QtScript/qscriptcontextinfo.h") },
489     { QLatin1String("QScriptEngine"), QLatin1String("QtScript/qscriptengine.h") },
490     { QLatin1String("QScriptEngineAgent"), QLatin1String("QtScript/qscriptengineagent.h") },
491     { QLatin1String("QScriptEngineDebugger"), QLatin1String("QtScriptTools/qscriptenginedebugger.h") },
492     { QLatin1String("QScriptExtensionInterface"), QLatin1String("QtScript/qscriptextensioninterface.h") },
493     { QLatin1String("QScriptExtensionPlugin"), QLatin1String("QtScript/qscriptextensionplugin.h") },
494     { QLatin1String("QScriptProgram"), QLatin1String("QtScript/qscriptprogram.h") },
495     { QLatin1String("QScriptString"), QLatin1String("QtScript/qscriptstring.h") },
496     { QLatin1String("QScriptSyntaxCheckResult"), QLatin1String("QtScript/qscriptengine.h") },
497     { QLatin1String("QScriptValue"), QLatin1String("QtScript/qscriptvalue.h") },
498     { QLatin1String("QScriptValueIterator"), QLatin1String("QtScript/qscriptvalueiterator.h") },
499     { QLatin1String("QScriptable"), QLatin1String("QtScript/qscriptable.h") },
500     { QLatin1String("QScrollArea"), QLatin1String("QtGui/qscrollarea.h") },
501     { QLatin1String("QScrollBar"), QLatin1String("QtGui/qscrollbar.h") },
502     { QLatin1String("QSemaphore"), QLatin1String("QtCore/qsemaphore.h") },
503     { QLatin1String("QSequentialAnimationGroup"), QLatin1String("QtGui/qsequentialanimationgroup.h") },
504     { QLatin1String("QSet"), QLatin1String("QtCore/qset.h") },
505     { QLatin1String("QSettings"), QLatin1String("QtCore/qsettings.h") },
506     { QLatin1String("QSharedData"), QLatin1String("QtCore/qshareddata.h") },
507     { QLatin1String("QSharedMemory"), QLatin1String("QtCore/qsharedmemory.h") },
508     { QLatin1String("QSharedPointer"), QLatin1String("QtCore/qsharedpointer.h") },
509     { QLatin1String("QShortcut"), QLatin1String("QtGui/qshortcut.h") },
510     { QLatin1String("QShortcutEvent"), QLatin1String("QtGui/qevent.h") },
511     { QLatin1String("QShowEvent"), QLatin1String("QtGui/qevent.h") },
512     { QLatin1String("QSignalMapper"), QLatin1String("QtCore/qsignalmapper.h") },
513     { QLatin1String("QSignalSpy"), QLatin1String("QtTest/qsignalspy.h") },
514     { QLatin1String("QSize"), QLatin1String("QtCore/qsize.h") },
515     { QLatin1String("QSizeF"), QLatin1String("QtCore/qsize.h") },
516     { QLatin1String("QSizeGrip"), QLatin1String("QtGui/qsizegrip.h") },
517     { QLatin1String("QSizePolicy"), QLatin1String("QtGui/qsizepolicy.h") },
518     { QLatin1String("QSlider"), QLatin1String("QtGui/qslider.h") },
519     { QLatin1String("QSocketNotifier"), QLatin1String("QtCore/qsocketnotifier.h") },
520     { QLatin1String("QSortFilterProxyModel"), QLatin1String("QtGui/qsortfilterproxymodel.h") },
521     { QLatin1String("QSpacerItem"), QLatin1String("QtGui/qlayoutitem.h") },
522     { QLatin1String("QSpinBox"), QLatin1String("QtGui/qspinbox.h") },
523     { QLatin1String("QSplashScreen"), QLatin1String("QtGui/qsplashscreen.h") },
524     { QLatin1String("QSplitter"), QLatin1String("QtGui/qsplitter.h") },
525     { QLatin1String("QSplitterHandle"), QLatin1String("QtGui/qsplitter.h") },
526     { QLatin1String("QSslCertificate"), QLatin1String("QtNetwork/qsslcertificate.h") },
527     { QLatin1String("QSslCipher"), QLatin1String("QtNetwork/qsslcipher.h") },
528     { QLatin1String("QSslConfiguration"), QLatin1String("QtNetwork/qsslconfiguration.h") },
529     { QLatin1String("QSslError"), QLatin1String("QtNetwork/qsslerror.h") },
530     { QLatin1String("QSslKey"), QLatin1String("QtNetwork/qsslkey.h") },
531     { QLatin1String("QSslSocket"), QLatin1String("QtNetwork/qsslsocket.h") },
532     { QLatin1String("QStack"), QLatin1String("QtCore/qstack.h") },
533     { QLatin1String("QStackedLayout"), QLatin1String("QtGui/qstackedlayout.h") },
534     { QLatin1String("QStackedWidget"), QLatin1String("QtGui/qstackedwidget.h") },
535     { QLatin1String("QStandardItem"), QLatin1String("QtGui/qstandarditemmodel.h") },
536     { QLatin1String("QStandardItemModel"), QLatin1String("QtGui/qstandarditemmodel.h") },
537     { QLatin1String("QStandardPaths"), QLatin1String("QtCore/qstandardpaths.h") },
538     { QLatin1String("QStatusBar"), QLatin1String("QtGui/qstatusbar.h") },
539     { QLatin1String("QStatusTipEvent"), QLatin1String("QtGui/qevent.h") },
540     { QLatin1String("QString"), QLatin1String("QtCore/qstring.h") },
541     { QLatin1String("QStringList"), QLatin1String("QtCore/qstringlist.h") },
542     { QLatin1String("QStringListModel"), QLatin1String("QtGui/qstringlistmodel.h") },
543     { QLatin1String("QStringMatcher"), QLatin1String("QtCore/qstringmatcher.h") },
544     { QLatin1String("QStringRef"), QLatin1String("QtCore/qstring.h") },
545     { QLatin1String("QStyle"), QLatin1String("QtGui/qstyle.h") },
546     { QLatin1String("QStyleFactory"), QLatin1String("QtGui/qstylefactory.h") },
547     { QLatin1String("QStyleFactoryInterface"), QLatin1String("QtGui/qstyleplugin.h") },
548     { QLatin1String("QStyleHintReturn"), QLatin1String("QtGui/qstyleoption.h") },
549     { QLatin1String("QStyleHintReturnMask"), QLatin1String("QtGui/qstyleoption.h") },
550     { QLatin1String("QStyleHintReturnVariant"), QLatin1String("QtGui/qstyleoption.h") },
551     { QLatin1String("QStyleOption"), QLatin1String("QtGui/qstyleoption.h") },
552     { QLatin1String("QStyleOptionButton"), QLatin1String("QtGui/qstyleoption.h") },
553     { QLatin1String("QStyleOptionComboBox"), QLatin1String("QtGui/qstyleoption.h") },
554     { QLatin1String("QStyleOptionComplex"), QLatin1String("QtGui/qstyleoption.h") },
555     { QLatin1String("QStyleOptionDockWidget"), QLatin1String("QtGui/qstyleoption.h") },
556     { QLatin1String("QStyleOptionFocusRect"), QLatin1String("QtGui/qstyleoption.h") },
557     { QLatin1String("QStyleOptionFrame"), QLatin1String("QtGui/qstyleoption.h") },
558     { QLatin1String("QStyleOptionGraphicsItem"), QLatin1String("QtGui/qstyleoption.h") },
559     { QLatin1String("QStyleOptionGroupBox"), QLatin1String("QtGui/qstyleoption.h") },
560     { QLatin1String("QStyleOptionHeader"), QLatin1String("QtGui/qstyleoption.h") },
561     { QLatin1String("QStyleOptionMenuItem"), QLatin1String("QtGui/qstyleoption.h") },
562     { QLatin1String("QStyleOptionProgressBar"), QLatin1String("QtGui/qstyleoption.h") },
563     { QLatin1String("QStyleOptionRubberBand"), QLatin1String("QtGui/qstyleoption.h") },
564     { QLatin1String("QStyleOptionSizeGrip"), QLatin1String("QtGui/qstyleoption.h") },
565     { QLatin1String("QStyleOptionSlider"), QLatin1String("QtGui/qstyleoption.h") },
566     { QLatin1String("QStyleOptionSpinBox"), QLatin1String("QtGui/qstyleoption.h") },
567     { QLatin1String("QStyleOptionTab"), QLatin1String("QtGui/qstyleoption.h") },
568     { QLatin1String("QStyleOptionTabBarBase"), QLatin1String("QtGui/qstyleoption.h") },
569     { QLatin1String("QStyleOptionTabWidgetFrame"), QLatin1String("QtGui/qstyleoption.h") },
570     { QLatin1String("QStyleOptionTitleBar"), QLatin1String("QtGui/qstyleoption.h") },
571     { QLatin1String("QStyleOptionToolBar"), QLatin1String("QtGui/qstyleoption.h") },
572     { QLatin1String("QStyleOptionToolBox"), QLatin1String("QtGui/qstyleoption.h") },
573     { QLatin1String("QStyleOptionToolButton"), QLatin1String("QtGui/qstyleoption.h") },
574     { QLatin1String("QStyleOptionViewItem"), QLatin1String("QtGui/qstyleoption.h") },
575     { QLatin1String("QStylePainter"), QLatin1String("QtGui/qstylepainter.h") },
576     { QLatin1String("QStylePlugin"), QLatin1String("QtGui/qstyleplugin.h") },
577     { QLatin1String("QStyledItemDelegate"), QLatin1String("QtGui/qstyleditemdelegate.h") },
578     { QLatin1String("QSvgGenerator"), QLatin1String("QtSvg/qsvggenerator.h") },
579     { QLatin1String("QSvgRenderer"), QLatin1String("QtSvg/qsvgrenderer.h") },
580     { QLatin1String("QSvgWidget"), QLatin1String("QtSvg/qsvgwidget.h") },
581     { QLatin1String("QSyntaxHighlighter"), QLatin1String("QtGui/qsyntaxhighlighter.h") },
582     { QLatin1String("QSystemSemaphore"), QLatin1String("QtCore/qsystemsemaphore.h") },
583     { QLatin1String("QSystemTrayIcon"), QLatin1String("QtGui/qsystemtrayicon.h") },
584     { QLatin1String("QTabBar"), QLatin1String("QtGui/qtabbar.h") },
585     { QLatin1String("QTabWidget"), QLatin1String("QtGui/qtabwidget.h") },
586     { QLatin1String("QTableView"), QLatin1String("QtGui/qtableview.h") },
587     { QLatin1String("QTableWidget"), QLatin1String("QtGui/qtablewidget.h") },
588     { QLatin1String("QTableWidgetItem"), QLatin1String("QtGui/qtablewidget.h") },
589     { QLatin1String("QTableWidgetSelectionRange"), QLatin1String("QtGui/qtablewidget.h") },
590     { QLatin1String("QTcpServer"), QLatin1String("QtNetwork/qtcpserver.h") },
591     { QLatin1String("QTcpSocket"), QLatin1String("QtNetwork/qtcpsocket.h") },
592     { QLatin1String("QTemporaryFile"), QLatin1String("QtCore/qtemporaryfile.h") },
593     { QLatin1String("QTestData"), QLatin1String("QtTest/qtestdata.h") },
594     { QLatin1String("QTestEventLoop"), QLatin1String("QtTest/qtesteventloop.h") },
595     { QLatin1String("QTextBlock"), QLatin1String("QtGui/qtextobject.h") },
596     { QLatin1String("QTextBlockFormat"), QLatin1String("QtGui/qtextformat.h") },
597     { QLatin1String("QTextBlockGroup"), QLatin1String("QtGui/qtextobject.h") },
598     { QLatin1String("QTextBlockUserData"), QLatin1String("QtGui/qtextobject.h") },
599     { QLatin1String("QTextBoundaryFinder"), QLatin1String("QtCore/qtextboundaryfinder.h") },
600     { QLatin1String("QTextBrowser"), QLatin1String("QtGui/qtextbrowser.h") },
601     { QLatin1String("QTextCharFormat"), QLatin1String("QtGui/qtextformat.h") },
602     { QLatin1String("QTextCodec"), QLatin1String("QtCore/qtextcodec.h") },
603     { QLatin1String("QTextCursor"), QLatin1String("QtGui/qtextcursor.h") },
604     { QLatin1String("QTextDecoder"), QLatin1String("QtCore/qtextcodec.h") },
605     { QLatin1String("QTextDocument"), QLatin1String("QtGui/qtextdocument.h") },
606     { QLatin1String("QTextDocumentFragment"), QLatin1String("QtGui/qtextdocumentfragment.h") },
607     { QLatin1String("QTextDocumentWriter"), QLatin1String("QtGui/qtextdocumentwriter.h") },
608     { QLatin1String("QTextEdit"), QLatin1String("QtGui/qtextedit.h") },
609     { QLatin1String("QTextEncoder"), QLatin1String("QtCore/qtextcodec.h") },
610     { QLatin1String("QTextFormat"), QLatin1String("QtGui/qtextformat.h") },
611     { QLatin1String("QTextFragment"), QLatin1String("QtGui/qtextobject.h") },
612     { QLatin1String("QTextFrame"), QLatin1String("QtGui/qtextobject.h") },
613     { QLatin1String("QTextFrameFormat"), QLatin1String("QtGui/qtextformat.h") },
614     { QLatin1String("QTextFrameLayoutData"), QLatin1String("QtGui/qtextobject.h") },
615     { QLatin1String("QTextImageFormat"), QLatin1String("QtGui/qtextformat.h") },
616     { QLatin1String("QTextInlineObject"), QLatin1String("QtGui/qtextlayout.h") },
617     { QLatin1String("QTextItem"), QLatin1String("QtGui/qpaintengine.h") },
618     { QLatin1String("QTextLayout"), QLatin1String("QtGui/qtextlayout.h") },
619     { QLatin1String("QTextLength"), QLatin1String("QtGui/qtextformat.h") },
620     { QLatin1String("QTextLine"), QLatin1String("QtGui/qtextlayout.h") },
621     { QLatin1String("QTextList"), QLatin1String("QtGui/qtextlist.h") },
622     { QLatin1String("QTextListFormat"), QLatin1String("QtGui/qtextformat.h") },
623     { QLatin1String("QTextObject"), QLatin1String("QtGui/qtextobject.h") },
624     { QLatin1String("QTextObjectInterface"), QLatin1String("QtGui/qabstracttextdocumentlayout.h") },
625     { QLatin1String("QTextOption"), QLatin1String("QtGui/qtextoption.h") },
626     { QLatin1String("QTextStream"), QLatin1String("QtCore/qtextstream.h") },
627     { QLatin1String("QTextStreamManipulator"), QLatin1String("QtCore/qtextstream.h") },
628     { QLatin1String("QTextTable"), QLatin1String("QtGui/qtexttable.h") },
629     { QLatin1String("QTextTableCell"), QLatin1String("QtGui/qtexttable.h") },
630     { QLatin1String("QTextTableCellFormat"), QLatin1String("QtGui/qtextformat.h") },
631     { QLatin1String("QTextTableFormat"), QLatin1String("QtGui/qtextformat.h") },
632     { QLatin1String("QThread"), QLatin1String("QtCore/qthread.h") },
633     { QLatin1String("QThreadPool"), QLatin1String("QtCore/qthreadpool.h") },
634     { QLatin1String("QTime"), QLatin1String("QtCore/qdatetime.h") },
635     { QLatin1String("QTimeEdit"), QLatin1String("QtGui/qdatetimeedit.h") },
636     { QLatin1String("QTimeLine"), QLatin1String("QtCore/qtimeline.h") },
637     { QLatin1String("QTimer"), QLatin1String("QtCore/qtimer.h") },
638     { QLatin1String("QTimerEvent"), QLatin1String("QtCore/qcoreevent.h") },
639     { QLatin1String("QToolBar"), QLatin1String("QtGui/qtoolbar.h") },
640     { QLatin1String("QToolBarActionProvider"), QLatin1String("QtDesigner/default_actionprovider.h") },
641     { QLatin1String("QToolBox"), QLatin1String("QtGui/qtoolbox.h") },
642     { QLatin1String("QToolButton"), QLatin1String("QtGui/qtoolbutton.h") },
643     { QLatin1String("QToolTip"), QLatin1String("QtGui/qtooltip.h") },
644     { QLatin1String("QTransform"), QLatin1String("QtGui/qtransform.h") },
645     { QLatin1String("QTranslator"), QLatin1String("QtCore/qtranslator.h") },
646     { QLatin1String("QTreeView"), QLatin1String("QtGui/qtreeview.h") },
647     { QLatin1String("QTreeWidget"), QLatin1String("QtGui/qtreewidget.h") },
648     { QLatin1String("QTreeWidgetItem"), QLatin1String("QtGui/qtreewidget.h") },
649     { QLatin1String("QTreeWidgetItemIterator"), QLatin1String("QtGui/qtreewidgetitemiterator.h") },
650     { QLatin1String("QUdpSocket"), QLatin1String("QtNetwork/qudpsocket.h") },
651     { QLatin1String("QUiLoader"), QLatin1String("QtUiTools/quiloader.h") },
652     { QLatin1String("QUndoCommand"), QLatin1String("QtGui/qundostack.h") },
653     { QLatin1String("QUndoGroup"), QLatin1String("QtGui/qundogroup.h") },
654     { QLatin1String("QUndoStack"), QLatin1String("QtGui/qundostack.h") },
655     { QLatin1String("QUndoView"), QLatin1String("QtGui/qundoview.h") },
656     { QLatin1String("QUrl"), QLatin1String("QtCore/qurl.h") },
657     { QLatin1String("QUrlInfo"), QLatin1String("QtNetwork/qurlinfo.h") },
658     { QLatin1String("QUuid"), QLatin1String("QtCore/quuid.h") },
659     { QLatin1String("QVBoxLayout"), QLatin1String("QtGui/qboxlayout.h") },
660     { QLatin1String("QValidator"), QLatin1String("QtGui/qvalidator.h") },
661     { QLatin1String("QVarLengthArray"), QLatin1String("QtCore/qvarlengtharray.h") },
662     { QLatin1String("QVariant"), QLatin1String("QtCore/qvariant.h") },
663     { QLatin1String("QVariantAnimation"), QLatin1String("QtGui/qvariantanimation.h") },
664     { QLatin1String("QVector"), QLatin1String("QtCore/qvector.h") },
665     { QLatin1String("QVector2D"), QLatin1String("QtGui/qvector2d.h") },
666     { QLatin1String("QVector3D"), QLatin1String("QtGui/qvector3d.h") },
667     { QLatin1String("QVector4D"), QLatin1String("QtGui/qvector4d.h") },
668     { QLatin1String("QVectorData"), QLatin1String("QtCore/qvector.h") },
669     { QLatin1String("QWaitCondition"), QLatin1String("QtCore/qwaitcondition.h") },
670     { QLatin1String("QWeakPointer"), QLatin1String("QtCore/qsharedpointer.h") },
671     { QLatin1String("QWhatsThis"), QLatin1String("QtGui/qwhatsthis.h") },
672     { QLatin1String("QWhatsThisClickedEvent"), QLatin1String("QtGui/qevent.h") },
673     { QLatin1String("QWheelEvent"), QLatin1String("QtGui/qevent.h") },
674     { QLatin1String("QWidget"), QLatin1String("QtGui/qwidget.h") },
675     { QLatin1String("QWidgetAction"), QLatin1String("QtGui/qwidgetaction.h") },
676     { QLatin1String("QWidgetItem"), QLatin1String("QtGui/qlayoutitem.h") },
677     { QLatin1String("QWidgetItemV2"), QLatin1String("QtGui/qlayoutitem.h") },
678     { QLatin1String("QWindowStateChangeEvent"), QLatin1String("QtGui/qevent.h") },
679     { QLatin1String("QWindowsStyle"), QLatin1String("QtGui/qwindowsstyle.h") },
680     { QLatin1String("QWizard"), QLatin1String("QtGui/qwizard.h") },
681     { QLatin1String("QWizardPage"), QLatin1String("QtGui/qwizard.h") },
682     { QLatin1String("QWorkspace"), QLatin1String("QtGui/qworkspace.h") },
683     { QLatin1String("QWriteLocker"), QLatin1String("QtCore/qreadwritelock.h") },
684     { QLatin1String("QX11EmbedContainer"), QLatin1String("QtGui/qx11embed_x11.h") },
685     { QLatin1String("QX11EmbedWidget"), QLatin1String("QtGui/qx11embed_x11.h") },
686     { QLatin1String("QX11Info"), QLatin1String("QtGui/qx11info_x11.h") },
687     { QLatin1String("QXmlAttributes"), QLatin1String("QtXml/qxml.h") },
688     { QLatin1String("QXmlContentHandler"), QLatin1String("QtXml/qxml.h") },
689     { QLatin1String("QXmlDTDHandler"), QLatin1String("QtXml/qxml.h") },
690     { QLatin1String("QXmlDeclHandler"), QLatin1String("QtXml/qxml.h") },
691     { QLatin1String("QXmlDefaultHandler"), QLatin1String("QtXml/qxml.h") },
692     { QLatin1String("QXmlEntityResolver"), QLatin1String("QtXml/qxml.h") },
693     { QLatin1String("QXmlErrorHandler"), QLatin1String("QtXml/qxml.h") },
694     { QLatin1String("QXmlInputSource"), QLatin1String("QtXml/qxml.h") },
695     { QLatin1String("QXmlLexicalHandler"), QLatin1String("QtXml/qxml.h") },
696     { QLatin1String("QXmlLocator"), QLatin1String("QtXml/qxml.h") },
697     { QLatin1String("QXmlNamespaceSupport"), QLatin1String("QtXml/qxml.h") },
698     { QLatin1String("QXmlParseException"), QLatin1String("QtXml/qxml.h") },
699     { QLatin1String("QXmlReader"), QLatin1String("QtXml/qxml.h") },
700     { QLatin1String("QXmlSimpleReader"), QLatin1String("QtXml/qxml.h") },
701     { QLatin1String("QXmlStreamAttribute"), QLatin1String("QtXml/qxmlstream.h") },
702     { QLatin1String("QXmlStreamAttributes"), QLatin1String("QtXml/qxmlstream.h") },
703     { QLatin1String("QXmlStreamEntityDeclaration"), QLatin1String("QtXml/qxmlstream.h") },
704     { QLatin1String("QXmlStreamEntityResolver"), QLatin1String("QtXml/qxmlstream.h") },
705     { QLatin1String("QXmlStreamNamespaceDeclaration"), QLatin1String("QtXml/qxmlstream.h") },
706     { QLatin1String("QXmlStreamNotationDeclaration"), QLatin1String("QtXml/qxmlstream.h") },
707     { QLatin1String("QXmlStreamReader"), QLatin1String("QtXml/qxmlstream.h") },
708     { QLatin1String("QXmlStreamWriter"), QLatin1String("QtXml/qxmlstream.h") },
709     { QLatin1String("ResultIteratorBase"), QLatin1String("QtCore/qtconcurrentresultstore.h") },
710     { QLatin1String("ResultStoreBase"), QLatin1String("QtCore/qtconcurrentresultstore.h") },
711     { QLatin1String("SignalSlotEditor"), QLatin1String("QtDesigner/signalsloteditor.h") },
712     { QLatin1String("SignalSlotEditorPlugin"), QLatin1String("QtDesigner/signalsloteditor_plugin.h") },
713     { QLatin1String("SignalSlotEditorTool"), QLatin1String("QtDesigner/signalsloteditor_tool.h") },
714     { QLatin1String("StringListEditorButton"), QLatin1String("QtDesigner/stringlisteditorbutton.h") },
715     { QLatin1String("Tab"), QLatin1String("QtGui/qtextoption.h") },
716     { QLatin1String("TabOrderEditor"), QLatin1String("QtDesigner/tabordereditor.h") },
717     { QLatin1String("TabOrderEditorPlugin"), QLatin1String("QtDesigner/tabordereditor_plugin.h") },
718     { QLatin1String("TabOrderEditorTool"), QLatin1String("QtDesigner/tabordereditor_tool.h") },
719     { QLatin1String("TaskMenuComponent"), QLatin1String("QtDesigner/taskmenu_component.h") },
720     { QLatin1String("ThreadEngineBase"), QLatin1String("QtCore/qtconcurrentthreadengine.h") },
721     { QLatin1String("UnhandledException"), QLatin1String("QtCore/qtconcurrentexception.h") },
722     { QLatin1String("WidgetBox"), QLatin1String("QtDesigner/widgetbox.h") },
723     { QLatin1String("WidgetBoxDnDItem"), QLatin1String("QtDesigner/widgetbox_dnditem.h") },
724     { QLatin1String("WidgetHandle"), QLatin1String("QtDesigner/widgetselection.h") },
725     { QLatin1String("WidgetSelection"), QLatin1String("QtDesigner/widgetselection.h") },
726 };
727 static const qint16 ClassTblSize = sizeof(ClassTbl) / sizeof(ClassTblData);
728
729 WriteIncludes::WriteIncludes(Uic *uic)
730     : m_uic(uic), m_output(uic->output()), m_scriptsActivated(false), m_laidOut(false)
731 {
732 }
733
734 void WriteIncludes::acceptUI(DomUI *node)
735 {
736     m_scriptsActivated = false;
737     m_laidOut = false;
738     m_localIncludes.clear();
739     m_globalIncludes.clear();
740     m_knownClasses.clear();
741     m_includeBaseNames.clear();
742
743     if (node->elementIncludes())
744         acceptIncludes(node->elementIncludes());
745
746     if (node->elementCustomWidgets())
747         TreeWalker::acceptCustomWidgets(node->elementCustomWidgets());
748
749     add(QLatin1String("QApplication"));
750     add(QLatin1String("QVariant"));
751     add(QLatin1String("QAction"));
752
753     add(QLatin1String("QButtonGroup")); // ### only if it is really necessary
754     add(QLatin1String("QHeaderView"));
755
756     if (m_uic->hasExternalPixmap() && m_uic->pixmapFunction() == QLatin1String("qPixmapFromMimeSource")) {
757         qWarning("%s: Warning: The form file has external pixmaps or qPixmapFromMimeSource() set as a pixmap function. "
758                  "This requires Qt 3 support, which is disabled. The resulting code will not compile.",
759                  qPrintable(m_uic->option().messagePrefix()));
760     }
761
762     TreeWalker::acceptUI(node);
763
764     writeHeaders(m_globalIncludes, true);
765     writeHeaders(m_localIncludes, false);
766
767     m_output << QLatin1Char('\n');
768 }
769
770 void WriteIncludes::acceptWidget(DomWidget *node)
771 {
772 #if DEBUG_WRITE_INCLUDES
773     fprintf(stderr, "%s '%s'\n", Q_FUNC_INFO, qPrintable(node->attributeClass()));
774 #endif
775
776     add(node->attributeClass());
777     TreeWalker::acceptWidget(node);
778 }
779
780 void WriteIncludes::acceptLayout(DomLayout *node)
781 {
782     add(node->attributeClass());
783     m_laidOut = true;
784     TreeWalker::acceptLayout(node);
785 }
786
787 void WriteIncludes::acceptSpacer(DomSpacer *node)
788 {
789     add(QLatin1String("QSpacerItem"));
790     TreeWalker::acceptSpacer(node);
791 }
792
793 void WriteIncludes::acceptProperty(DomProperty *node)
794 {
795     if (node->kind() == DomProperty::Date)
796         add(QLatin1String("QDate"));
797     if (node->kind() == DomProperty::Locale)
798         add(QLatin1String("QLocale"));
799     TreeWalker::acceptProperty(node);
800 }
801
802 void WriteIncludes::insertIncludeForClass(const QString &className, QString header, bool global)
803 {
804 #if DEBUG_WRITE_INCLUDES
805     fprintf(stderr, "%s %s '%s' %d\n", Q_FUNC_INFO, qPrintable(className), qPrintable(header), global);
806 #endif
807
808     do {
809         if (!header.isEmpty())
810             break;
811
812         // Known class
813         bool isknown = false;
814         for (qint16 i = 0; i < ClassTblSize; i++) {
815             if (ClassTbl[i].klass == className) {
816                 header = ClassTbl[i].header;
817                 global =  true;
818                 isknown = true;
819                 break;
820             }
821         }
822         if (isknown) {
823             break;
824         }
825
826         // Quick check by class name to detect includehints provided for custom widgets.
827         // Remove namespaces
828         QString lowerClassName = className.toLower();
829         static const QString namespaceSeparator = QLatin1String("::");
830         const int namespaceIndex = lowerClassName.lastIndexOf(namespaceSeparator);
831         if (namespaceIndex != -1)
832             lowerClassName.remove(0, namespaceIndex + namespaceSeparator.size());
833         if (m_includeBaseNames.contains(lowerClassName)) {
834             header.clear();
835             break;
836         }
837
838         // Last resort: Create default header
839         if (!m_uic->option().implicitIncludes)
840             break;
841         header = lowerClassName + QLatin1String(".h");
842 #if WARN_HEADER_GENERATOR
843         qWarning("%s: Warning: generated header '%s' for class '%s'.",
844                  qPrintable(m_uic->option().messagePrefix()),
845                  qPrintable(header), qPrintable(className));
846 #endif
847
848         global = true;
849     } while (false);
850
851     if (!header.isEmpty())
852         insertInclude(header, global);
853 }
854
855 void WriteIncludes::add(const QString &className, bool determineHeader, const QString &header, bool global)
856 {
857 #if DEBUG_WRITE_INCLUDES
858     fprintf(stderr, "%s %s '%s' %d\n", Q_FUNC_INFO, qPrintable(className), qPrintable(header), global);
859 #endif
860
861     if (className.isEmpty() || m_knownClasses.contains(className))
862         return;
863
864     m_knownClasses.insert(className);
865
866     if (!m_laidOut && m_uic->customWidgetsInfo()->extends(className, QLatin1String("QToolBox")))
867         add(QLatin1String("QLayout")); // spacing property of QToolBox)
868
869     if (className == QLatin1String("Line")) { // ### hmm, deprecate me!
870         add(QLatin1String("QFrame"));
871         return;
872     }
873
874     if (determineHeader)
875         insertIncludeForClass(className, header, global);
876 }
877
878 void WriteIncludes::acceptCustomWidget(DomCustomWidget *node)
879 {
880     const QString className = node->elementClass();
881     if (className.isEmpty())
882         return;
883
884     if (const DomScript *domScript = node->elementScript())
885         if (!domScript->text().isEmpty())
886             activateScripts();
887
888     if (!node->elementHeader() || node->elementHeader()->text().isEmpty()) {
889         add(className, false); // no header specified
890     } else {
891         // custom header unless it is a built-in qt class
892         QString header;
893         bool global = false;
894         bool isknown = false;
895         for (qint16 i = 0; i < ClassTblSize; i++) {
896             if (ClassTbl[i].klass == className) {
897                 isknown = true;
898                 break;
899             }
900         }
901         if (!isknown) {
902             global = node->elementHeader()->attributeLocation().toLower() == QLatin1String("global");
903             header = node->elementHeader()->text();
904         }
905         add(className, true, header, global);
906     }
907 }
908
909 void WriteIncludes::acceptCustomWidgets(DomCustomWidgets *node)
910 {
911     Q_UNUSED(node);
912 }
913
914 void WriteIncludes::acceptInclude(DomInclude *node)
915 {
916     bool global = true;
917     if (node->hasAttributeLocation())
918         global = node->attributeLocation() == QLatin1String("global");
919     insertInclude(node->text(), global);
920 }
921
922 void WriteIncludes::insertInclude(const QString &header, bool global)
923 {
924 #if DEBUG_WRITE_INCLUDES
925     fprintf(stderr, "%s %s %d\n", Q_FUNC_INFO, qPrintable(header), global);
926 #endif
927
928     OrderedSet &includes = global ?  m_globalIncludes : m_localIncludes;
929     if (includes.contains(header))
930         return;
931     // Insert. Also remember base name for quick check of suspicious custom plugins
932     includes.insert(header, false);
933     const QString lowerBaseName = QFileInfo(header).completeBaseName ().toLower();
934     m_includeBaseNames.insert(lowerBaseName);
935 }
936
937 void WriteIncludes::writeHeaders(const OrderedSet &headers, bool global)
938 {
939     const QChar openingQuote = global ? QLatin1Char('<') : QLatin1Char('"');
940     const QChar closingQuote = global ? QLatin1Char('>') : QLatin1Char('"');
941
942     // Check for the old headers 'qslider.h' and replace by 'QtGui/QSlider'
943     foreach (const QString &header, headers.keys()) {
944         if (!header.trimmed().isEmpty()) {
945             m_output << "#include " << openingQuote << header << closingQuote << QLatin1Char('\n');
946         }
947     }
948 }
949
950 void WriteIncludes::acceptWidgetScripts(const DomScripts &scripts, DomWidget *, const  DomWidgets &)
951 {
952     if (!scripts.empty()) {
953         activateScripts();
954     }
955 }
956
957 void WriteIncludes::activateScripts()
958 {
959     if (!m_scriptsActivated) {
960         add(QLatin1String("QScriptEngine"));
961         add(QLatin1String("QDebug"));
962         m_scriptsActivated = true;
963     }
964 }
965 } // namespace CPP
966
967 QT_END_NAMESPACE