Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qtdeprecationmarkers.h
Go to the documentation of this file.
1// Copyright (C) 2022 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QTDEPRECATIONMARKERS_H
5#define QTDEPRECATIONMARKERS_H
6
7#include <QtCore/qtconfigmacros.h>
8#include <QtCore/qtversionchecks.h>
9#include <QtCore/qcompilerdetection.h> // for Q_DECL_DEPRECATED
10
11#if 0
12#pragma qt_class(QtDeprecationMarkers)
13#pragma qt_sync_stop_processing
14#endif
15
17
18#if defined(QT_NO_DEPRECATED)
19# undef QT_DEPRECATED
20# undef QT_DEPRECATED_X
21# undef QT_DEPRECATED_VARIABLE
22# undef QT_DEPRECATED_CONSTRUCTOR
23#elif !defined(QT_NO_DEPRECATED_WARNINGS)
24# undef QT_DEPRECATED
25# define QT_DEPRECATED Q_DECL_DEPRECATED
26# undef QT_DEPRECATED_X
27# define QT_DEPRECATED_X(text) Q_DECL_DEPRECATED_X(text)
28# undef QT_DEPRECATED_VARIABLE
29# define QT_DEPRECATED_VARIABLE Q_DECL_VARIABLE_DEPRECATED
30# undef QT_DEPRECATED_CONSTRUCTOR
31# define QT_DEPRECATED_CONSTRUCTOR Q_DECL_CONSTRUCTOR_DEPRECATED explicit
32#else
33# undef QT_DEPRECATED
34# define QT_DEPRECATED
35# undef QT_DEPRECATED_X
36# define QT_DEPRECATED_X(text)
37# undef QT_DEPRECATED_VARIABLE
38# define QT_DEPRECATED_VARIABLE
39# undef QT_DEPRECATED_CONSTRUCTOR
40# define QT_DEPRECATED_CONSTRUCTOR
41# undef Q_DECL_ENUMERATOR_DEPRECATED
42# define Q_DECL_ENUMERATOR_DEPRECATED
43# undef Q_DECL_ENUMERATOR_DEPRECATED_X
44# define Q_DECL_ENUMERATOR_DEPRECATED_X(ignored)
45#endif
46
47// If the deprecated macro is defined, use its value
48#if !defined(QT_DISABLE_DEPRECATED_UP_TO) && defined(QT_DISABLE_DEPRECATED_BEFORE)
49# define QT_DISABLE_DEPRECATED_UP_TO QT_DISABLE_DEPRECATED_BEFORE
50#endif
51
52// If the deprecated macro is defined, use its value
53#if !defined(QT_WARN_DEPRECATED_UP_TO) && defined(QT_DEPRECATED_WARNINGS_SINCE)
54# define QT_WARN_DEPRECATED_UP_TO QT_DEPRECATED_WARNINGS_SINCE
55#endif
56
57#ifndef QT_WARN_DEPRECATED_UP_TO
58# ifdef QT_DISABLE_DEPRECATED_UP_TO
59# define QT_WARN_DEPRECATED_UP_TO QT_DISABLE_DEPRECATED_UP_TO
60# else
61# define QT_WARN_DEPRECATED_UP_TO QT_VERSION
62# endif
63#endif
64
65#ifndef QT_DISABLE_DEPRECATED_UP_TO
66#define QT_DISABLE_DEPRECATED_UP_TO QT_VERSION_CHECK(5, 0, 0)
67#endif
68
69/*
70 QT_DEPRECATED_SINCE(major, minor) evaluates as true if the Qt version is greater than
71 the deprecation point specified.
72
73 Use it to specify from which version of Qt a function or class has been deprecated
74
75 Example:
76 #if QT_DEPRECATED_SINCE(5,1)
77 QT_DEPRECATED void deprecatedFunction(); //function deprecated since Qt 5.1
78 #endif
79
80*/
81#ifdef QT_DEPRECATED
82#define QT_DEPRECATED_SINCE(major, minor) (QT_VERSION_CHECK(major, minor, 0) > QT_DISABLE_DEPRECATED_UP_TO)
83#else
84#define QT_DEPRECATED_SINCE(major, minor) 0
85#endif
86
87/*
88 QT_DEPRECATED_VERSION(major, minor) and QT_DEPRECATED_VERSION_X(major, minor, text)
89 outputs a deprecation warning if QT_WARN_DEPRECATED_UP_TO is equal to or greater
90 than the version specified as major, minor. This makes it possible to deprecate a
91 function without annoying a user who needs to stay compatible with a specified minimum
92 version and therefore can't use the new function.
93*/
94#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 12, 0)
95# define QT_DEPRECATED_VERSION_X_5_12(text) QT_DEPRECATED_X(text)
96# define QT_DEPRECATED_VERSION_5_12 QT_DEPRECATED
97#else
98# define QT_DEPRECATED_VERSION_X_5_12(text)
99# define QT_DEPRECATED_VERSION_5_12
100#endif
101
102#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 13, 0)
103# define QT_DEPRECATED_VERSION_X_5_13(text) QT_DEPRECATED_X(text)
104# define QT_DEPRECATED_VERSION_5_13 QT_DEPRECATED
105#else
106# define QT_DEPRECATED_VERSION_X_5_13(text)
107# define QT_DEPRECATED_VERSION_5_13
108#endif
109
110#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 14, 0)
111# define QT_DEPRECATED_VERSION_X_5_14(text) QT_DEPRECATED_X(text)
112# define QT_DEPRECATED_VERSION_5_14 QT_DEPRECATED
113#else
114# define QT_DEPRECATED_VERSION_X_5_14(text)
115# define QT_DEPRECATED_VERSION_5_14
116#endif
117
118#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 15, 0)
119# define QT_DEPRECATED_VERSION_X_5_15(text) QT_DEPRECATED_X(text)
120# define QT_DEPRECATED_VERSION_5_15 QT_DEPRECATED
121#else
122# define QT_DEPRECATED_VERSION_X_5_15(text)
123# define QT_DEPRECATED_VERSION_5_15
124#endif
125
126#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 0, 0)
127# define QT_DEPRECATED_VERSION_X_6_0(text) QT_DEPRECATED_X(text)
128# define QT_DEPRECATED_VERSION_6_0 QT_DEPRECATED
129#else
130# define QT_DEPRECATED_VERSION_X_6_0(text)
131# define QT_DEPRECATED_VERSION_6_0
132#endif
133
134#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 1, 0)
135# define QT_DEPRECATED_VERSION_X_6_1(text) QT_DEPRECATED_X(text)
136# define QT_DEPRECATED_VERSION_6_1 QT_DEPRECATED
137#else
138# define QT_DEPRECATED_VERSION_X_6_1(text)
139# define QT_DEPRECATED_VERSION_6_1
140#endif
141
142#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 2, 0)
143# define QT_DEPRECATED_VERSION_X_6_2(text) QT_DEPRECATED_X(text)
144# define QT_DEPRECATED_VERSION_6_2 QT_DEPRECATED
145#else
146# define QT_DEPRECATED_VERSION_X_6_2(text)
147# define QT_DEPRECATED_VERSION_6_2
148#endif
149
150#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 3, 0)
151# define QT_DEPRECATED_VERSION_X_6_3(text) QT_DEPRECATED_X(text)
152# define QT_DEPRECATED_VERSION_6_3 QT_DEPRECATED
153#else
154# define QT_DEPRECATED_VERSION_X_6_3(text)
155# define QT_DEPRECATED_VERSION_6_3
156#endif
157
158#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 4, 0)
159# define QT_DEPRECATED_VERSION_X_6_4(text) QT_DEPRECATED_X(text)
160# define QT_DEPRECATED_VERSION_6_4 QT_DEPRECATED
161#else
162# define QT_DEPRECATED_VERSION_X_6_4(text)
163# define QT_DEPRECATED_VERSION_6_4
164#endif
165
166#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 5, 0)
167# define QT_DEPRECATED_VERSION_X_6_5(text) QT_DEPRECATED_X(text)
168# define QT_DEPRECATED_VERSION_6_5 QT_DEPRECATED
169#else
170# define QT_DEPRECATED_VERSION_X_6_5(text)
171# define QT_DEPRECATED_VERSION_6_5
172#endif
173
174#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 6, 0)
175# define QT_DEPRECATED_VERSION_X_6_6(text) QT_DEPRECATED_X(text)
176# define QT_DEPRECATED_VERSION_6_6 QT_DEPRECATED
177#else
178# define QT_DEPRECATED_VERSION_X_6_6(text)
179# define QT_DEPRECATED_VERSION_6_6
180#endif
181
182#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 7, 0)
183# define QT_DEPRECATED_VERSION_X_6_7(text) QT_DEPRECATED_X(text)
184# define QT_DEPRECATED_VERSION_6_7 QT_DEPRECATED
185#else
186# define QT_DEPRECATED_VERSION_X_6_7(text)
187# define QT_DEPRECATED_VERSION_6_7
188#endif
189
190#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 8, 0)
191# define QT_DEPRECATED_VERSION_X_6_8(text) QT_DEPRECATED_X(text)
192# define QT_DEPRECATED_VERSION_6_8 QT_DEPRECATED
193#else
194# define QT_DEPRECATED_VERSION_X_6_8(text)
195# define QT_DEPRECATED_VERSION_6_8
196#endif
197
198#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 9, 0)
199# define QT_DEPRECATED_VERSION_X_6_9(text) QT_DEPRECATED_X(text)
200# define QT_DEPRECATED_VERSION_6_9 QT_DEPRECATED
201#else
202# define QT_DEPRECATED_VERSION_X_6_9(text)
203# define QT_DEPRECATED_VERSION_6_9
204#endif
205
206#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 10, 0)
207# define QT_DEPRECATED_VERSION_X_6_10(text) QT_DEPRECATED_X(text)
208# define QT_DEPRECATED_VERSION_6_10 QT_DEPRECATED
209#else
210# define QT_DEPRECATED_VERSION_X_6_10(text)
211# define QT_DEPRECATED_VERSION_6_10
212#endif
213
214#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 11, 0)
215# define QT_DEPRECATED_VERSION_X_6_11(text) QT_DEPRECATED_X(text)
216# define QT_DEPRECATED_VERSION_6_11 QT_DEPRECATED
217#else
218# define QT_DEPRECATED_VERSION_X_6_11(text)
219# define QT_DEPRECATED_VERSION_6_11
220#endif
221
222#define QT_DEPRECATED_VERSION_X_5(minor, text) QT_DEPRECATED_VERSION_X_5_##minor(text)
223#define QT_DEPRECATED_VERSION_X(major, minor, text) QT_DEPRECATED_VERSION_X_##major##_##minor(text)
224
225#define QT_DEPRECATED_VERSION_5(minor) QT_DEPRECATED_VERSION_5_##minor
226#define QT_DEPRECATED_VERSION(major, minor) QT_DEPRECATED_VERSION_##major##_##minor
227
228/*
229 QT_IF_DEPRECATED_SINCE(major, minor, whenTrue, whenFalse) expands to
230 \a whenTrue if the specified (\a major, \a minor) version is less than or
231 equal to the deprecation version defined by QT_DISABLE_DEPRECATED_UP_TO,
232 and to \a whenFalse otherwise.
233
234 Currently used for QT_INLINE_SINCE(maj, min), but can also be helpful for
235 other macros of that kind.
236
237 The implementation uses QT_DEPRECATED_SINCE(maj, min) to define a bunch of
238 helper QT_IF_DEPRECATED_SINCE_X_Y macros, which expand to \a whenTrue or
239 \a whenFalse depending on the value of QT_DEPRECATED_SINCE.
240
241 If you need to use QT_IF_DEPRECATED_SINCE() for a (major, minor) version,
242 that is not yet covered by the list below, you need to copy the definition
243 and change the major and minor versions accordingly. For example, for
244 version (X, Y), you will need to add
245
246 \code
247 #if QT_DEPRECATED_SINCE(X, Y)
248 # define QT_IF_DEPRECATED_SINCE_X_Y(whenTrue, whenFalse) whenFalse
249 #else
250 # define QT_IF_DEPRECATED_SINCE_X_Y(whenTrue, whenFalse) whenTrue
251 #endif
252 \endcode
253*/
254
255#define QT_IF_DEPRECATED_SINCE(major, minor, whenTrue, whenFalse) \
256 QT_IF_DEPRECATED_SINCE_ ## major ## _ ## minor(whenTrue, whenFalse)
257
258#if QT_DEPRECATED_SINCE(6, 0)
259# define QT_IF_DEPRECATED_SINCE_6_0(whenTrue, whenFalse) whenFalse
260#else
261# define QT_IF_DEPRECATED_SINCE_6_0(whenTrue, whenFalse) whenTrue
262#endif
263
264#if QT_DEPRECATED_SINCE(6, 1)
265# define QT_IF_DEPRECATED_SINCE_6_1(whenTrue, whenFalse) whenFalse
266#else
267# define QT_IF_DEPRECATED_SINCE_6_1(whenTrue, whenFalse) whenTrue
268#endif
269
270#if QT_DEPRECATED_SINCE(6, 2)
271# define QT_IF_DEPRECATED_SINCE_6_2(whenTrue, whenFalse) whenFalse
272#else
273# define QT_IF_DEPRECATED_SINCE_6_2(whenTrue, whenFalse) whenTrue
274#endif
275
276#if QT_DEPRECATED_SINCE(6, 3)
277# define QT_IF_DEPRECATED_SINCE_6_3(whenTrue, whenFalse) whenFalse
278#else
279# define QT_IF_DEPRECATED_SINCE_6_3(whenTrue, whenFalse) whenTrue
280#endif
281
282#if QT_DEPRECATED_SINCE(6, 4)
283# define QT_IF_DEPRECATED_SINCE_6_4(whenTrue, whenFalse) whenFalse
284#else
285# define QT_IF_DEPRECATED_SINCE_6_4(whenTrue, whenFalse) whenTrue
286#endif
287
288#if QT_DEPRECATED_SINCE(6, 5)
289# define QT_IF_DEPRECATED_SINCE_6_5(whenTrue, whenFalse) whenFalse
290#else
291# define QT_IF_DEPRECATED_SINCE_6_5(whenTrue, whenFalse) whenTrue
292#endif
293
294#if QT_DEPRECATED_SINCE(6, 6)
295# define QT_IF_DEPRECATED_SINCE_6_6(whenTrue, whenFalse) whenFalse
296#else
297# define QT_IF_DEPRECATED_SINCE_6_6(whenTrue, whenFalse) whenTrue
298#endif
299
300#if QT_DEPRECATED_SINCE(6, 7)
301# define QT_IF_DEPRECATED_SINCE_6_7(whenTrue, whenFalse) whenFalse
302#else
303# define QT_IF_DEPRECATED_SINCE_6_7(whenTrue, whenFalse) whenTrue
304#endif
305
306#if QT_DEPRECATED_SINCE(6, 8)
307# define QT_IF_DEPRECATED_SINCE_6_8(whenTrue, whenFalse) whenFalse
308#else
309# define QT_IF_DEPRECATED_SINCE_6_8(whenTrue, whenFalse) whenTrue
310#endif
311
312#if QT_DEPRECATED_SINCE(6, 9)
313# define QT_IF_DEPRECATED_SINCE_6_9(whenTrue, whenFalse) whenFalse
314#else
315# define QT_IF_DEPRECATED_SINCE_6_9(whenTrue, whenFalse) whenTrue
316#endif
317
318#if QT_DEPRECATED_SINCE(6, 10)
319# define QT_IF_DEPRECATED_SINCE_6_10(whenTrue, whenFalse) whenFalse
320#else
321# define QT_IF_DEPRECATED_SINCE_6_10(whenTrue, whenFalse) whenTrue
322#endif
323
324#if QT_DEPRECATED_SINCE(6, 11)
325# define QT_IF_DEPRECATED_SINCE_6_11(whenTrue, whenFalse) whenFalse
326#else
327# define QT_IF_DEPRECATED_SINCE_6_11(whenTrue, whenFalse) whenTrue
328#endif
329
330#ifdef __cplusplus
331// A tag to help mark stuff deprecated (cf. QStringViewLiteral)
332namespace QtPrivate {
333enum class Deprecated_t {};
334constexpr inline Deprecated_t Deprecated = {};
335}
336#endif
337
338#ifdef QT_ASCII_CAST_WARNINGS
339# define QT_ASCII_CAST_WARN \
340 Q_DECL_DEPRECATED_X("Use fromUtf8, QStringLiteral, or QLatin1StringView")
341#else
342# define QT_ASCII_CAST_WARN
343#endif
344
346
347#endif // QTDEPRECATIONMARKERS_H
Combined button and popup list for selecting options.
\macro QT_NO_KEYWORDS >