37 Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged)
38 Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged)
39 Q_PROPERTY(
int count READ count NOTIFY countChanged)
40 Q_PROPERTY(QQmlDelegateModel::DelegateModelAccess delegateModelAccess READ delegateModelAccess
41 WRITE setDelegateModelAccess NOTIFY delegateModelAccessChanged REVISION(6, 10) FINAL)
43 Q_CLASSINFO(
"DefaultProperty",
"delegate")
45 QML_NAMED_ELEMENT(Repeater3D)
48 QQuick3DRepeater(QQuick3DNode *parent =
nullptr);
49 ~QQuick3DRepeater() override;
51 QVariant model()
const;
52 void setModel(
const QVariant &);
54 QQmlComponent *delegate()
const;
55 void setDelegate(QQmlComponent *);
59 Q_INVOKABLE QQuick3DObject *objectAt(
int index)
const;
61 QQmlDelegateModel::DelegateModelAccess delegateModelAccess()
const;
62 void setDelegateModelAccess(QQmlDelegateModel::DelegateModelAccess delegateModelAccess);
66 void delegateChanged();
69 void objectAdded(
int index, QQuick3DObject *object);
70 void objectRemoved(
int index, QQuick3DObject *object);
72 Q_REVISION(6, 10)
void delegateModelAccessChanged();
79 void componentComplete() override;
80 void itemChange(ItemChange change,
const ItemChangeData &value) override;
81 virtual void initDelegate(
int, QQuick3DNode *) {}
84 void createdObject(
int index, QObject *item);
85 void initObject(
int, QObject *item);
86 void modelUpdated(
const QQmlChangeSet &changeSet,
bool reset);
89 Q_DISABLE_COPY(QQuick3DRepeater)
92 void applyDelegateChange();
93 QQmlDelegateModel *createDelegateModel();
95 void connectModel(QQmlDelegateModelPointer *model);
96 void disconnectModel(QQmlDelegateModelPointer *model);
98 QPointer<QQmlInstanceModel> m_model;
101 bool m_delegateValidated : 1;
102 bool m_explicitDelegate: 1;
103 bool m_explicitDelegateModelAccess : 1;
105 QVector<QPointer<QQuick3DNode> > m_deletables;