qt5base-lts/examples
Giuseppe D'Angelo 14090760a8 Long Live QMap as a refcounted std::map!
... and QMultiMap as std::multimap.

Just use the implementation from the STL; we can't really claim that
our code is much better than STL's, or does things any differently
(de facto they're both red-black trees).

Decouple QMultiMap from QMap, by making it NOT inherit from
QMap any longer. This completes the deprecation started in 5.15:
QMap now does not store duplicated keys any more.

Something to establish is where to put the
QExplictlySharedDataPointer replcement that is in there as an
ad-hoc solution. There's a number of patches in-flight by Marc
that try to introduce the same (or very similar) functionality.

Miscellanea changes to the Q(Multi)Map code itself:

* consistently use size_type instead of int;
* pass iterators by value;
* drop QT_STRICT_ITERATORS;
* iterators implictly convert to const_iterators, and APIs
  take const_iterators;
* iterators are just bidirectional and not random access;
* added noexcept where it makes sense;
* "inline" dropped (churn);
* qMapLessThanKey dropped (undocumented, 0 hits in Qt, 1 hit in KDE);
* operator== on Q(Multi)Map requires operator== on the key type
  (we're checking for equality, not equivalence!).

Very few breakages occur in qtbase.

[ChangeLog][Potentially Source-Incompatible Changes] QMap does not
support multiple equivalent keys any more. Any related functionality
has been removed from QMap, following the deprecation that happened
in Qt 5.15. Use QMultiMap for this use case.

[ChangeLog][Potentially Source-Incompatible Changes] QMap and
QMultiMap iterators random-access API have been removed. Note that
the iterators have always been just bidirectional; moving
an iterator by N positions can still be achieved using std::next
or std::advance, at the same cost as before (O(N)).

[ChangeLog][Potentially Source-Incompatible Changes] QMultiMap does
not inherit from QMap any more. Amongst other things, this means
that iterators on a QMultiMap now belong to the QMultiMap class
(and not to the QMap class); new Java iterators have been added.

Change-Id: I5a0fe9b020f92c21b37065a1defff783b5d2b7a9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-08-06 19:15:39 +02:00
..
aggregate
corelib CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
dbus CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
embedded Deprecate QTimeLine's curveShape in favor of its easingCurve 2020-07-16 17:39:11 +02:00
gui CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
network CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
opengl CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
qmake Add cmdline feature to qmake 2019-02-18 07:12:14 +00:00
qpa CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
qtconcurrent CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
qtestlib CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
sql CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
vulkan Fix compiler warning about qsizetype/int mismatch 2020-08-04 13:28:33 +02:00
widgets Long Live QMap as a refcounted std::map! 2020-08-06 19:15:39 +02:00
xml CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
CMakeLists.txt CMake: Regenerate examples 2020-07-09 09:38:28 +02:00
examples.pro Doc: Move touch examples around so they get included in docs 2018-09-14 03:56:22 +00:00
README

Qt is supplied with a number of example applications that have been
written to provide developers with examples of the Qt API in use,
highlight good programming practice, and showcase features found in each of
Qt's core technologies.


Documentation for examples can be found in the Examples section
of the Qt documentation.