35 Q_PROPERTY(QVariant model READ model WRITE setModel NOTIFY modelChanged)
36 Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate NOTIFY delegateChanged)
37 Q_PROPERTY(
int count READ count NOTIFY countChanged)
38 Q_PROPERTY(QQmlDelegateModel::DelegateModelAccess delegateModelAccess READ delegateModelAccess
39 WRITE setDelegateModelAccess NOTIFY delegateModelAccessChanged REVISION(6, 10) FINAL)
41 Q_CLASSINFO(
"DefaultProperty",
"delegate")
43 QML_NAMED_ELEMENT(Repeater3D)
46 QQuick3DRepeater(QQuick3DNode *parent =
nullptr);
47 ~QQuick3DRepeater() override;
49 QVariant model()
const;
50 void setModel(
const QVariant &);
52 QQmlComponent *delegate()
const;
53 void setDelegate(QQmlComponent *);
57 Q_INVOKABLE QQuick3DObject *objectAt(
int index)
const;
59 QQmlDelegateModel::DelegateModelAccess delegateModelAccess()
const;
60 void setDelegateModelAccess(QQmlDelegateModel::DelegateModelAccess delegateModelAccess);
64 void delegateChanged();
67 void objectAdded(
int index, QQuick3DObject *object);
68 void objectRemoved(
int index, QQuick3DObject *object);
70 Q_REVISION(6, 10)
void delegateModelAccessChanged();
77 void componentComplete() override;
78 void itemChange(ItemChange change,
const ItemChangeData &value) override;
79 virtual void initDelegate(
int, QQuick3DNode *) {}
82 void createdObject(
int index, QObject *item);
83 void initObject(
int, QObject *item);
84 void modelUpdated(
const QQmlChangeSet &changeSet,
bool reset);
87 Q_DISABLE_COPY(QQuick3DRepeater)
90 void applyDelegateChange();
91 QQmlDelegateModel *createDelegateModel();
93 void connectModel(QQmlDelegateModelPointer *model);
94 void disconnectModel(QQmlDelegateModelPointer *model);
96 QPointer<QQmlInstanceModel> m_model;
99 bool m_delegateValidated : 1;
100 bool m_explicitDelegate: 1;
101 bool m_explicitDelegateModelAccess : 1;
103 QVector<QPointer<QQuick3DNode> > m_deletables;