46 virtual int rowCount(
const QQmlAdaptorModel &)
const {
return 0; }
47 virtual int columnCount(
const QQmlAdaptorModel &)
const {
return 0; }
48 virtual void cleanup(QQmlAdaptorModel &)
const {}
50 virtual QVariant value(
const QQmlAdaptorModel &,
int,
const QString &)
const {
53 virtual QQmlDelegateModelItem *createItem(
55 const QQmlRefPointer<QQmlDelegateModelItemMetaType> &,
56 int,
int,
int) {
return nullptr; }
59 const QQmlAdaptorModel &,
60 const QList<QQmlDelegateModelItem *> &,
63 const QVector<
int> &)
const {
return false; }
64 virtual void replaceWatchedRoles(
66 const QList<QByteArray> &,
67 const QList<QByteArray> &)
const {}
68 virtual QVariant parentModelIndex(
const QQmlAdaptorModel &)
const {
70 virtual QVariant modelIndex(
const QQmlAdaptorModel &,
int)
const {
72 virtual bool canFetchMore(
const QQmlAdaptorModel &)
const {
return false; }
73 virtual void fetchMore(QQmlAdaptorModel &)
const {}
75 QScopedPointer<QMetaObject, QScopedPointerPodDeleter> metaObject;
76 QQmlPropertyCache::ConstPtr propertyCache;
80 QPersistentModelIndex rootIndex;
81 QQmlListAccessor list;
85 QV4::PersistentValue modelStrongReference;
87 QTypeRevision modelItemRevision = QTypeRevision::zero();
88 QQmlDelegateModel::DelegateModelAccess delegateModelAccess = QQmlDelegateModel::Qt5ReadWrite;
93 inline QVariant model()
const {
return list.list(); }
94 void setModel(
const QVariant &variant);
95 void invalidateModel();
100 int columnCount()
const;
101 int rowAt(
int index)
const;
102 int columnAt(
int index)
const;
103 int indexAt(
int row,
int column)
const;
105 void useImportVersion(QTypeRevision revision);
107 inline bool adaptsAim()
const {
return qobject_cast<QAbstractItemModel *>(object()); }
108 inline QAbstractItemModel *aim() {
return static_cast<QAbstractItemModel *>(object()); }
109 inline const QAbstractItemModel *aim()
const {
return static_cast<
const QAbstractItemModel *>(object()); }
111 inline QVariant value(
int index,
const QString &role)
const {
112 return accessors->value(*
this, index, role); }
113 inline QQmlDelegateModelItem *createItem(
114 const QQmlRefPointer<QQmlDelegateModelItemMetaType> &metaType,
int index)
116 return accessors->createItem(*
this, metaType, index, rowAt(index), columnAt(index));
118 inline bool hasProxyObject()
const {
119 switch (list.type()) {
120 case QQmlListAccessor::Instance:
121 case QQmlListAccessor::ListProperty:
122 case QQmlListAccessor::ObjectList:
123 case QQmlListAccessor::ObjectSequence:
132 const QList<QQmlDelegateModelItem *> &items,
135 const QVector<
int> &roles)
const {
136 return accessors->notify(*
this, items, index, count, roles); }
137 inline void replaceWatchedRoles(
138 const QList<QByteArray> &oldRoles,
const QList<QByteArray> &newRoles) {
139 accessors->replaceWatchedRoles(*
this, oldRoles, newRoles); }
141 inline QVariant modelIndex(
int index)
const {
return accessors->modelIndex(*
this, index); }
142 inline QVariant parentModelIndex()
const {
return accessors->parentModelIndex(*
this); }
143 inline bool canFetchMore()
const {
return accessors->canFetchMore(*
this); }
144 inline void fetchMore() {
return accessors->fetchMore(*
this); }
147 static void objectDestroyedImpl(QQmlGuardImpl *);
149 Accessors m_nullAccessors;