diff options
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/qquickgridview.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquickitem.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquicklistview.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquickpathview.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquickrepeater.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquickvisualadaptormodel.cpp | 140 | ||||
-rw-r--r-- | src/quick/items/qquickvisualadaptormodel_p.h | 8 | ||||
-rw-r--r-- | src/quick/items/qquickvisualdatamodel.cpp | 8 | ||||
-rw-r--r-- | src/quick/items/qquickvisualdatamodel_p.h | 4 |
9 files changed, 13 insertions, 152 deletions
diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index 7ca22b9f52..8f330b9031 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -45,7 +45,6 @@ #include "qquickitemview_p_p.h" #include <private/qquicksmoothedanimation_p_p.h> -#include <private/qlistmodelinterface_p.h> #include <QtGui/qevent.h> #include <QtCore/qmath.h> diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index d4eea2b227..fefddad4b6 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -64,7 +64,6 @@ #include <QtQuick/private/qquickstategroup_p.h> #include <private/qqmlopenmetaobject_p.h> #include <QtQuick/private/qquickstate_p.h> -#include <private/qlistmodelinterface_p.h> #include <private/qquickitem_p.h> #include <private/qqmlaccessors_p.h> #include <QtQuick/private/qquickaccessibleattached_p.h> diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 547b033400..18b994733e 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -51,7 +51,6 @@ #include <QtCore/qcoreapplication.h> #include <private/qquicksmoothedanimation_p_p.h> -#include <private/qlistmodelinterface_p.h> #include "qplatformdefs.h" QT_BEGIN_NAMESPACE diff --git a/src/quick/items/qquickpathview.cpp b/src/quick/items/qquickpathview.cpp index c4ee8bca6e..b5304c3361 100644 --- a/src/quick/items/qquickpathview.cpp +++ b/src/quick/items/qquickpathview.cpp @@ -46,7 +46,6 @@ #include <QtQuick/private/qquickstate_p.h> #include <private/qqmlglobal_p.h> #include <private/qqmlopenmetaobject_p.h> -#include <private/qlistmodelinterface_p.h> #include <private/qquickchangeset_p.h> #include <QtGui/qevent.h> diff --git a/src/quick/items/qquickrepeater.cpp b/src/quick/items/qquickrepeater.cpp index 8ebdccf7d9..61b1392a91 100644 --- a/src/quick/items/qquickrepeater.cpp +++ b/src/quick/items/qquickrepeater.cpp @@ -45,7 +45,6 @@ #include <private/qqmlglobal_p.h> #include <private/qquicklistaccessor_p.h> -#include <private/qlistmodelinterface_p.h> #include <private/qquickchangeset_p.h> QT_BEGIN_NAMESPACE diff --git a/src/quick/items/qquickvisualadaptormodel.cpp b/src/quick/items/qquickvisualadaptormodel.cpp index f7cd3e2764..b17ab26373 100644 --- a/src/quick/items/qquickvisualadaptormodel.cpp +++ b/src/quick/items/qquickvisualadaptormodel.cpp @@ -153,7 +153,7 @@ public: const QList<QQuickVisualDataModelItem *> &items, int index, int count, - const QList<int> &roles) const + const QVector<int> &roles) const { bool changed = roles.isEmpty() && !watchedRoles.isEmpty(); if (!changed && !watchedRoles.isEmpty() && watchedRoleIds.isEmpty()) { @@ -461,8 +461,8 @@ public: vdm, SLOT(_q_rowsInserted(QModelIndex,int,int))); QObject::disconnect(aim, SIGNAL(rowsRemoved(QModelIndex,int,int)), vdm, SLOT(_q_rowsRemoved(QModelIndex,int,int))); - QObject::disconnect(aim, SIGNAL(dataChanged(QModelIndex,QModelIndex)), - vdm, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); + QObject::disconnect(aim, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), + vdm, SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector<int>))); QObject::disconnect(aim, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), vdm, SLOT(_q_rowsMoved(QModelIndex,int,int,QModelIndex,int))); QObject::disconnect(aim, SIGNAL(modelReset()), @@ -553,123 +553,6 @@ public: }; //----------------------------------------------------------------- -// QListModelInterface -//----------------------------------------------------------------- - -class QQuickVDMListModelInterfaceData : public QQuickVDMCachedModelData -{ -public: - QQuickVDMListModelInterfaceData(QQuickVisualDataModelItemMetaType *metaType, VDMModelDelegateDataType *dataType, int index) - : QQuickVDMCachedModelData(metaType, dataType, index) - { - } - - QVariant value(int role) const - { - return type->model->lmi()->data(index, role); - } - - void setValue(int, const QVariant &) {} - - v8::Handle<v8::Value> get() - { - if (type->constructor.IsEmpty()) { - v8::HandleScope handleScope; - v8::Context::Scope contextScope(engine->context()); - type->initializeConstructor(engineData(engine)); - } - v8::Local<v8::Object> data = type->constructor->NewInstance(); - data->SetExternalResource(this); - ++scriptRef; - return data; - } -}; - -class VDMListModelInterfaceDataType : public VDMModelDelegateDataType -{ -public: - VDMListModelInterfaceDataType(QQuickVisualAdaptorModel *model) - : VDMModelDelegateDataType(model) - { - } - - int count(const QQuickVisualAdaptorModel &model) const - { - return model.lmi()->count(); - } - - void cleanup(QQuickVisualAdaptorModel &model, QQuickVisualDataModel *vdm) const - { - QListModelInterface *lmi = model.lmi(); - if (lmi && vdm) { - QObject::disconnect(lmi, SIGNAL(itemsChanged(int,int,QList<int>)), - vdm, SLOT(_q_itemsChanged(int,int,QList<int>))); - QObject::disconnect(lmi, SIGNAL(itemsInserted(int,int)), - vdm, SLOT(_q_itemsInserted(int,int))); - QObject::disconnect(lmi, SIGNAL(itemsRemoved(int,int)), - vdm, SLOT(_q_itemsRemoved(int,int))); - QObject::disconnect(lmi, SIGNAL(itemsMoved(int,int,int)), - vdm, SLOT(_q_itemsMoved(int,int,int))); - } - const_cast<VDMListModelInterfaceDataType *>(this)->release(); - } - - QVariant value(const QQuickVisualAdaptorModel &model, int index, const QString &role) const - { - QHash<QByteArray, int>::const_iterator it = roleNames.find(role.toUtf8()); - return it != roleNames.end() && model - ? model.lmi()->data(index, *it) - : QVariant(); - } - - QQuickVisualDataModelItem *createItem( - QQuickVisualAdaptorModel &model, - QQuickVisualDataModelItemMetaType *metaType, - QQmlEngine *engine, - int index) const - { - VDMListModelInterfaceDataType *dataType = const_cast<VDMListModelInterfaceDataType *>(this); - if (!metaObject) - dataType->initializeMetaType(model, engine); - return new QQuickVDMListModelInterfaceData(metaType, dataType, index); - } - - void initializeMetaType(QQuickVisualAdaptorModel &model, QQmlEngine *engine) - { - QMetaObjectBuilder builder; - setModelDataType<QQuickVDMListModelInterfaceData>(&builder, this); - - const QByteArray propertyType = QByteArrayLiteral("QVariant"); - - const QListModelInterface * const listModelInterface = model.lmi(); - const QList<int> roles = listModelInterface->roles(); - for (int propertyId = 0; propertyId < roles.count(); ++propertyId) { - const int role = roles.at(propertyId); - const QString roleName = listModelInterface->toString(role); - const QByteArray propertyName = roleName.toUtf8(); - - propertyRoles.append(role); - roleNames.insert(propertyName, role); - addProperty(&builder, propertyId, propertyName, propertyType); - - } - if (propertyRoles.count() == 1) { - hasModelData = true; - const int role = roles.first(); - const QByteArray propertyName = QByteArrayLiteral("modelData"); - - propertyRoles.append(role); - roleNames.insert(propertyName, role); - addProperty(&builder, 1, propertyName, propertyType); - } - - metaObject = builder.toMetaObject(); - *static_cast<QMetaObject *>(this) = *metaObject; - propertyCache = new QQmlPropertyCache(engine, metaObject); - } -}; - -//----------------------------------------------------------------- // QQuickListAccessor //----------------------------------------------------------------- @@ -1015,25 +898,14 @@ void QQuickVisualAdaptorModel::setModel(const QVariant &variant, QQuickVisualDat vdm, QQuickVisualDataModel, SLOT(_q_rowsInserted(QModelIndex,int,int))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), vdm, QQuickVisualDataModel, SLOT(_q_rowsRemoved(QModelIndex,int,int))); - qmlobject_connect(model, QAbstractItemModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)), - vdm, QQuickVisualDataModel, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); + qmlobject_connect(model, QAbstractItemModel, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), + vdm, QQuickVisualDataModel, SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector<int>))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), vdm, QQuickVisualDataModel, SLOT(_q_rowsMoved(QModelIndex,int,int,QModelIndex,int))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(modelReset()), vdm, QQuickVisualDataModel, SLOT(_q_modelReset())); qmlobject_connect(model, QAbstractItemModel, SIGNAL(layoutChanged()), vdm, QQuickVisualDataModel, SLOT(_q_layoutChanged())); - } else if (QListModelInterface *model = qobject_cast<QListModelInterface *>(object)) { - accessors = new VDMListModelInterfaceDataType(this); - - qmlobject_connect(model, QListModelInterface, SIGNAL(itemsChanged(int,int,QList<int>)), - vdm, QQuickVisualDataModel, SLOT(_q_itemsChanged(int,int,QList<int>))); - qmlobject_connect(model, QListModelInterface, SIGNAL(itemsInserted(int,int)), - vdm, QQuickVisualDataModel, SLOT(_q_itemsInserted(int,int))); - qmlobject_connect(model, QListModelInterface, SIGNAL(itemsRemoved(int,int)), - vdm, QQuickVisualDataModel, SLOT(_q_itemsRemoved(int,int))); - qmlobject_connect(model, QListModelInterface, SIGNAL(itemsMoved(int,int,int)), - vdm, QQuickVisualDataModel, SLOT(_q_itemsMoved(int,int,int))); } else { accessors = new VDMObjectDelegateDataType; } @@ -1080,6 +952,4 @@ QQuickVisualAdaptorModelEngineData::~QQuickVisualAdaptorModelEngineData() QT_END_NAMESPACE -QML_DECLARE_TYPE(QListModelInterface) - #include <qquickvisualadaptormodel.moc> diff --git a/src/quick/items/qquickvisualadaptormodel_p.h b/src/quick/items/qquickvisualadaptormodel_p.h index 5176921a51..d1b66a9963 100644 --- a/src/quick/items/qquickvisualadaptormodel_p.h +++ b/src/quick/items/qquickvisualadaptormodel_p.h @@ -44,7 +44,6 @@ #include <QtCore/qabstractitemmodel.h> -#include "private/qlistmodelinterface_p.h" #include "private/qquicklistaccessor_p.h" #include <private/qqmlguard_p.h> @@ -83,7 +82,7 @@ public: const QList<QQuickVisualDataModelItem *> &, int, int, - const QList<int> &) const { return false; } + const QVector<int> &) const { return false; } virtual void replaceWatchedRoles( QQuickVisualAdaptorModel &, const QList<QByteArray> &, @@ -109,9 +108,6 @@ public: inline QAbstractItemModel *aim() { return static_cast<QAbstractItemModel *>(object()); } inline const QAbstractItemModel *aim() const { return static_cast<const QAbstractItemModel *>(object()); } - inline QListModelInterface *lmi() { return static_cast<QListModelInterface *>(object()); } - inline const QListModelInterface *lmi() const { return static_cast<const QListModelInterface *>(object()); } - inline int count() const { return qMax(0, accessors->count(*this)); } inline QVariant value(int index, const QString &role) const { return accessors->value(*this, index, role); } @@ -124,7 +120,7 @@ public: const QList<QQuickVisualDataModelItem *> &items, int index, int count, - const QList<int> &roles) const { + const QVector<int> &roles) const { return accessors->notify(*this, items, index, count, roles); } inline void replaceWatchedRoles( const QList<QByteArray> &oldRoles, const QList<QByteArray> &newRoles) { diff --git a/src/quick/items/qquickvisualdatamodel.cpp b/src/quick/items/qquickvisualdatamodel.cpp index 728240d712..63b4d58b6d 100644 --- a/src/quick/items/qquickvisualdatamodel.cpp +++ b/src/quick/items/qquickvisualdatamodel.cpp @@ -1060,7 +1060,7 @@ void QQuickVisualDataModelPrivate::itemsChanged(const QVector<Compositor::Change QQuickVisualDataGroupPrivate::get(m_groups[i])->changeSet.apply(translatedChanges.at(i)); } -void QQuickVisualDataModel::_q_itemsChanged(int index, int count, const QList<int> &roles) +void QQuickVisualDataModel::_q_itemsChanged(int index, int count, const QVector<int> &roles) { Q_D(QQuickVisualDataModel); if (count <= 0 || !d->m_complete) @@ -1454,17 +1454,17 @@ void QQuickVisualDataModel::_q_rowsMoved( } } -void QQuickVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end) +void QQuickVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end, const QVector<int> &roles) { Q_D(QQuickVisualDataModel); if (begin.parent() == d->m_adaptorModel.rootIndex) - _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, QList<int>()); + _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, roles); } void QQuickVisualDataModel::_q_layoutChanged() { Q_D(QQuickVisualDataModel); - _q_itemsChanged(0, d->m_count, QList<int>()); + _q_itemsChanged(0, d->m_count, QVector<int>()); } QQuickVisualDataModelAttached *QQuickVisualDataModel::qmlAttachedProperties(QObject *obj) diff --git a/src/quick/items/qquickvisualdatamodel_p.h b/src/quick/items/qquickvisualdatamodel_p.h index 38939b64ab..fc29336d6c 100644 --- a/src/quick/items/qquickvisualdatamodel_p.h +++ b/src/quick/items/qquickvisualdatamodel_p.h @@ -131,7 +131,7 @@ Q_SIGNALS: void rootIndexChanged(); private Q_SLOTS: - void _q_itemsChanged(int index, int count, const QList<int> &roles); + void _q_itemsChanged(int index, int count, const QVector<int> &roles); void _q_itemsInserted(int index, int count); void _q_itemsRemoved(int index, int count); void _q_itemsMoved(int from, int to, int count); @@ -139,7 +139,7 @@ private Q_SLOTS: void _q_rowsInserted(const QModelIndex &,int,int); void _q_rowsRemoved(const QModelIndex &,int,int); void _q_rowsMoved(const QModelIndex &, int, int, const QModelIndex &, int); - void _q_dataChanged(const QModelIndex&,const QModelIndex&); + void _q_dataChanged(const QModelIndex&,const QModelIndex&,const QVector<int> &); void _q_layoutChanged(); private: |