11QQuickItemViewFxItem::QQuickItemViewFxItem(QQuickItem *item,
bool ownItem, QQuickItemChangeListener* changeListener)
13 , changeListener(changeListener)
14#if QT_CONFIG(quick_viewtransitions)
15 , transitionableItem(
nullptr)
18 , releaseAfterTransition(
false)
23QQuickItemViewFxItem::~QQuickItemViewFxItem()
25#if QT_CONFIG(quick_viewtransitions)
26 delete transitionableItem;
27 transitionableItem =
nullptr;
30 if (ownItem && item) {
32 item->setParentItem(0);
37qreal QQuickItemViewFxItem::itemX()
const
40#if QT_CONFIG(quick_viewtransitions)
41 transitionableItem ? transitionableItem->itemX() :
43 (item ? item->x() : 0);
46qreal QQuickItemViewFxItem::itemY()
const
49#if QT_CONFIG(quick_viewtransitions)
50 transitionableItem ? transitionableItem->itemY() :
52 (item ? item->y() : 0);
55void QQuickItemViewFxItem::moveTo(
const QPointF &pos,
bool immediate)
57#if QT_CONFIG(quick_viewtransitions)
58 if (transitionableItem)
59 transitionableItem->moveTo(pos, immediate);
65 item->setPosition(pos);
68void QQuickItemViewFxItem::setVisible(
bool visible)
71#if QT_CONFIG(quick_viewtransitions)
72 && transitionableItem && transitionableItem->transitionScheduledOrRunning()
77 QQuickItemPrivate::get(item)->setCulled(!visible);
78 QQuickItemPrivate::get(item)->isAccessible = visible;
82void QQuickItemViewFxItem::trackGeometry(
bool track)
87 QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
88 itemPrivate->addItemChangeListener(changeListener, QQuickItemPrivate::Geometry);
95 QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
96 itemPrivate->removeItemChangeListener(changeListener, QQuickItemPrivate::Geometry);
103QRectF QQuickItemViewFxItem::geometry()
const
105 return QRectF(item->position(), item->size());
108void QQuickItemViewFxItem::setGeometry(
const QRectF &geometry)
110 item->setPosition(geometry.topLeft());
111 item->setSize(geometry.size());
114#if QT_CONFIG(quick_viewtransitions)
115QQuickItemViewTransitioner::TransitionType QQuickItemViewFxItem::scheduledTransitionType()
const
117 return transitionableItem ? transitionableItem->nextTransitionType : QQuickItemViewTransitioner::NoTransition;
120bool QQuickItemViewFxItem::transitionScheduledOrRunning()
const
122 return transitionableItem ? transitionableItem->transitionScheduledOrRunning() :
false;
125bool QQuickItemViewFxItem::transitionRunning()
const
127 return transitionableItem ? transitionableItem->transitionRunning() :
false;
130bool QQuickItemViewFxItem::isPendingRemoval()
const
132 return transitionableItem ? transitionableItem->isPendingRemoval() :
false;
135void QQuickItemViewFxItem::transitionNextReposition(QQuickItemViewTransitioner *transitioner, QQuickItemViewTransitioner::TransitionType type,
bool asTarget)
139 if (!transitionableItem)
140 transitionableItem =
new QQuickItemViewTransitionableItem(item);
141 transitioner->transitionNextReposition(transitionableItem, type, asTarget);
144bool QQuickItemViewFxItem::prepareTransition(QQuickItemViewTransitioner *transitioner,
const QRectF &viewBounds)
146 return transitionableItem ? transitionableItem->prepareTransition(transitioner, index, viewBounds) :
false;
149void QQuickItemViewFxItem::startTransition(QQuickItemViewTransitioner *transitioner)
151 if (transitionableItem)
152 transitionableItem->startTransition(transitioner, index);