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