manual repaint test: port away from Q_FOREACH

The Q_FOREACH is in a header, so we need to port away from it,
otherwise it makes any TU that includes it (in PCH builds: all)
incompatible with QT_NO_FOREACH.

This is a trivial case of marking the local constructor const, but go
a step further and replace the QList with a C array ("never use a
dynamically-sized container for statically-sized data"). Both
consumers of the container (after s/foreach/for/) can deal with array.

Pick-to: 6.6 6.5
Task-number: QTBUG-115839
Change-Id: I142e438dcf2d785bb34022a3fb1ff46b8eaa0edd
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
This commit is contained in:
Marc Mutz 2023-08-08 10:17:15 +02:00
parent 7f5d2262c1
commit c0738f9ff0

View File

@ -28,20 +28,20 @@ public:
const int rectSize = 10; const int rectSize = 10;
QRect rect(pos.x() - rectSize, pos.y() - rectSize, rectSize *2, rectSize * 2); QRect rect(pos.x() - rectSize, pos.y() - rectSize, rectSize *2, rectSize * 2);
QList<QRect> updateRects; const QRect updateRects[] = {
updateRects.append(rect.translated(rectSize * 2, rectSize * 2)); rect.translated(rectSize * 2, rectSize * 2),
updateRects.append(rect.translated(rectSize * 2, -rectSize * 2)); rect.translated(rectSize * 2, -rectSize * 2),
updateRects.append(rect.translated(-rectSize * 2, rectSize * 2)); rect.translated(-rectSize * 2, rectSize * 2),
updateRects.append(rect.translated(-rectSize * 2, -rectSize * 2)); rect.translated(-rectSize * 2, -rectSize * 2),
};
bool useRegion = false; bool useRegion = false;
if (useRegion) { if (useRegion) {
QRegion region; QRegion region;
region.setRects(updateRects.data(), 4); region.setRects(updateRects, 4);
update(region); update(region);
} else { } else {
foreach (QRect rect, updateRects) for (QRect rect : updateRects)
update(rect); update(rect);
} }
} }