3dfeb5c7b0
1 OBS-URL: https://build.opensuse.org/request/show/359195 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtdeclarative?expand=0&rev=28
63 lines
2.8 KiB
Diff
63 lines
2.8 KiB
Diff
diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp
|
|
index 20b6dd5..96759b1 100644
|
|
--- a/src/quick/items/qquicklistview.cpp
|
|
+++ b/src/quick/items/qquicklistview.cpp
|
|
@@ -81,6 +81,8 @@ public:
|
|
bool removeNonVisibleItems(qreal bufferFrom, qreal bufferTo) Q_DECL_OVERRIDE;
|
|
void visibleItemsChanged() Q_DECL_OVERRIDE;
|
|
|
|
+ void removeItem(FxViewItem *item);
|
|
+
|
|
FxViewItem *newViewItem(int index, QQuickItem *item) Q_DECL_OVERRIDE;
|
|
void initializeViewItem(FxViewItem *item) Q_DECL_OVERRIDE;
|
|
bool releaseItem(FxViewItem *item) Q_DECL_OVERRIDE;
|
|
@@ -686,6 +688,18 @@ bool QQuickListViewPrivate::addVisibleItems(qreal fillFrom, qreal fillTo, qreal
|
|
return changed;
|
|
}
|
|
|
|
+void QQuickListViewPrivate::removeItem(FxViewItem *item)
|
|
+{
|
|
+ if (item->transitionScheduledOrRunning()) {
|
|
+ qCDebug(lcItemViewDelegateLifecycle) << "\tnot releasing animating item" << item->index << item->item->objectName();
|
|
+ item->releaseAfterTransition = true;
|
|
+ releasePendingTransition.append(item);
|
|
+ } else {
|
|
+ qCDebug(lcItemViewDelegateLifecycle) << "\treleasing stationary item" << item->index << item->item->objectName();
|
|
+ releaseItem(item);
|
|
+ }
|
|
+}
|
|
+
|
|
bool QQuickListViewPrivate::removeNonVisibleItems(qreal bufferFrom, qreal bufferTo)
|
|
{
|
|
FxViewItem *item = 0;
|
|
@@ -708,13 +722,7 @@ bool QQuickListViewPrivate::removeNonVisibleItems(qreal bufferFrom, qreal buffer
|
|
if (item->index != -1)
|
|
visibleIndex++;
|
|
visibleItems.removeAt(index);
|
|
- if (item->transitionScheduledOrRunning()) {
|
|
- qCDebug(lcItemViewDelegateLifecycle) << "\tnot releasing animating item" << item->index << item->item->objectName();
|
|
- item->releaseAfterTransition = true;
|
|
- releasePendingTransition.append(item);
|
|
- } else {
|
|
- releaseItem(item);
|
|
- }
|
|
+ removeItem(item);
|
|
if (index == 0)
|
|
break;
|
|
item = visibleItems.at(--index);
|
|
@@ -730,13 +738,7 @@ bool QQuickListViewPrivate::removeNonVisibleItems(qreal bufferFrom, qreal buffer
|
|
break;
|
|
qCDebug(lcItemViewDelegateLifecycle) << "refill: remove last" << visibleIndex+visibleItems.count()-1 << item->position() << item->item->objectName();
|
|
visibleItems.removeLast();
|
|
- if (item->transitionScheduledOrRunning()) {
|
|
- qCDebug(lcItemViewDelegateLifecycle) << "\tnot releasing animating item" << item->index << item->item->objectName();
|
|
- item->releaseAfterTransition = true;
|
|
- releasePendingTransition.append(item);
|
|
- } else {
|
|
- releaseItem(item);
|
|
- }
|
|
+ removeItem(item);
|
|
changed = true;
|
|
}
|
|
|