qt6-bb10/tests/auto
Marc Mutz da0f72ebb8 QEvent: start to de-inline copy ctor and clone() of all subclasses
There's no advantage to them being inline: Absent de-virtualisation,
clone() is only supposed to be called through the vtable, and the copy
ctor is only supposed to be used in the implementation of clone().

And when the compiler de-virtualises, we don't want the code
duplication associated with inlining.

Enforce this by introducing new macros to hide the boilerplate.

This fixes missing out-of-line dtors in:
- QSinglePointEvent
- QApplicationStateChangeEvent
- QFutureCallOutEvent

Wrong covariant return in:
- QFutureCallOutEvent

And missing clone() reimplementations in:
- QCloseEvent
- QIconDragEvent
- QShowEvent
- QHideEvent
- QDragEnterEvent
- QDragLeaveEvent

While these don't carry extra data or members, a dynamic_cast of the
result of clone() as well as using the expected covariant return value
would fail:

   QShowEvent *e = ~~~;
   QShowEvent *e2 = e->clone(); // ERROR: converting QEvent* to QShowEvent*

Check that reimplementing clone() is binary compatible (covariant
returns may change the numerical pointer value returned, cf.
https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B).

The copy-assignment operator stays inline for the time being, as the
goal is to = delete it in the future.

This patch covers, roughly, QtCore and QtGui.

[ChangeLog][QtGui][QEvent subclasses] Fixed missing clone()
reimplementations on QCloseEvent, QIconDragEvent, QShowEvent,
QHideEvent, QDragEnterEvent, and QDragLeaveEvent.

Task-number: QTBUG-45582
Task-number: QTBUG-97601
Change-Id: Ib8a0519dbe85a7a8da61050d48be338004dfa69a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-04-14 19:07:16 +02:00
..
bic/data Add BC files for 6.2.0 2022-01-07 13:31:38 +00:00
cmake CMake: Add deployment auto test 2022-03-16 15:56:17 +01:00
concurrent Tests: Do not depend on transitive includes 2022-03-17 17:14:37 +01:00
corelib QDateTime: add conversions for time_point and zoned_time 2022-04-13 18:45:54 +02:00
dbus tests: Remove unused SRCDIR defines 2021-08-17 12:41:57 +00:00
gui QEvent: start to de-inline copy ctor and clone() of all subclasses 2022-04-14 19:07:16 +02:00
guiapplauncher Move QStateMachine from QtCore to QtScxml 2020-08-24 20:10:25 +02:00
network tst_qsslsocket: remove tons of deprecation warnings 2022-04-12 00:48:17 +02:00
opengl Remove the qmake project files 2021-01-07 15:32:28 +01:00
other Windows QPA: Fix slowdown with large table/tree views with accessibility 2022-03-31 09:04:09 -03:00
printsupport QtBase: replace windows.h with qt_windows.h 2021-11-23 12:53:46 +08:00
shared Remove false Q_UNREACHABLE from shaping code 2021-02-03 09:44:44 +01:00
sql Replace uses of _qba with _ba 2022-04-07 19:30:17 +02:00
testlib Replace uses of _qs with _s in tests 2022-04-07 19:30:17 +02:00
tools uic: use C string literals for setObjectName() 2022-03-18 18:35:03 +01:00
widgets Replace uses of _qs with _s in tests 2022-04-07 19:30:17 +02:00
xml QDom: preserve empty CDATA sections 2022-03-26 12:01:14 +01:00
CMakeLists.txt Don't build tests/auto/tools when cross-compiling 2021-10-07 08:03:40 +02:00
network-settings.h Fix check for IPV6 support without certain features 2022-02-28 22:08:21 +00:00