qt5base-lts/tests/auto/corelib/kernel
Simon Hausmann 36f6922925 Implement support for QProperty<T> with a static observer
A common pattern in Qt Quick will be QProperty members that are
connected to a callback that needs to perform something when the value
changes, for example emitting a compatibility signal or marking scene
graph node data dirty.

To make such a pattern more efficient, a new QNotifiedProperty type is
introduced that offers the same API as QProperty<T>, with two changes:

    (1) The template instantiation not only takes the property type as
    parameter but also a callback pointer-to-member.

    (2) Since that member itself cannot be called without an instance
    and to avoid storing an instance pointer permanently, the API for
    setBinding and setValue are adjusted to also take the instance
    pointer. For the former it gets stored in the binding, for the
    latter it is used to invoke the callback after setting the new
    value.

Change-Id: I85cc1d1d1c0472164c4ae87808cfdc0d0b1475e1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2020-05-28 21:08:51 +00:00
..
qcoreapplication Port from QAtomic::load() to loadRelaxed() 2019-06-20 20:48:59 +02:00
qdeadlinetimer Merge remote-tracking branch 'origin/5.15' into dev 2020-03-04 14:39:18 +00:00
qelapsedtimer Merge remote-tracking branch 'origin/5.15' into dev 2020-03-16 18:41:27 +01:00
qeventdispatcher Detect double timer during single timeout in registerTimer test, and skip 2020-02-22 02:52:36 +01:00
qeventloop Regenerate projects one last time before merge 2020-02-12 17:30:49 +00:00
qmath Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qmetaenum Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qmetamethod Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qmetaobject MetaObject: store the QMetaType of the properties 2020-02-25 15:43:15 +01:00
qmetaobjectbuilder Regenerate projects one last time before merge 2020-02-12 17:30:49 +00:00
qmetaproperty Fix assigning int QFlag-type properties 2020-04-22 09:49:48 +02:00
qmetatype QMetaType: Support char16_t and char32_t 2020-05-15 18:46:39 +02:00
qmimedata Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qobject QObject: overhaul narrowing detection 2020-04-15 15:20:45 +02:00
qpointer Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qproperty Implement support for QProperty<T> with a static observer 2020-05-28 21:08:51 +00:00
qsharedmemory Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qsignalblocker Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qsignalmapper Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
qsocketnotifier Merge remote-tracking branch 'origin/5.15' into dev 2020-04-22 15:28:01 +02:00
qsystemsemaphore Regenerate tests/auto/corelib/kernel 2019-11-12 17:25:04 +00:00
qtimer Blacklist tst_QTimer::zeroTimer on Ubuntu 20.04 2020-05-25 05:16:00 +00:00
qtranslator Merge remote-tracking branch 'origin/5.15' into dev 2020-02-13 18:31:40 +01:00
qvariant Remove QRegExp from QVariant 2020-05-14 12:19:47 +00:00
qwineventnotifier Regenerate projects one last time before merge 2020-02-12 17:30:49 +00:00
.prev_CMakeLists.txt cmake: Remove APPLE prefix from platform names 2020-03-16 17:57:56 +01:00
CMakeLists.txt Enable qmetatype test with CMake 2020-04-01 10:29:33 +02:00
kernel.pro Initial import of the Qt C++ property binding system 2020-03-16 18:19:45 +01:00