qt6-bb10/tests/auto/corelib
Giuseppe D'Angelo 11b8c46d2a QObject: add a single shot connection flag
If one needed to listen to a signal just once, one had to
store the QMetaObject::Connection object returned by connect()
and use it to disconnect the slot after the first signal
activation.

This has led to a proliferation of using wrappers (and enough
TMP); they usually look like this:

1) create a shared_ptr<QMO::Connection>, allocating its payload;
2) create a lambda, capturing the shared_ptr by value;
3) in the lambda, disconnect the connection (through the shared_ptr),
   and call the actual slot;
4) connect the signal to the lambda, storing the returned
   QMO::Connection into the shared_ptr.

This is expensive, error prone for newcomers, and tricky to
support as a general facility inside one's projects.
We can do better, just support single shot connections right
in QObject.

[ChangeLog][QtCore][QObject] Added the Qt::SingleShotConnection
flag. When a connection is established with this flag set,
the slot is going to be activated at most once; when the signal
is emitted, the connection gets automatically broken by Qt.

Change-Id: I5f5feeae7f76c9c3d6323d841efba81c8f98ce7e
Fixes: QTBUG-44219
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@gmx.de>
2020-09-01 17:59:36 +02:00
..
animation Fix warning when printing of qsizetype 2020-07-26 17:39:31 +02:00
global Remove remaining traces of deprecated QtMsgHandler 2020-08-29 16:24:21 +02:00
io QStandardPaths/Unix: improve the XDG_RUNTIME_DIR creation/detection 2020-08-25 16:13:44 -07:00
itemmodels Automatically register data/debug stream operations in QMetaType 2020-08-24 00:17:03 +02:00
kernel QObject: add a single shot connection flag 2020-09-01 17:59:36 +02:00
mimetypes Fix warnings about unused expression results in tests 2020-07-29 14:33:29 +02:00
plugin Make QUUid constructors from string like types explicit 2020-08-27 18:58:21 +02:00
serialization Change QByteArray to handle large arrays 2020-08-27 18:58:20 +02:00
text Long live Q{Any,Utf8}StringView! 2020-08-31 22:57:49 +02:00
thread Fix QFuture::waitForFinished to wait until QFuture is started 2020-08-26 16:37:43 +02:00
time Fix crash on serializing default-constructed QTimeZone 2020-08-23 09:55:29 +02:00
tools QWeakPointer: purge deprecated API 2020-08-31 10:32:39 +02:00
.prev_CMakeLists.txt Move QStateMachine from QtCore to QtScxml 2020-08-24 20:10:25 +02:00
CMakeLists.txt Move QStateMachine from QtCore to QtScxml 2020-08-24 20:10:25 +02:00
corelib.pro Move QStateMachine from QtCore to QtScxml 2020-08-24 20:10:25 +02:00