qt5base-lts/tests/auto
Marc Mutz 048447346b QPointerUniqueId: make fit for release
- Declare as Q_MOVABLE_TYPE
- Prevent QList<QPointerUniqueId> from being instantiated
  (use QVector instead)
- Add equality relational operators
- Add qHash() overload
- Replace non-default ctor with named ctor.
- Add Q_DECL_NOTHROW.
- Add Q_DECL_CONSTEXPR.
- Rename numeric() -> numericId().
- Update docs.

The extension vector for this class calls for additional
properties to be added later, but these are not user-
settable. It thus suffices to rely on the only data
member, a qint64, which can be reinterpreted to an index
into an array or hash with actual objects. This allows
to make the class a Trivial Type (ie. no overhead over
an int) while still supporting later extension. Cf.
QSslEllipticCurve as another example of such a class.

The extension has to maintain the following invariants,
encoded into user code by way of being used in inline
functions:

- m_numericId == -1 <=> !isValid()

This is trivial to support. An extension could not and
still cannot reinterpret the qint64 member as a d-pointer,
but a d-pointer is only necessary for user-settable
properties where updating a central private data structure
would cause too much contention.

Add a test.

Since this type is used in other modules, keep the existing
functions, but mark them as deprecated with the expectation
that these compat functions be removed before 5.8.0 final.

Task-number: QTBUG-54616
Change-Id: Ia3ede0ecaeeef4cd3ffa94a72b1050bd409713a5
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2016-12-01 13:02:47 +00:00
..
android Updated license headers 2016-01-21 18:55:18 +00:00
bic/data BIC data files for QtBase for Qt 5.7 2016-10-03 09:38:59 +00:00
cmake Merge remote-tracking branch 'origin/5.6' into 5.7 2016-04-04 08:59:18 +02:00
compilerwarnings/data Updated license headers 2016-01-21 18:55:18 +00:00
concurrent Merge remote-tracking branch 'origin/5.6' into 5.7 2016-08-25 16:12:11 +02:00
corelib Fix some warnings in tests 2016-11-28 13:10:43 +00:00
dbus Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
gui QPointerUniqueId: make fit for release 2016-12-01 13:02:47 +00:00
guiapplauncher Fix path to examples part of tst_GuiAppLauncher 2015-02-13 07:28:15 +00:00
installed_cmake Add a unit test for testing Qt in its install location. 2013-07-02 23:08:54 +02:00
network Fix some warnings in tests 2016-11-28 13:10:43 +00:00
opengl Remove last traces of opengl es 1 support 2016-11-16 22:00:46 +00:00
other Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-24 10:31:21 +01:00
printsupport Merge remote-tracking branch 'origin/5.6' into 5.7 2016-02-29 12:34:31 +01:00
shared Make self-contained test of condensed font matching and width 2016-10-16 00:11:13 +00:00
sql tst_qsql.cpp: Remove deprecated module include 2016-11-25 09:55:21 +00:00
testlib Merge remote-tracking branch 'origin/5.7' into 5.8 2016-09-21 11:57:52 +02:00
tools Fix missing last modification time stamp in qrc content 2016-11-22 04:57:02 +00:00
widgets Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-24 10:31:21 +01:00
xml Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-01 06:02:55 +01:00
auto.pro Use qtConfig throughout in qtbase 2016-08-19 04:28:05 +00:00
network-settings.h Merge remote-tracking branch 'origin/5.6' into 5.7 2016-05-06 15:36:44 +02:00
test.pl Updated license headers 2016-01-21 18:55:18 +00:00