diff options
author | Ahmad Samir <a.samirh78@gmail.com> | 2023-08-07 21:26:06 +0300 |
---|---|---|
committer | Ahmad Samir <a.samirh78@gmail.com> | 2023-08-30 16:48:39 +0300 |
commit | cfec14e1ff94b05bdfe15294199964247dbac518 (patch) | |
tree | c063e0605ebaeda6d568d4dbbddcf4748b706b9f | |
parent | 4ba7a76985cd52eaab2d0bf133e9ecb93b50e6cc (diff) |
QMdiArea: port Q_FOREACH to ranged-for, d->pendingRearrangements
Take a copy of the member container as the loop may modify the container
(either by moving/reordering the Rearranger elements or by appending).
Pick-to: 6.6 6.5
Task-number: QTBUG-115803
Change-Id: Iaf891b29e9c7cdfdb3dc82e03ed94defb8d0cf4c
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
-rw-r--r-- | src/widgets/widgets/qmdiarea.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/widgets/widgets/qmdiarea.cpp b/src/widgets/widgets/qmdiarea.cpp index 08ff93a7c3..ad8b55ca71 100644 --- a/src/widgets/widgets/qmdiarea.cpp +++ b/src/widgets/widgets/qmdiarea.cpp @@ -2329,7 +2329,9 @@ void QMdiArea::showEvent(QShowEvent *showEvent) Q_D(QMdiArea); if (!d->pendingRearrangements.isEmpty()) { bool skipPlacement = false; - foreach (Rearranger *rearranger, d->pendingRearrangements) { + // Take a copy because d->rearrange() may modify d->pendingRearrangements + const auto pendingRearrange = d->pendingRearrangements; + for (Rearranger *rearranger : pendingRearrange) { // If this is the case, we don't have to lay out pending child windows // since the rearranger will find a placement for them. if (rearranger->type() != Rearranger::IconTiler && !skipPlacement) |