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;
QRect rect(pos.x() - rectSize, pos.y() - rectSize, rectSize *2, rectSize * 2);
QList<QRect> updateRects;
updateRects.append(rect.translated(rectSize * 2, rectSize * 2));
updateRects.append(rect.translated(rectSize * 2, -rectSize * 2));
updateRects.append(rect.translated(-rectSize * 2, rectSize * 2));
updateRects.append(rect.translated(-rectSize * 2, -rectSize * 2));
const QRect updateRects[] = {
rect.translated(rectSize * 2, rectSize * 2),
rect.translated(rectSize * 2, -rectSize * 2),
rect.translated(-rectSize * 2, rectSize * 2),
rect.translated(-rectSize * 2, -rectSize * 2),
};
bool useRegion = false;
if (useRegion) {
QRegion region;
region.setRects(updateRects.data(), 4);
region.setRects(updateRects, 4);
update(region);
} else {
foreach (QRect rect, updateRects)
for (QRect rect : updateRects)
update(rect);
}
}