48 virtual int rowCount(
const QQmlAdaptorModel &)
const {
return 0; }
49 virtual int columnCount(
const QQmlAdaptorModel &)
const {
return 0; }
50 virtual void cleanup(QQmlAdaptorModel &)
const {}
52 virtual QVariant value(
const QQmlAdaptorModel &,
int,
const QString &)
const {
55 virtual QQmlDelegateModelItem *createItem(
57 const QQmlRefPointer<QQmlDelegateModelItemMetaType> &,
58 int,
int,
int) {
return nullptr; }
61 const QQmlAdaptorModel &,
62 const QList<QQmlDelegateModelItem *> &,
65 const QList<
int> &)
const {
return false; }
66 virtual void replaceWatchedRoles(
68 const QList<QByteArray> &,
69 const QList<QByteArray> &)
const {}
70 virtual QVariant parentModelIndex(
const QQmlAdaptorModel &)
const {
72 virtual QVariant modelIndex(
const QQmlAdaptorModel &,
int)
const {
74 virtual bool canFetchMore(
const QQmlAdaptorModel &)
const {
return false; }
75 virtual void fetchMore(QQmlAdaptorModel &)
const {}
77 QScopedPointer<QMetaObject, QScopedPointerPodDeleter> metaObject;
78 QQmlPropertyCache::ConstPtr propertyCache;
82 QPersistentModelIndex rootIndex;
83 QQmlListAccessor list;
87 QV4::PersistentValue modelStrongReference;
89 QTypeRevision modelItemRevision = QTypeRevision::zero();
90 QQmlDelegateModel::DelegateModelAccess delegateModelAccess = QQmlDelegateModel::Qt5ReadWrite;
95 inline QVariant model()
const {
return list.list(); }
96 void setModel(
const QVariant &variant);
97 void invalidateModel();
101 int rowCount()
const;
102 int columnCount()
const;
103 int rowAt(
int index)
const;
104 int columnAt(
int index)
const;
105 int indexAt(
int row,
int column)
const;
107 void useImportVersion(QTypeRevision revision);
109 inline bool adaptsAim()
const {
return qobject_cast<QAbstractItemModel *>(object()); }
110 inline QAbstractItemModel *aim() {
return static_cast<QAbstractItemModel *>(object()); }
111 inline const QAbstractItemModel *aim()
const {
return static_cast<
const QAbstractItemModel *>(object()); }
113 inline QVariant value(
int index,
const QString &role)
const {
114 return accessors->value(*
this, index, role); }
115 inline QQmlDelegateModelItem *createItem(
116 const QQmlRefPointer<QQmlDelegateModelItemMetaType> &metaType,
int index)
118 return accessors->createItem(*
this, metaType, index, rowAt(index), columnAt(index));
120 inline bool hasProxyObject()
const {
121 switch (list.type()) {
122 case QQmlListAccessor::Instance:
123 case QQmlListAccessor::ListProperty:
124 case QQmlListAccessor::ObjectList:
125 case QQmlListAccessor::ObjectSequence:
134 const QList<QQmlDelegateModelItem *> &items,
137 const QList<
int> &roles)
const {
138 return accessors->notify(*
this, items, index, count, roles); }
139 inline void replaceWatchedRoles(
140 const QList<QByteArray> &oldRoles,
const QList<QByteArray> &newRoles) {
141 accessors->replaceWatchedRoles(*
this, oldRoles, newRoles); }
143 inline QVariant modelIndex(
int index)
const {
return accessors->modelIndex(*
this, index); }
144 inline QVariant parentModelIndex()
const {
return accessors->parentModelIndex(*
this); }
145 inline bool canFetchMore()
const {
return accessors->canFetchMore(*
this); }
146 inline void fetchMore() {
return accessors->fetchMore(*
this); }
149 static void objectDestroyedImpl(QQmlGuardImpl *);
151 Accessors m_nullAccessors;