28 Q_PROPERTY(
bool fade READ fade WRITE setFade NOTIFY fadeChanged)
29 Q_PROPERTY(QQmlComponent* delegate READ delegate WRITE setDelegate NOTIFY delegateChanged)
30 QML_NAMED_ELEMENT(ItemParticle)
31 QML_ADDED_IN_VERSION(2, 0)
32 QML_ATTACHED(QQuickItemParticleAttached)
34 explicit QQuickItemParticle(QQuickItem *parent =
nullptr);
35 ~QQuickItemParticle();
37 bool fade()
const {
return m_fade; }
39 QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
41 static QQuickItemParticleAttached *qmlAttachedProperties(QObject *object);
42 QQmlComponent* delegate()
const
50 void delegateChanged(QQmlComponent* arg);
54 void freeze(QQuickItem* item);
55 void unfreeze(QQuickItem* item);
56 void take(QQuickItem* item,
bool prioritize=
false);
57 void give(QQuickItem* item);
59 void setFade(
bool arg){
if (arg == m_fade)
return; m_fade = arg; Q_EMIT fadeChanged();}
60 void setDelegate(QQmlComponent* arg)
62 if (m_delegate != arg) {
64 Q_EMIT delegateChanged(arg);
69 void reset() override;
70 void commit(
int gIdx,
int pIdx) override;
71 void initialize(
int gIdx,
int pIdx) override;
72 void prepareNextFrame();
74 bool clockShouldUpdate()
const;
76 void reconnectSystem(QQuickParticleSystem *system);
77 void reconnectParent(QQuickItem *parent);
78 void processDeletables();
79 void tick(
int time = 0);
80 QSet<QQuickItem* > m_deletables;
81 QList<QQuickItem* > m_managed;
84 QList<QQuickItem*> m_pendingItems;
85 QSet<QQuickItem*> m_stasis;
88 QQmlComponent* m_delegate;
90 typedef QTickAnimationProxy<QQuickItemParticle, &QQuickItemParticle::tick> Clock;
92 QMetaObject::Connection m_systemRunStateConnection;
93 QMetaObject::Connection m_systemPauseStateConnection;
94 QMetaObject::Connection m_systemEnabledStateConnection;
95 QMetaObject::Connection m_parentEnabledStateConnection;
QQuickItemParticleAttached(QObject *parent)
QQuickItemParticle * particle() const