From 796f6e1e8e99ea1046ffe2a744cfd1dca1248258 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Tue, 21 Apr 2020 10:34:03 +0200 Subject: QQuickRepeater: Fix interaction with Package Amends 3b806a18cc665b5ae0e12d45fe170bfc3f00352a. Eric's change tried to tackle the issue by making the PartModel more well-behaved. However, this still left some issues, as exhibited by the linked bug. This time, we simply make the repeater more robust, and setup d->deletables if it's not done yet. Pick-to: 5.15 Fixes: QTBUG-71964 Change-Id: I58c80c84f73fddaea5d6030f92ffff219ecf2b71 Reviewed-by: Simon Hausmann (cherry picked from commit 28a31148ca02dbb530fd92dfafbcf71c64af4b70) --- src/quick/items/qquickrepeater.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/quick/items/qquickrepeater.cpp') diff --git a/src/quick/items/qquickrepeater.cpp b/src/quick/items/qquickrepeater.cpp index 20603720c5..6dc735d20b 100644 --- a/src/quick/items/qquickrepeater.cpp +++ b/src/quick/items/qquickrepeater.cpp @@ -417,6 +417,12 @@ void QQuickRepeater::createdItem(int index, QObject *) void QQuickRepeater::initItem(int index, QObject *object) { Q_D(QQuickRepeater); + if (index >= d->deletables.size()) { + // this can happen when Package is used + // calling regenerate does too much work, all we need is to call resize + // so that d->deletables[index] = item below works + d->deletables.resize(d->model->count() + 1); + } QQuickItem *item = qmlobject_cast(object); if (!d->deletables.at(index)) { -- cgit v1.2.3