aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickitemview_p_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickitemview_p_p.h')
-rw-r--r--src/quick/items/qquickitemview_p_p.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/quick/items/qquickitemview_p_p.h b/src/quick/items/qquickitemview_p_p.h
index b978410bce..c05233d82a 100644
--- a/src/quick/items/qquickitemview_p_p.h
+++ b/src/quick/items/qquickitemview_p_p.h
@@ -21,12 +21,15 @@ QT_REQUIRE_CONFIG(quick_itemview);
#include "qquickitemview_p.h"
#include "qquickitemviewfxitem_p_p.h"
+#if QT_CONFIG(quick_viewtransitions)
#include "qquickitemviewtransition_p.h"
+#endif
#include "qquickflickable_p_p.h"
#include <QtQmlModels/private/qqmlobjectmodel_p.h>
#include <QtQmlModels/private/qqmldelegatemodel_p.h>
#include <QtQmlModels/private/qqmlchangeset_p.h>
+#include <QtCore/qpointer.h>
QT_BEGIN_NAMESPACE
@@ -64,7 +67,12 @@ public:
};
-class Q_QUICK_AUTOTEST_EXPORT QQuickItemViewPrivate : public QQuickFlickablePrivate, public QQuickItemViewTransitionChangeListener, public QAnimationJobChangeListener
+class Q_QUICK_AUTOTEST_EXPORT QQuickItemViewPrivate
+ : public QQuickFlickablePrivate
+#if QT_CONFIG(quick_viewtransitions)
+ , public QQuickItemViewTransitionChangeListener
+#endif
+ , public QAnimationJobChangeListener
{
public:
Q_DECLARE_PUBLIC(QQuickItemView)
@@ -112,7 +120,6 @@ public:
};
enum BufferMode { NoBuffer = 0x00, BufferBefore = 0x01, BufferAfter = 0x02 };
- enum MovementReason { Other, SetIndex, Mouse };
bool isValid() const;
qreal position() const;
@@ -166,11 +173,13 @@ public:
void repositionFirstItem(FxViewItem *prevVisibleItemsFirst, qreal prevVisibleItemsFirstPos,
FxViewItem *prevFirstVisible, ChangeResult *insertionResult, ChangeResult *removalResult);
+#if QT_CONFIG(quick_viewtransitions)
void createTransitioner();
void prepareVisibleItemTransitions();
void prepareRemoveTransitions(QMultiHash<QQmlChangeSet::MoveKey, FxViewItem *> *removedItems);
bool prepareNonVisibleItemTransition(FxViewItem *item, const QRectF &viewBounds);
void viewItemTransitionFinished(QQuickItemViewTransitionableItem *item) override;
+#endif
int findMoveKeyIndex(QQmlChangeSet::MoveKey key, const QVector<QQmlChangeSet::Change> &changes) const;
@@ -187,7 +196,10 @@ public:
bool hasPendingChanges() const {
return currentChanges.hasPendingChanges()
|| bufferedChanges.hasPendingChanges()
- ||runDelayedRemoveTransition;
+#if QT_CONFIG(quick_viewtransitions)
+ ||runDelayedRemoveTransition
+#endif
+ ;
}
void refillOrLayout() {
@@ -224,8 +236,6 @@ public:
Qt::LayoutDirection layoutDirection;
QQuickItemView::VerticalLayoutDirection verticalLayoutDirection;
- MovementReason moveReason;
-
QList<FxViewItem *> visibleItems;
qreal firstVisibleItemPosition = 0;
void storeFirstVisibleItemPosition() {
@@ -266,8 +276,10 @@ public:
MovedItem(FxViewItem *i, QQmlChangeSet::MoveKey k)
: item(i), moveKey(k) {}
};
+#if QT_CONFIG(quick_viewtransitions)
QQuickItemViewTransitioner *transitioner;
QVector<FxViewItem *> releasePendingTransition;
+#endif
mutable qreal minExtent;
mutable qreal maxExtent;
@@ -286,7 +298,9 @@ public:
bool highlightRangeEndValid : 1;
bool fillCacheBuffer : 1;
bool inRequest : 1;
+#if QT_CONFIG(quick_viewtransitions)
bool runDelayedRemoveTransition : 1;
+#endif
bool delegateValidated : 1;
bool isClearing : 1;
@@ -333,7 +347,9 @@ protected:
QList<FxViewItem *> *newItems, QList<MovedItem> *movingIntoView) = 0;
virtual bool needsRefillForAddedOrRemovedIndex(int) const { return false; }
+#if QT_CONFIG(quick_viewtransitions)
virtual void translateAndTransitionItemsAfter(int afterIndex, const ChangeResult &insertionResult, const ChangeResult &removalResult) = 0;
+#endif
virtual void initializeViewItem(FxViewItem *) {}
virtual void initializeCurrentItem() {}