1 | /* $Id: precomp_gcc.h 98216 2023-01-22 22:52:06Z vboxsync $*/
|
---|
2 | /** @file
|
---|
3 | * VBox Qt GUI - Precompiled header for Visual C++.
|
---|
4 | */
|
---|
5 |
|
---|
6 | /*
|
---|
7 | * Copyright (C) 2016-2023 Oracle and/or its affiliates.
|
---|
8 | *
|
---|
9 | * This file is part of VirtualBox base platform packages, as
|
---|
10 | * available from https://www.virtualbox.org.
|
---|
11 | *
|
---|
12 | * This program is free software; you can redistribute it and/or
|
---|
13 | * modify it under the terms of the GNU General Public License
|
---|
14 | * as published by the Free Software Foundation, in version 3 of the
|
---|
15 | * License.
|
---|
16 | *
|
---|
17 | * This program is distributed in the hope that it will be useful, but
|
---|
18 | * WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
20 | * General Public License for more details.
|
---|
21 | *
|
---|
22 | * You should have received a copy of the GNU General Public License
|
---|
23 | * along with this program; if not, see <https://www.gnu.org/licenses>.
|
---|
24 | *
|
---|
25 | * SPDX-License-Identifier: GPL-3.0-only
|
---|
26 | */
|
---|
27 |
|
---|
28 |
|
---|
29 | /*
|
---|
30 | * General pickings
|
---|
31 | *
|
---|
32 | * Note! We do not include iprt/log.h or similar because we need to
|
---|
33 | * support selecting different log groups. So, for now we restrict
|
---|
34 | * ourselves to frequently used QT, compiler, and system headers.
|
---|
35 | */
|
---|
36 |
|
---|
37 | /* Some CRT stuff that's frequently used. */
|
---|
38 | #include <new>
|
---|
39 | #include <stdlib.h>
|
---|
40 |
|
---|
41 | /* The most frequently used qt headers on a linux hosts based on dependency files. */
|
---|
42 | #include <QtCore/qobject.h> /* 1003 */
|
---|
43 | #include <QtCore/qmetatype.h> /* 958 */
|
---|
44 | #include <QtCore/qstring.h> /* 923 */
|
---|
45 | #include <QtCore/qstringlist.h> /* 905 */
|
---|
46 | #include <QtCore/qrect.h> /* 858 */
|
---|
47 | #include <QtCore/qvector.h> /* 853 */
|
---|
48 | #include <QtCore/qmap.h> /* 849 */
|
---|
49 | #include <QtCore/qcoreevent.h> /* 838 */
|
---|
50 | #include <QtWidgets/qwidget.h> /* 826 */
|
---|
51 | #include <QtCore/qpair.h> /* 698 */
|
---|
52 | #include <QtCore/qlist.h> /* 682 */
|
---|
53 | #include <QtGui/qpixmap.h> /* 670 */
|
---|
54 | #include <QtCore/qhash.h> /* 637 */
|
---|
55 | #include <QtCore/qsize.h> /* 627 */
|
---|
56 | #include <QtCore/qglobal.h> /* 591 */
|
---|
57 | #include <QtCore/qvariant.h> /* 588 */
|
---|
58 | #include <QtCore/qregexp.h> /* 587 */
|
---|
59 | #include <QtCore/qversiontagging.h> /* 585 */
|
---|
60 | #include <QtCore/qtypeinfo.h> /* 585 */
|
---|
61 | #include <QtCore/qtcore-config.h> /* 585 */
|
---|
62 | #include <QtCore/qsystemdetection.h> /* 585 */
|
---|
63 | #include <QtCore/qsysinfo.h> /* 585 */
|
---|
64 | #include <QtCore/qstringview.h> /* 585 */
|
---|
65 | #include <QtCore/qstringliteral.h> /* 585 */
|
---|
66 | #include <QtCore/qstringalgorithms.h> /* 585 */
|
---|
67 | #include <QtCore/qrefcount.h> /* 585 */
|
---|
68 | #include <QtCore/qprocessordetection.h> /* 585 */
|
---|
69 | #include <QtCore/qnumeric.h> /* 585 */
|
---|
70 | #include <QtCore/qnamespace.h> /* 585 */
|
---|
71 | #include <QtCore/qlogging.h> /* 585 */
|
---|
72 | #include <QtCore/qglobalstatic.h> /* 585 */
|
---|
73 | #include <QtCore/qgenericatomic.h> /* 585 */
|
---|
74 | #include <QtCore/qflags.h> /* 585 */
|
---|
75 | #include <QtCore/qconfig.h> /* 585 */
|
---|
76 | #include <QtCore/qcompilerdetection.h> /* 585 */
|
---|
77 | #include <QtCore/qchar.h> /* 585 */
|
---|
78 | #include <QtCore/qbytearray.h> /* 585 */
|
---|
79 | #include <QtCore/qbasicatomic.h> /* 585 */
|
---|
80 | #include <QtCore/qatomic_cxx11.h> /* 585 */
|
---|
81 | #include <QtCore/qatomic.h> /* 585 */
|
---|
82 | #include <QtCore/qarraydata.h> /* 585 */
|
---|
83 | #include <QtCore/qstringmatcher.h> /* 584 */
|
---|
84 | #include <QtCore/qiterator.h> /* 584 */
|
---|
85 | #include <QtCore/qhashfunctions.h> /* 584 */
|
---|
86 | #include <QtCore/qbytearraylist.h> /* 584 */
|
---|
87 | #include <QtCore/qalgorithms.h> /* 584 */
|
---|
88 | #include <QtCore/qvarlengtharray.h> /* 580 */
|
---|
89 | #include <QtCore/qobjectdefs.h> /* 580 */
|
---|
90 | #include <QtCore/qcontainerfwd.h> /* 580 */
|
---|
91 | #include <QtCore/qscopedpointer.h> /* 577 */
|
---|
92 | #include <QtGui/qcolor.h> /* 574 */
|
---|
93 | #include <QtCore/qpoint.h> /* 549 */
|
---|
94 | #include <QtGui/qtransform.h> /* 546 */
|
---|
95 | #include <QtCore/qmargins.h> /* 544 */
|
---|
96 | #include <QtCore/qshareddata.h> /* 536 */
|
---|
97 | #include <QtGui/qimage.h> /* 532 */
|
---|
98 | #include <QtCore/qsharedpointer.h> /* 532 */
|
---|
99 | #include <QtGui/qkeysequence.h> /* 531 */
|
---|
100 | #include <QtGui/qcursor.h> /* 530 */
|
---|
101 | #include <QtCore/qiodevice.h> /* 530 */
|
---|
102 | #include <QtGui/qtguiglobal.h> /* 528 */
|
---|
103 | #include <QtGui/qtgui-config.h> /* 528 */
|
---|
104 | #include <QtGui/qwindowdefs.h> /* 527 */
|
---|
105 | #include <QtGui/qregion.h> /* 527 */
|
---|
106 | #include <QtGui/qrgba64.h> /* 526 */
|
---|
107 | #include <QtGui/qrgb.h> /* 526 */
|
---|
108 | #include <QtGui/qpolygon.h> /* 526 */
|
---|
109 | #include <QtGui/qpixelformat.h> /* 526 */
|
---|
110 | #include <QtGui/qpainterpath.h> /* 526 */
|
---|
111 | #include <QtGui/qpaintdevice.h> /* 526 */
|
---|
112 | #include <QtGui/qmatrix.h> /* 526 */
|
---|
113 | #include <QtCore/qline.h> /* 526 */
|
---|
114 | #include <QtCore/qdatastream.h> /* 526 */
|
---|
115 | #include <QtWidgets/qtwidgetsglobal.h> /* 520 */
|
---|
116 | #include <QtWidgets/qtwidgets-config.h> /* 520 */
|
---|
117 | #include <QtGui/qfont.h> /* 507 */
|
---|
118 | #include <QtGui/qbrush.h> /* 507 */
|
---|
119 | #include <QtGui/qpalette.h> /* 506 */
|
---|
120 | #include <QtWidgets/qsizepolicy.h> /* 505 */
|
---|
121 | #include <QtGui/qfontmetrics.h> /* 497 */
|
---|
122 | #include <QtGui/qfontinfo.h> /* 496 */
|
---|
123 |
|
---|
124 | /* Toplevel headers for which we already include the sub-headers.
|
---|
125 | Note! Must exist in precomptricks so we can apply #pragma once to them (good for GCC). */
|
---|
126 | #include <QVariant>
|
---|
127 | #include <QVarLengthArray>
|
---|
128 | #include <QMutex>
|
---|
129 | #include <QSysInfo>
|
---|
130 | #include <QString>
|
---|
131 | #include <QStringList>
|
---|
132 | #include <QChar>
|
---|
133 | #include <QApplication>
|
---|
134 | #include <QGroupBox>
|
---|
135 | #include <QPushButton>
|
---|
136 | #include <QRadioButton>
|
---|
137 | #include <QObject>
|
---|
138 | #include <QVector>
|
---|
139 | #include <QMap>
|
---|
140 | #include <QMetaType>
|
---|
141 | #include <QRect>
|
---|
142 | #include <QWidget>
|
---|
143 | #include <QPixmap>
|
---|
144 |
|
---|
145 | /* misc others that we include a bit. */
|
---|
146 | #include <QVBoxLayout>
|
---|
147 | #include <QHBoxLayout>
|
---|
148 | #include <QPainter>
|
---|
149 | #include <QTimer>
|
---|
150 | #include <QStyle>
|
---|
151 | #include <QMenu>
|
---|
152 | #include <QDir>
|
---|
153 | #include <QUuid>
|
---|
154 | #include <QLineEdit>
|
---|
155 |
|
---|
156 | /* cdefs.h is a little bit of a question since it defines RT_STRICT, which someone
|
---|
157 | may want to redefine locally, but it's required by all other IPRT VBox includes. */
|
---|
158 | #include <iprt/cdefs.h>
|
---|
159 | #include <iprt/types.h>
|
---|
160 | #include <iprt/stdarg.h>
|
---|
161 | #include <iprt/stdint.h>
|
---|
162 | #include <iprt/assert.h>
|
---|
163 | #include <iprt/assertcompile.h>
|
---|
164 | #include <iprt/errcore.h>
|
---|
165 | #include <iprt/cpp/list.h>
|
---|
166 | #include <iprt/cpp/meta.h>
|
---|
167 | #include <VBox/com/array.h>
|
---|
168 | #include <VBox/com/assert.h>
|
---|
169 | #include <VBox/com/ptr.h>
|
---|
170 | #include <VBox/com/com.h>
|
---|
171 | #include <VBox/com/defs.h>
|
---|
172 |
|
---|
173 | /* These two are freuqently used internal headers. */
|
---|
174 | #include "UILibraryDefs.h"
|
---|
175 | /*#include "QIWithRestorableGeometry.h" - broken as it includes iprt/log.h thru UIDefs.h via UICommon.h. */
|
---|
176 | /*#include "QIWithRetranslateUI.h" - broken as it includes iprt/log.h thru UIDefs.h via UITranslator.h. */
|
---|
177 |
|
---|
178 | #if defined(Log) || defined(LogIsEnabled)
|
---|
179 | # error "Log() from iprt/log.h cannot be defined in the precompiled header!"
|
---|
180 | #endif
|
---|
181 |
|
---|