QPainterPath: replace a use of QList<QRectF> with a QVector

QList<QRectF> is horribly inefficent, and this is just implementation,
so we're free to change it.

Change-Id: I7b28a2093efb5826b55c172f48a81cb9c2472e5a
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QMdiArea: replace uses of QList<QRect> with QVector

A QList<QRect> is horribly inefficient, and this is private API, so we're free to
change it.

Change-Id: I26c2be51393f883d160b86ed1414f801f211df39
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
QMdiArea: replace dubious use of QSet<int> with QVector

The code populated two QSets with some x and y coordinates and went
on to get the values as a list. Since QSet is unordered_set, those
lists were not sorted, so the code did that manually. It then went
and created the cross product of the two lists as a list of QPoints.

Since QSet is a node-based container and not even an ordered one,
the code pays a hefty price just for ensuring uniqueness of values
prior to sorting.

The new code just cramms everything into vectors, duplicates and all,
then sorts the vectors and only then removes duplicates using
std::unique. Since the sizes of all containers involved are known
ahead of time, make liberal use of reserve() to trim the whole
container business down to three memory allocations.

Change-Id: I7004b1b90b3142acb12d7bb12bcd0014d54e6e02
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
QMdiArea: don't use out parameters, return by value

Change-Id: I787b56033899d6845886c4707cf3acf7428f94a2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
xcb: replace a use of an inefficient QList with QVector

The Transaction type is larger than a void*, so better use
a vector to hold them.

Change-Id: Ie2c00d053f67addbce6fd8107f659c56ccdd37aa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
xcb: replace inefficient uses of QList with QVector

xcb atoms are uint32s, so a QList of them wastes 50% memory on 64-bit
platforms. Other parts of the code already store xcb_atom_t's in QVector,
so use QVector everywhere (also leads to less code expansion).

Change-Id: Ib4afb35e499577a7509d04a18b830d9b31f6abd0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
QtNetwork: add qMove() to QSharedPointer uses where applicable

QSharedPointers here are passed by value - good, since it enabled C++11 move semantics,
transparently.

However, when passing such parameters on to assignment operators or other functions,
copies were made where moves would have been sufficient. Thus, add some qMove()s.

Change-Id: Ied1a5edf1bfbb16108dfeefbe85e58ab3d4ef92f
Reviewed-by: Richard J. Moore <rich@kde.org>