36 Q_PROPERTY(
int count READ count NOTIFY countChanged)
38 QML_ADDED_IN_VERSION(2, 0)
46 enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02, Pooled = 0x04 };
47 Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag)
49 virtual int count()
const = 0;
50 virtual bool isValid()
const = 0;
51 virtual QObject *object(
int index, QQmlIncubator::IncubationMode incubationMode = QQmlIncubator::AsynchronousIfNested) = 0;
52 virtual ReleaseFlags release(QObject *object, ReusableFlag reusableFlag = NotReusable) = 0;
53 virtual void cancel(
int) {}
54 QString stringValue(
int index,
const QString &role) {
return variantValue(index, role).toString(); }
55 virtual QVariant variantValue(
int,
const QString &) = 0;
56 virtual void setWatchedRoles(
const QList<QByteArray> &roles) = 0;
57 virtual QQmlIncubator::Status incubationStatus(
int index) = 0;
59 virtual void drainReusableItemsPool(
int maxPoolTime) { Q_UNUSED(maxPoolTime); }
60 virtual int poolSize() {
return 0; }
62 virtual int indexOf(QObject *object, QObject *objectContext)
const = 0;
63 virtual const QAbstractItemModel *abstractItemModel()
const {
return nullptr; }
65 virtual bool setRequiredProperty(
int index,
const QString &name,
const QVariant &value);
69 void modelUpdated(
const QQmlChangeSet &changeSet,
bool reset);
70 void createdItem(
int index, QObject *object);
71 void initItem(
int index, QObject *object);
72 void destroyingItem(QObject *object);
73 Q_REVISION(2, 15)
void itemPooled(
int index, QObject *object);
74 Q_REVISION(2, 15)
void itemReused(
int index, QObject *object);
77 QQmlInstanceModel(QObjectPrivate &dd, QObject *parent =
nullptr)
78 : QObject(dd, parent) {}
81 Q_DISABLE_COPY(QQmlInstanceModel)
89 Q_DECLARE_PRIVATE(QQmlObjectModel)
91 Q_PROPERTY(QQmlListProperty<QObject> children READ children NOTIFY childrenChanged DESIGNABLE
false)
92 Q_CLASSINFO(
"qt_QmlJSWrapperFactoryMethod",
"_q_createJSWrapper(QQmlV4ExecutionEnginePtr)")
93 Q_CLASSINFO(
"DefaultProperty",
"children")
94 QML_NAMED_ELEMENT(ObjectModel)
95 QML_ADDED_IN_VERSION(2, 1)
96 QML_ATTACHED(QQmlObjectModelAttached)
99 QQmlObjectModel(QObject *parent=
nullptr);
102 int count()
const override;
103 bool isValid()
const override;
104 QObject *object(
int index, QQmlIncubator::IncubationMode incubationMode = QQmlIncubator::AsynchronousIfNested) override;
105 ReleaseFlags release(QObject *object, ReusableFlag reusable = NotReusable) override;
106 QVariant variantValue(
int index,
const QString &role) override;
107 void setWatchedRoles(
const QList<QByteArray> &) override {}
108 QQmlIncubator::Status incubationStatus(
int index) override;
110 int indexOf(QObject *object, QObject *objectContext)
const override;
112 QQmlListProperty<QObject> children();
114 static QQmlObjectModelAttached *qmlAttachedProperties(QObject *obj);
116 Q_REVISION(2, 3) Q_INVOKABLE QObject *get(
int index)
const;
117 Q_REVISION(2, 3) Q_INVOKABLE
void append(QObject *object);
118 Q_REVISION(2, 3) Q_INVOKABLE
void insert(
int index, QObject *object);
119 Q_REVISION(2, 3) Q_INVOKABLE
void move(
int from,
int to,
int n = 1);
120 Q_REVISION(2, 3) Q_INVOKABLE
void remove(
int index,
int n = 1);
123 Q_REVISION(2, 3)
void clear();
126 void childrenChanged();
129 Q_PRIVATE_SLOT(d_func(), quint64 _q_createJSWrapper(QQmlV4ExecutionEnginePtr))
130 Q_DISABLE_COPY(QQmlObjectModel)