From 7cad0e52c5a020bd29635e9912fd8946a6b48124 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 15 Jan 2013 14:26:59 -0800 Subject: [PATCH] Move the model classes from QtQuick to QtQml This is needed for proper support of non-GUI instantiators in QtQml. Only private C++ classes are affected. Aside from name changes, model classes now operate on QObjects instead of QQuickItems, leading to minor changes in the implementation of QtQuick classes using them. The old QML type names will still be registered in the QtQuick import for the forseeable future, but pointing to the new classes. The new QML types will be added in a second commit. Classes Affected: QQuickVisualDataGroup -> QQmlDataGroup QQuickVisualDataModel -> QQmlDelegateModel QQuickVisualItemModel -> QQmlObjectModel QQuickVisualModel -> QQmlInstanceModel QQuickChangeSet -> QQmlChangeSet QQuickListAccessor -> QQmlListAccessor QQuickListCompositor -> QQmlListCompositor QQuickPackage -> QQuickPackage (just moved for now) Change-Id: Ia19e630e53bfa9e5d459e289596cd11df1ea3930 Reviewed-by: Andrew den Exter --- src/particles/qquickitemparticle.cpp | 1 - src/qml/items/items.pri | 10 + .../items/qqmldelegatemodel.cpp} | 901 ++++++++++----------- .../items/qqmldelegatemodel_p.h} | 96 +-- .../items/qqmldelegatemodel_p_p.h} | 196 ++--- .../items/qqmlobjectmodel.cpp} | 101 ++- .../items/qqmlobjectmodel_p.h} | 80 +- src/{quick/util => qml/items}/qquickpackage.cpp | 0 src/{quick/util => qml/items}/qquickpackage_p.h | 0 src/qml/qml.pro | 1 + src/qml/qml/qqmlengine.cpp | 8 + .../util/qqmladaptormodel.cpp} | 236 +++--- .../util/qqmladaptormodel_p.h} | 64 +- .../util/qqmlchangeset.cpp} | 54 +- .../util/qqmlchangeset_p.h} | 37 +- .../util/qqmllistaccessor.cpp} | 16 +- .../util/qqmllistaccessor_p.h} | 12 +- .../util/qqmllistcompositor.cpp} | 184 ++--- .../util/qqmllistcompositor_p.h} | 60 +- src/qml/util/util.pri | 8 + src/quick/items/items.pri | 7 - src/quick/items/qquickgridview.cpp | 21 +- src/quick/items/qquickgridview_p.h | 3 +- src/quick/items/qquickitemsmodule.cpp | 6 - src/quick/items/qquickitemview.cpp | 114 +-- src/quick/items/qquickitemview_p.h | 10 +- src/quick/items/qquickitemview_p_p.h | 29 +- src/quick/items/qquicklistview.cpp | 21 +- src/quick/items/qquicklistview_p.h | 4 +- src/quick/items/qquickpathview.cpp | 84 +- src/quick/items/qquickpathview_p.h | 10 +- src/quick/items/qquickpathview_p_p.h | 5 +- src/quick/items/qquickrepeater.cpp | 82 +- src/quick/items/qquickrepeater_p.h | 8 +- src/quick/items/qquickrepeater_p_p.h | 5 +- src/quick/util/qquickutilmodule.cpp | 2 - src/quick/util/util.pri | 8 - tests/auto/qml/qml.pro | 4 +- tests/auto/qml/qqmlchangeset/qqmlchangeset.pro | 10 + .../tst_qqmlchangeset.cpp} | 106 +-- .../qqmllistcompositor.pro} | 4 +- .../tst_qqmllistcompositor.cpp} | 106 +-- .../qquicklistcompositor/qquicklistcompositor.pro | 10 - .../quick/qquickgridview/tst_qquickgridview.cpp | 1 - .../quick/qquicklistview/tst_qquicklistview.cpp | 8 +- .../tst_qquickvisualdatamodel.cpp | 264 +++--- 46 files changed, 1520 insertions(+), 1477 deletions(-) create mode 100644 src/qml/items/items.pri rename src/{quick/items/qquickvisualdatamodel.cpp => qml/items/qqmldelegatemodel.cpp} (73%) rename src/{quick/items/qquickvisualdatamodel_p.h => qml/items/qqmldelegatemodel_p.h} (69%) rename src/{quick/items/qquickvisualdatamodel_p_p.h => qml/items/qqmldelegatemodel_p_p.h} (60%) rename src/{quick/items/qquickvisualitemmodel.cpp => qml/items/qqmlobjectmodel.cpp} (62%) rename src/{quick/items/qquickvisualitemmodel_p.h => qml/items/qqmlobjectmodel_p.h} (61%) rename src/{quick/util => qml/items}/qquickpackage.cpp (100%) rename src/{quick/util => qml/items}/qquickpackage_p.h (100%) rename src/{quick/items/qquickvisualadaptormodel.cpp => qml/util/qqmladaptormodel.cpp} (77%) rename src/{quick/items/qquickvisualadaptormodel_p.h => qml/util/qqmladaptormodel_p.h} (68%) rename src/{quick/util/qquickchangeset.cpp => qml/util/qqmlchangeset.cpp} (92%) rename src/{quick/util/qquickchangeset_p.h => qml/util/qqmlchangeset_p.h} (80%) rename src/{quick/util/qquicklistaccessor.cpp => qml/util/qqmllistaccessor.cpp} (91%) rename src/{quick/util/qquicklistaccessor_p.h => qml/util/qqmllistaccessor_p.h} (92%) rename src/{quick/util/qquicklistcompositor.cpp => qml/util/qqmllistcompositor.cpp} (90%) rename src/{quick/util/qquicklistcompositor_p.h => qml/util/qqmllistcompositor_p.h} (85%) create mode 100644 tests/auto/qml/qqmlchangeset/qqmlchangeset.pro rename tests/auto/qml/{qquickchangeset/tst_qquickchangeset.cpp => qqmlchangeset/tst_qqmlchangeset.cpp} (96%) rename tests/auto/qml/{qquickchangeset/qquickchangeset.pro => qqmllistcompositor/qqmllistcompositor.pro} (71%) rename tests/auto/qml/{qquicklistcompositor/tst_qquicklistcompositor.cpp => qqmllistcompositor/tst_qqmllistcompositor.cpp} (96%) delete mode 100644 tests/auto/qml/qquicklistcompositor/qquicklistcompositor.pro diff --git a/src/particles/qquickitemparticle.cpp b/src/particles/qquickitemparticle.cpp index 28a66e8..7bc696e 100644 --- a/src/particles/qquickitemparticle.cpp +++ b/src/particles/qquickitemparticle.cpp @@ -40,7 +40,6 @@ ****************************************************************************/ #include "qquickitemparticle_p.h" -#include #include #include #include diff --git a/src/qml/items/items.pri b/src/qml/items/items.pri new file mode 100644 index 0000000..0fa489f --- /dev/null +++ b/src/qml/items/items.pri @@ -0,0 +1,10 @@ +SOURCES += \ + $$PWD/qquickpackage.cpp \ + $$PWD/qqmldelegatemodel.cpp \ + $$PWD/qqmlobjectmodel.cpp + +HEADERS += \ + $$PWD/qquickpackage_p.h \ + $$PWD/qqmldelegatemodel_p.h \ + $$PWD/qqmldelegatemodel_p_p.h \ + $$PWD/qqmlobjectmodel_p.h diff --git a/src/quick/items/qquickvisualdatamodel.cpp b/src/qml/items/qqmldelegatemodel.cpp similarity index 73% rename from src/quick/items/qquickvisualdatamodel.cpp rename to src/qml/items/qqmldelegatemodel.cpp index d2e50e8..131b539 100644 --- a/src/quick/items/qquickvisualdatamodel.cpp +++ b/src/qml/items/qqmldelegatemodel.cpp @@ -39,15 +39,14 @@ ** ****************************************************************************/ -#include "qquickvisualdatamodel_p_p.h" -#include "qquickitem.h" +#include "qqmldelegatemodel_p_p.h" #include #include #include -#include -#include +#include +#include #include #include #include @@ -55,7 +54,7 @@ QT_BEGIN_NAMESPACE -class QQuickVisualDataModelEngineData : public QV8Engine::Deletable +class QQmlDelegateModelEngineData : public QV8Engine::Deletable { public: enum @@ -70,15 +69,15 @@ public: StringCount }; - QQuickVisualDataModelEngineData(QV8Engine *engine); - ~QQuickVisualDataModelEngineData(); + QQmlDelegateModelEngineData(QV8Engine *engine); + ~QQmlDelegateModelEngineData(); v8::Local array( - QV8Engine *engine, const QVector &changes); + QV8Engine *engine, const QVector &changes); v8::Local array( - QV8Engine *engine, const QVector &changes); + QV8Engine *engine, const QVector &changes); v8::Local array( - QV8Engine *engine, const QVector &changes); + QV8Engine *engine, const QVector &changes); inline v8::Local model() { return strings->Get(Model)->ToString(); } @@ -94,34 +93,34 @@ public: v8::Persistent constructorChangeArray; }; -V8_DEFINE_EXTENSION(QQuickVisualDataModelEngineData, engineData) +V8_DEFINE_EXTENSION(QQmlDelegateModelEngineData, engineData) -void QQuickVisualDataModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) +void QQmlDelegateModelPartsMetaObject::propertyCreated(int, QMetaPropertyBuilder &prop) { prop.setWritable(false); } -QVariant QQuickVisualDataModelPartsMetaObject::initialValue(int id) +QVariant QQmlDelegateModelPartsMetaObject::initialValue(int id) { - QQuickVisualDataModelParts *parts = static_cast(object()); - QQuickVisualPartsModel *m = new QQuickVisualPartsModel( + QQmlDelegateModelParts *parts = static_cast(object()); + QQmlPartsModel *m = new QQmlPartsModel( parts->model, QString::fromUtf8(name(id)), parts); parts->models.append(m); return QVariant::fromValue(static_cast(m)); } -QQuickVisualDataModelParts::QQuickVisualDataModelParts(QQuickVisualDataModel *parent) +QQmlDelegateModelParts::QQmlDelegateModelParts(QQmlDelegateModel *parent) : QObject(parent), model(parent) { - new QQuickVisualDataModelPartsMetaObject(this); + new QQmlDelegateModelPartsMetaObject(this); } //--------------------------------------------------------------------------- /*! \qmltype VisualDataModel - \instantiates QQuickVisualDataModel + \instantiates QQmlDelegateModel \inqmlmodule QtQuick 2 \ingroup qtquick-models \brief Encapsulates a model and delegate @@ -141,7 +140,7 @@ QQuickVisualDataModelParts::QQuickVisualDataModelParts(QQuickVisualDataModel *pa \snippet qml/visualdatamodel.qml 0 */ -QQuickVisualDataModelPrivate::QQuickVisualDataModelPrivate(QQmlContext *ctxt) +QQmlDelegateModelPrivate::QQmlDelegateModelPrivate(QQmlContext *ctxt) : m_delegate(0) , m_cacheMetaType(0) , m_context(ctxt) @@ -161,7 +160,7 @@ QQuickVisualDataModelPrivate::QQuickVisualDataModelPrivate(QQmlContext *ctxt) { } -QQuickVisualDataModelPrivate::~QQuickVisualDataModelPrivate() +QQmlDelegateModelPrivate::~QQmlDelegateModelPrivate() { qDeleteAll(m_finishedIncubating); @@ -169,36 +168,36 @@ QQuickVisualDataModelPrivate::~QQuickVisualDataModelPrivate() m_cacheMetaType->release(); } -void QQuickVisualDataModelPrivate::init() +void QQmlDelegateModelPrivate::init() { - Q_Q(QQuickVisualDataModel); + Q_Q(QQmlDelegateModel); m_compositor.setRemoveGroups(Compositor::GroupMask & ~Compositor::PersistedFlag); - m_items = new QQuickVisualDataGroup(QStringLiteral("items"), q, Compositor::Default, q); + m_items = new QQmlDataGroup(QStringLiteral("items"), q, Compositor::Default, q); m_items->setDefaultInclude(true); - m_persistedItems = new QQuickVisualDataGroup(QStringLiteral("persistedItems"), q, Compositor::Persisted, q); - QQuickVisualDataGroupPrivate::get(m_items)->emitters.insert(this); + m_persistedItems = new QQmlDataGroup(QStringLiteral("persistedItems"), q, Compositor::Persisted, q); + QQmlDataGroupPrivate::get(m_items)->emitters.insert(this); } -QQuickVisualDataModel::QQuickVisualDataModel() -: QQuickVisualModel(*(new QQuickVisualDataModelPrivate(0))) +QQmlDelegateModel::QQmlDelegateModel() +: QQmlInstanceModel(*(new QQmlDelegateModelPrivate(0))) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); d->init(); } -QQuickVisualDataModel::QQuickVisualDataModel(QQmlContext *ctxt, QObject *parent) -: QQuickVisualModel(*(new QQuickVisualDataModelPrivate(ctxt)), parent) +QQmlDelegateModel::QQmlDelegateModel(QQmlContext *ctxt, QObject *parent) +: QQmlInstanceModel(*(new QQmlDelegateModelPrivate(ctxt)), parent) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); d->init(); } -QQuickVisualDataModel::~QQuickVisualDataModel() +QQmlDelegateModel::~QQmlDelegateModel() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); - foreach (QQuickVisualDataModelItem *cacheItem, d->m_cache) { + foreach (QQmlDelegateModelItem *cacheItem, d->m_cache) { if (cacheItem->object) { delete cacheItem->object; @@ -215,25 +214,25 @@ QQuickVisualDataModel::~QQuickVisualDataModel() } -void QQuickVisualDataModel::classBegin() +void QQmlDelegateModel::classBegin() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (!d->m_context) d->m_context = qmlContext(this); } -void QQuickVisualDataModel::componentComplete() +void QQmlDelegateModel::componentComplete() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); d->m_complete = true; int defaultGroups = 0; QStringList groupNames; groupNames.append(QStringLiteral("items")); groupNames.append(QStringLiteral("persistedItems")); - if (QQuickVisualDataGroupPrivate::get(d->m_items)->defaultInclude) + if (QQmlDataGroupPrivate::get(d->m_items)->defaultInclude) defaultGroups |= Compositor::DefaultFlag; - if (QQuickVisualDataGroupPrivate::get(d->m_persistedItems)->defaultInclude) + if (QQmlDataGroupPrivate::get(d->m_persistedItems)->defaultInclude) defaultGroups |= Compositor::PersistedFlag; for (int i = Compositor::MinimumGroupCount; i < d->m_groupCount; ++i) { QString name = d->m_groups[i]->name(); @@ -242,21 +241,21 @@ void QQuickVisualDataModel::componentComplete() --d->m_groupCount; --i; } else if (name.at(0).isUpper()) { - qmlInfo(d->m_groups[i]) << QQuickVisualDataGroup::tr("Group names must start with a lower case letter"); + qmlInfo(d->m_groups[i]) << QQmlDataGroup::tr("Group names must start with a lower case letter"); d->m_groups[i] = d->m_groups[d->m_groupCount - 1]; --d->m_groupCount; --i; } else { groupNames.append(name); - QQuickVisualDataGroupPrivate *group = QQuickVisualDataGroupPrivate::get(d->m_groups[i]); + QQmlDataGroupPrivate *group = QQmlDataGroupPrivate::get(d->m_groups[i]); group->setModel(this, Compositor::Group(i)); if (group->defaultInclude) defaultGroups |= (1 << i); } } - d->m_cacheMetaType = new QQuickVisualDataModelItemMetaType( + d->m_cacheMetaType = new QQmlDelegateModelItemMetaType( QQmlEnginePrivate::getV8Engine(d->m_context->engine()), this, groupNames); d->m_compositor.setGroupCount(d->m_groupCount); @@ -264,7 +263,7 @@ void QQuickVisualDataModel::componentComplete() d->updateFilterGroup(); while (!d->m_pendingParts.isEmpty()) - static_cast(d->m_pendingParts.first())->updateFilterGroup(); + static_cast(d->m_pendingParts.first())->updateFilterGroup(); QVector inserts; d->m_count = d->m_adaptorModel.count(); @@ -295,15 +294,15 @@ void QQuickVisualDataModel::componentComplete() \sa {qml-data-models}{Data Models} */ -QVariant QQuickVisualDataModel::model() const +QVariant QQmlDelegateModel::model() const { - Q_D(const QQuickVisualDataModel); + Q_D(const QQmlDelegateModel); return d->m_adaptorModel.model(); } -void QQuickVisualDataModel::setModel(const QVariant &model) +void QQmlDelegateModel::setModel(const QVariant &model) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (d->m_complete) _q_itemsRemoved(0, d->m_count); @@ -329,15 +328,15 @@ void QQuickVisualDataModel::setModel(const QVariant &model) The index is exposed as an accessible \c index property. Properties of the model are also available depending upon the type of \l {qml-data-models}{Data Model}. */ -QQmlComponent *QQuickVisualDataModel::delegate() const +QQmlComponent *QQmlDelegateModel::delegate() const { - Q_D(const QQuickVisualDataModel); + Q_D(const QQmlDelegateModel); return d->m_delegate; } -void QQuickVisualDataModel::setDelegate(QQmlComponent *delegate) +void QQmlDelegateModel::setDelegate(QQmlComponent *delegate) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (d->m_transaction) { qmlInfo(this) << tr("The delegate of a VisualDataModel cannot be changed within onUpdated."); return; @@ -347,13 +346,13 @@ void QQuickVisualDataModel::setDelegate(QQmlComponent *delegate) d->m_delegateValidated = false; if (wasValid && d->m_complete) { for (int i = 1; i < d->m_groupCount; ++i) { - QQuickVisualDataGroupPrivate::get(d->m_groups[i])->changeSet.remove( + QQmlDataGroupPrivate::get(d->m_groups[i])->changeSet.remove( 0, d->m_compositor.count(Compositor::Group(i))); } } if (d->m_complete && d->m_delegate) { for (int i = 1; i < d->m_groupCount; ++i) { - QQuickVisualDataGroupPrivate::get(d->m_groups[i])->changeSet.insert( + QQmlDataGroupPrivate::get(d->m_groups[i])->changeSet.insert( 0, d->m_compositor.count(Compositor::Group(i))); } } @@ -389,15 +388,15 @@ void QQuickVisualDataModel::setDelegate(QQmlComponent *delegate) \sa modelIndex(), parentModelIndex() */ -QVariant QQuickVisualDataModel::rootIndex() const +QVariant QQmlDelegateModel::rootIndex() const { - Q_D(const QQuickVisualDataModel); + Q_D(const QQmlDelegateModel); return QVariant::fromValue(QModelIndex(d->m_adaptorModel.rootIndex)); } -void QQuickVisualDataModel::setRootIndex(const QVariant &root) +void QQmlDelegateModel::setRootIndex(const QVariant &root) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); QModelIndex modelIndex = qvariant_cast(root); const bool changed = d->m_adaptorModel.rootIndex != modelIndex; @@ -432,9 +431,9 @@ void QQuickVisualDataModel::setRootIndex(const QVariant &root) \sa rootIndex */ -QVariant QQuickVisualDataModel::modelIndex(int idx) const +QVariant QQmlDelegateModel::modelIndex(int idx) const { - Q_D(const QQuickVisualDataModel); + Q_D(const QQmlDelegateModel); return d->m_adaptorModel.modelIndex(idx); } @@ -450,9 +449,9 @@ QVariant QQuickVisualDataModel::modelIndex(int idx) const \sa rootIndex */ -QVariant QQuickVisualDataModel::parentModelIndex() const +QVariant QQmlDelegateModel::parentModelIndex() const { - Q_D(const QQuickVisualDataModel); + Q_D(const QQmlDelegateModel); return d->m_adaptorModel.parentModelIndex(); } @@ -460,33 +459,32 @@ QVariant QQuickVisualDataModel::parentModelIndex() const \qmlproperty int QtQuick2::VisualDataModel::count */ -int QQuickVisualDataModel::count() const +int QQmlDelegateModel::count() const { - Q_D(const QQuickVisualDataModel); + Q_D(const QQmlDelegateModel); if (!d->m_delegate) return 0; return d->m_compositor.count(d->m_compositorGroup); } -QQuickVisualDataModel::ReleaseFlags QQuickVisualDataModelPrivate::release(QObject *object) +QQmlDelegateModel::ReleaseFlags QQmlDelegateModelPrivate::release(QObject *object) { - QQuickVisualDataModel::ReleaseFlags stat = 0; + QQmlDelegateModel::ReleaseFlags stat = 0; if (!object) return stat; - if (QQuickVisualDataModelItem *cacheItem = QQuickVisualDataModelItem::dataForObject(object)) { + if (QQmlDelegateModelItem *cacheItem = QQmlDelegateModelItem::dataForObject(object)) { if (cacheItem->releaseObject()) { cacheItem->destroyObject(); - if (QQuickItem *item = qmlobject_cast(object)) - emitDestroyingItem(item); + emitDestroyingItem(object); if (cacheItem->incubationTask) { releaseIncubator(cacheItem->incubationTask); cacheItem->incubationTask = 0; } cacheItem->Dispose(); - stat |= QQuickVisualModel::Destroyed; + stat |= QQmlInstanceModel::Destroyed; } else { - stat |= QQuickVisualDataModel::Referenced; + stat |= QQmlDelegateModel::Referenced; } } return stat; @@ -496,26 +494,24 @@ QQuickVisualDataModel::ReleaseFlags QQuickVisualDataModelPrivate::release(QObjec Returns ReleaseStatus flags. */ -QQuickVisualDataModel::ReleaseFlags QQuickVisualDataModel::release(QQuickItem *item) +QQmlDelegateModel::ReleaseFlags QQmlDelegateModel::release(QObject *item) { - Q_D(QQuickVisualDataModel); - QQuickVisualModel::ReleaseFlags stat = d->release(item); - if (stat & Destroyed) - item->setParentItem(0); + Q_D(QQmlDelegateModel); + QQmlInstanceModel::ReleaseFlags stat = d->release(item); return stat; } // Cancel a requested async item -void QQuickVisualDataModel::cancel(int index) +void QQmlDelegateModel::cancel(int index) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (!d->m_delegate || index < 0 || index >= d->m_compositor.count(d->m_compositorGroup)) { qWarning() << "VisualDataModel::cancel: index out range" << index << d->m_compositor.count(d->m_compositorGroup); return; } Compositor::iterator it = d->m_compositor.find(d->m_compositorGroup, index); - QQuickVisualDataModelItem *cacheItem = it->inCache() ? d->m_cache.at(it.cacheIndex) : 0; + QQmlDelegateModelItem *cacheItem = it->inCache() ? d->m_cache.at(it.cacheIndex) : 0; if (cacheItem) { if (cacheItem->incubationTask && !cacheItem->isObjectReferenced()) { d->releaseIncubator(cacheItem->incubationTask); @@ -524,10 +520,10 @@ void QQuickVisualDataModel::cancel(int index) if (cacheItem->object) { QObject *object = cacheItem->object; cacheItem->destroyObject(); - if (QQuickItem *item = qmlobject_cast(object)) - d->emitDestroyingItem(item); - else if (QQuickPackage *package = qmlobject_cast(object)) + if (QQuickPackage *package = qmlobject_cast(object)) d->emitDestroyingPackage(package); + else + d->emitDestroyingItem(object); } cacheItem->scriptRef -= 1; @@ -541,31 +537,31 @@ void QQuickVisualDataModel::cancel(int index) } } -void QQuickVisualDataModelPrivate::group_append( - QQmlListProperty *property, QQuickVisualDataGroup *group) +void QQmlDelegateModelPrivate::group_append( + QQmlListProperty *property, QQmlDataGroup *group) { - QQuickVisualDataModelPrivate *d = static_cast(property->data); + QQmlDelegateModelPrivate *d = static_cast(property->data); if (d->m_complete) return; if (d->m_groupCount == Compositor::MaximumGroupCount) { - qmlInfo(d->q_func()) << QQuickVisualDataModel::tr("The maximum number of supported VisualDataGroups is 8"); + qmlInfo(d->q_func()) << QQmlDelegateModel::tr("The maximum number of supported VisualDataGroups is 8"); return; } d->m_groups[d->m_groupCount] = group; d->m_groupCount += 1; } -int QQuickVisualDataModelPrivate::group_count( - QQmlListProperty *property) +int QQmlDelegateModelPrivate::group_count( + QQmlListProperty *property) { - QQuickVisualDataModelPrivate *d = static_cast(property->data); + QQmlDelegateModelPrivate *d = static_cast(property->data); return d->m_groupCount - 1; } -QQuickVisualDataGroup *QQuickVisualDataModelPrivate::group_at( - QQmlListProperty *property, int index) +QQmlDataGroup *QQmlDelegateModelPrivate::group_at( + QQmlListProperty *property, int index) { - QQuickVisualDataModelPrivate *d = static_cast(property->data); + QQmlDelegateModelPrivate *d = static_cast(property->data); return index >= 0 && index < d->m_groupCount - 1 ? d->m_groups[index + 1] : 0; @@ -589,15 +585,15 @@ QQuickVisualDataGroup *QQuickVisualDataModelPrivate::group_at( \snippet qml/visualdatagroup.qml 0 */ -QQmlListProperty QQuickVisualDataModel::groups() +QQmlListProperty QQmlDelegateModel::groups() { - Q_D(QQuickVisualDataModel); - return QQmlListProperty( + Q_D(QQmlDelegateModel); + return QQmlListProperty( this, d, - QQuickVisualDataModelPrivate::group_append, - QQuickVisualDataModelPrivate::group_count, - QQuickVisualDataModelPrivate::group_at, + QQmlDelegateModelPrivate::group_append, + QQmlDelegateModelPrivate::group_count, + QQmlDelegateModelPrivate::group_at, 0); } @@ -607,9 +603,9 @@ QQmlListProperty QQuickVisualDataModel::groups() This property holds visual data model's default group to which all new items are added. */ -QQuickVisualDataGroup *QQuickVisualDataModel::items() +QQmlDataGroup *QQmlDelegateModel::items() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); return d->m_items; } @@ -630,9 +626,9 @@ QQuickVisualDataGroup *QQuickVisualDataModel::items() to this group. */ -QQuickVisualDataGroup *QQuickVisualDataModel::persistedItems() +QQmlDataGroup *QQmlDelegateModel::persistedItems() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); return d->m_persistedItems; } @@ -646,15 +642,15 @@ QQuickVisualDataGroup *QQuickVisualDataModel::persistedItems() By default this is the \l items group. */ -QString QQuickVisualDataModel::filterGroup() const +QString QQmlDelegateModel::filterGroup() const { - Q_D(const QQuickVisualDataModel); + Q_D(const QQmlDelegateModel); return d->m_filterGroup; } -void QQuickVisualDataModel::setFilterGroup(const QString &group) +void QQmlDelegateModel::setFilterGroup(const QString &group) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (d->m_transaction) { qmlInfo(this) << tr("The group of a VisualDataModel cannot be changed within onChanged"); @@ -668,18 +664,18 @@ void QQuickVisualDataModel::setFilterGroup(const QString &group) } } -void QQuickVisualDataModel::resetFilterGroup() +void QQmlDelegateModel::resetFilterGroup() { setFilterGroup(QStringLiteral("items")); } -void QQuickVisualDataModelPrivate::updateFilterGroup() +void QQmlDelegateModelPrivate::updateFilterGroup() { - Q_Q(QQuickVisualDataModel); + Q_Q(QQmlDelegateModel); if (!m_cacheMetaType) return; - QQuickListCompositor::Group previousGroup = m_compositorGroup; + QQmlListCompositor::Group previousGroup = m_compositorGroup; m_compositorGroup = Compositor::Default; for (int i = 1; i < m_groupCount; ++i) { if (m_filterGroup == m_cacheMetaType->groupNames.at(i - 1)) { @@ -688,13 +684,13 @@ void QQuickVisualDataModelPrivate::updateFilterGroup() } } - QQuickVisualDataGroupPrivate::get(m_groups[m_compositorGroup])->emitters.insert(this); + QQmlDataGroupPrivate::get(m_groups[m_compositorGroup])->emitters.insert(this); if (m_compositorGroup != previousGroup) { - QVector removes; - QVector inserts; + QVector removes; + QVector inserts; m_compositor.transition(previousGroup, m_compositorGroup, &removes, &inserts); - QQuickChangeSet changeSet; + QQmlChangeSet changeSet; changeSet.move(removes, inserts); emit q->modelUpdated(changeSet, false); @@ -702,7 +698,7 @@ void QQuickVisualDataModelPrivate::updateFilterGroup() emit q->countChanged(); if (m_parts) { - foreach (QQuickVisualPartsModel *model, m_parts->models) + foreach (QQmlPartsModel *model, m_parts->models) model->updateFilterGroup(m_compositorGroup, changeSet); } } @@ -736,40 +732,40 @@ void QQuickVisualDataModelPrivate::updateFilterGroup() \sa Package */ -QObject *QQuickVisualDataModel::parts() +QObject *QQmlDelegateModel::parts() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (!d->m_parts) - d->m_parts = new QQuickVisualDataModelParts(this); + d->m_parts = new QQmlDelegateModelParts(this); return d->m_parts; } -void QQuickVisualDataModelPrivate::emitCreatedPackage(QVDMIncubationTask *incubationTask, QQuickPackage *package) +void QQmlDelegateModelPrivate::emitCreatedPackage(QQDMIncubationTask *incubationTask, QQuickPackage *package) { for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->createdPackage(incubationTask->index[i], package); + QQmlDataGroupPrivate::get(m_groups[i])->createdPackage(incubationTask->index[i], package); } -void QQuickVisualDataModelPrivate::emitInitPackage(QVDMIncubationTask *incubationTask, QQuickPackage *package) +void QQmlDelegateModelPrivate::emitInitPackage(QQDMIncubationTask *incubationTask, QQuickPackage *package) { for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->initPackage(incubationTask->index[i], package); + QQmlDataGroupPrivate::get(m_groups[i])->initPackage(incubationTask->index[i], package); } -void QQuickVisualDataModelPrivate::emitDestroyingPackage(QQuickPackage *package) +void QQmlDelegateModelPrivate::emitDestroyingPackage(QQuickPackage *package) { for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->destroyingPackage(package); + QQmlDataGroupPrivate::get(m_groups[i])->destroyingPackage(package); } -void QVDMIncubationTask::statusChanged(Status status) +void QQDMIncubationTask::statusChanged(Status status) { vdm->incubatorStatusChanged(this, status); } -void QQuickVisualDataModelPrivate::releaseIncubator(QVDMIncubationTask *incubationTask) +void QQmlDelegateModelPrivate::releaseIncubator(QQDMIncubationTask *incubationTask) { - Q_Q(QQuickVisualDataModel); + Q_Q(QQmlDelegateModel); if (!incubationTask->isError()) incubationTask->clear(); m_finishedIncubating.append(incubationTask); @@ -779,7 +775,7 @@ void QQuickVisualDataModelPrivate::releaseIncubator(QVDMIncubationTask *incubati } } -void QQuickVisualDataModelPrivate::removeCacheItem(QQuickVisualDataModelItem *cacheItem) +void QQmlDelegateModelPrivate::removeCacheItem(QQmlDelegateModelItem *cacheItem) { int cidx = m_cache.indexOf(cacheItem); if (cidx >= 0) { @@ -789,31 +785,31 @@ void QQuickVisualDataModelPrivate::removeCacheItem(QQuickVisualDataModelItem *ca Q_ASSERT(m_cache.count() == m_compositor.count(Compositor::Cache)); } -void QQuickVisualDataModelPrivate::incubatorStatusChanged(QVDMIncubationTask *incubationTask, QQmlIncubator::Status status) +void QQmlDelegateModelPrivate::incubatorStatusChanged(QQDMIncubationTask *incubationTask, QQmlIncubator::Status status) { - Q_Q(QQuickVisualDataModel); + Q_Q(QQmlDelegateModel); if (status != QQmlIncubator::Ready && status != QQmlIncubator::Error) return; - QQuickVisualDataModelItem *cacheItem = incubationTask->incubating; + QQmlDelegateModelItem *cacheItem = incubationTask->incubating; cacheItem->incubationTask = 0; incubationTask->incubating = 0; releaseIncubator(incubationTask); if (status == QQmlIncubator::Ready) { - if (QQuickItem *item = qmlobject_cast(cacheItem->object)) - emitCreatedItem(incubationTask, item); - else if (QQuickPackage *package = qmlobject_cast(cacheItem->object)) + if (QQuickPackage *package = qmlobject_cast(cacheItem->object)) emitCreatedPackage(incubationTask, package); + else + emitCreatedItem(incubationTask, cacheItem->object); } else if (status == QQmlIncubator::Error) { qmlInfo(q, m_delegate->errors()) << "Error creating delegate"; } if (!cacheItem->isObjectReferenced()) { - if (QQuickItem *item = qmlobject_cast(cacheItem->object)) - emitDestroyingItem(item); - else if (QQuickPackage *package = qmlobject_cast(cacheItem->object)) + if (QQuickPackage *package = qmlobject_cast(cacheItem->object)) emitDestroyingPackage(package); + else + emitDestroyingItem(cacheItem->object); delete cacheItem->object; cacheItem->object = 0; cacheItem->scriptRef -= 1; @@ -826,25 +822,25 @@ void QQuickVisualDataModelPrivate::incubatorStatusChanged(QVDMIncubationTask *in } } -void QVDMIncubationTask::setInitialState(QObject *o) +void QQDMIncubationTask::setInitialState(QObject *o) { vdm->setInitialState(this, o); } -void QQuickVisualDataModelPrivate::setInitialState(QVDMIncubationTask *incubationTask, QObject *o) +void QQmlDelegateModelPrivate::setInitialState(QQDMIncubationTask *incubationTask, QObject *o) { - QQuickVisualDataModelItem *cacheItem = incubationTask->incubating; + QQmlDelegateModelItem *cacheItem = incubationTask->incubating; cacheItem->object = o; - if (QQuickItem *item = qmlobject_cast(cacheItem->object)) - emitInitItem(incubationTask, item); - else if (QQuickPackage *package = qmlobject_cast(cacheItem->object)) + if (QQuickPackage *package = qmlobject_cast(cacheItem->object)) emitInitPackage(incubationTask, package); + else + emitInitItem(incubationTask, cacheItem->object); } -QObject *QQuickVisualDataModelPrivate::object(Compositor::Group group, int index, bool asynchronous) +QObject *QQmlDelegateModelPrivate::object(Compositor::Group group, int index, bool asynchronous) { - Q_Q(QQuickVisualDataModel); + Q_Q(QQmlDelegateModel); if (!m_delegate || index < 0 || index >= m_compositor.count(group)) { qWarning() << "VisualDataModel::item: index out range" << index << m_compositor.count(group); return 0; @@ -854,7 +850,7 @@ QObject *QQuickVisualDataModelPrivate::object(Compositor::Group group, int index Compositor::iterator it = m_compositor.find(group, index); - QQuickVisualDataModelItem *cacheItem = it->inCache() ? m_cache.at(it.cacheIndex) : 0; + QQmlDelegateModelItem *cacheItem = it->inCache() ? m_cache.at(it.cacheIndex) : 0; if (!cacheItem) { cacheItem = m_adaptorModel.createItem(m_cacheMetaType, m_context->engine(), it.modelIndex()); @@ -883,7 +879,7 @@ QObject *QQuickVisualDataModelPrivate::object(Compositor::Group group, int index cacheItem->scriptRef += 1; - cacheItem->incubationTask = new QVDMIncubationTask(this, asynchronous ? QQmlIncubator::Asynchronous : QQmlIncubator::AsynchronousIfNested); + cacheItem->incubationTask = new QQDMIncubationTask(this, asynchronous ? QQmlIncubator::Asynchronous : QQmlIncubator::AsynchronousIfNested); cacheItem->incubationTask->incubating = cacheItem; cacheItem->incubationTask->clear(); @@ -896,8 +892,8 @@ QObject *QQuickVisualDataModelPrivate::object(Compositor::Group group, int index cacheItem->contextData = ctxt; if (m_adaptorModel.hasProxyObject()) { - if (QQuickVisualAdaptorModelProxyInterface *proxy - = qobject_cast(cacheItem)) { + if (QQmlAdaptorModelProxyInterface *proxy + = qobject_cast(cacheItem)) { ctxt = new QQmlContextData; ctxt->setParent(cacheItem->contextData, true); ctxt->contextObject = proxy->proxiedObject(); @@ -936,9 +932,9 @@ QObject *QQuickVisualDataModelPrivate::object(Compositor::Group group, int index to ensure a reference is held. Any call to item() which returns a valid item must be matched by a call to release() in order to destroy the item. */ -QQuickItem *QQuickVisualDataModel::item(int index, bool asynchronous) +QObject *QQmlDelegateModel::object(int index, bool asynchronous) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (!d->m_delegate || index < 0 || index >= d->m_compositor.count(d->m_compositorGroup)) { qWarning() << "VisualDataModel::item: index out range" << index << d->m_compositor.count(d->m_compositorGroup); return 0; @@ -948,22 +944,13 @@ QQuickItem *QQuickVisualDataModel::item(int index, bool asynchronous) if (!object) return 0; - if (QQuickItem *item = qmlobject_cast(object)) - return item; - - d->release(object); - if (!d->m_delegateValidated) { - if (object) - qmlInfo(d->m_delegate) << QQuickVisualDataModel::tr("Delegate component must be Item type."); - d->m_delegateValidated = true; - } - return 0; + return object; } -QString QQuickVisualDataModelPrivate::stringValue(Compositor::Group group, int index, const QString &name) +QString QQmlDelegateModelPrivate::stringValue(Compositor::Group group, int index, const QString &name) { Compositor::iterator it = m_compositor.find(group, index); - if (QQuickVisualAdaptorModel *model = it.list()) { + if (QQmlAdaptorModel *model = it.list()) { QString role = name; int dot = name.indexOf(QLatin1Char('.')); if (dot > 0) @@ -982,28 +969,28 @@ QString QQuickVisualDataModelPrivate::stringValue(Compositor::Group group, int i return QString(); } -QString QQuickVisualDataModel::stringValue(int index, const QString &name) +QString QQmlDelegateModel::stringValue(int index, const QString &name) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); return d->stringValue(d->m_compositorGroup, index, name); } -int QQuickVisualDataModel::indexOf(QQuickItem *item, QObject *) const +int QQmlDelegateModel::indexOf(QObject *item, QObject *) const { - Q_D(const QQuickVisualDataModel); - if (QQuickVisualDataModelItem *cacheItem = QQuickVisualDataModelItem::dataForObject(item)) + Q_D(const QQmlDelegateModel); + if (QQmlDelegateModelItem *cacheItem = QQmlDelegateModelItem::dataForObject(item)) return cacheItem->groupIndex(d->m_compositorGroup); return -1; } -void QQuickVisualDataModel::setWatchedRoles(QList roles) +void QQmlDelegateModel::setWatchedRoles(QList roles) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); d->m_adaptorModel.replaceWatchedRoles(d->m_watchedRoles, roles); d->m_watchedRoles = roles; } -void QQuickVisualDataModelPrivate::addGroups( +void QQmlDelegateModelPrivate::addGroups( Compositor::iterator from, int count, Compositor::Group group, int groupFlags) { QVector inserts; @@ -1012,7 +999,7 @@ void QQuickVisualDataModelPrivate::addGroups( emitChanges(); } -void QQuickVisualDataModelPrivate::removeGroups( +void QQmlDelegateModelPrivate::removeGroups( Compositor::iterator from, int count, Compositor::Group group, int groupFlags) { QVector removes; @@ -1021,7 +1008,7 @@ void QQuickVisualDataModelPrivate::removeGroups( emitChanges(); } -void QQuickVisualDataModelPrivate::setGroups( +void QQmlDelegateModelPrivate::setGroups( Compositor::iterator from, int count, Compositor::Group group, int groupFlags) { QVector removes; @@ -1037,9 +1024,9 @@ void QQuickVisualDataModelPrivate::setGroups( emitChanges(); } -bool QQuickVisualDataModel::event(QEvent *e) +bool QQmlDelegateModel::event(QEvent *e) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (e->type() == QEvent::UpdateRequest) { d->m_adaptorModel.fetchMore(); } else if (e->type() == QEvent::User) { @@ -1047,31 +1034,31 @@ bool QQuickVisualDataModel::event(QEvent *e) qDeleteAll(d->m_finishedIncubating); d->m_finishedIncubating.clear(); } - return QQuickVisualModel::event(e); + return QQmlInstanceModel::event(e); } -void QQuickVisualDataModelPrivate::itemsChanged(const QVector &changes) +void QQmlDelegateModelPrivate::itemsChanged(const QVector &changes) { if (!m_delegate) return; - QVarLengthArray, Compositor::MaximumGroupCount> translatedChanges(m_groupCount); + QVarLengthArray, Compositor::MaximumGroupCount> translatedChanges(m_groupCount); foreach (const Compositor::Change &change, changes) { for (int i = 1; i < m_groupCount; ++i) { if (change.inGroup(i)) { - translatedChanges[i].append(QQuickChangeSet::Change(change.index[i], change.count)); + translatedChanges[i].append(QQmlChangeSet::Change(change.index[i], change.count)); } } } for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->changeSet.change(translatedChanges.at(i)); + QQmlDataGroupPrivate::get(m_groups[i])->changeSet.change(translatedChanges.at(i)); } -void QQuickVisualDataModel::_q_itemsChanged(int index, int count, const QVector &roles) +void QQmlDelegateModel::_q_itemsChanged(int index, int count, const QVector &roles) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (count <= 0 || !d->m_complete) return; @@ -1083,22 +1070,22 @@ void QQuickVisualDataModel::_q_itemsChanged(int index, int count, const QVector< } } -static void incrementIndexes(QQuickVisualDataModelItem *cacheItem, int count, const int *deltas) +static void incrementIndexes(QQmlDelegateModelItem *cacheItem, int count, const int *deltas) { - if (QVDMIncubationTask *incubationTask = cacheItem->incubationTask) { + if (QQDMIncubationTask *incubationTask = cacheItem->incubationTask) { for (int i = 1; i < count; ++i) incubationTask->index[i] += deltas[i]; } - if (QQuickVisualDataModelAttached *attached = cacheItem->attached) { + if (QQmlDelegateModelAttached *attached = cacheItem->attached) { for (int i = 1; i < count; ++i) attached->m_currentIndex[i] += deltas[i]; } } -void QQuickVisualDataModelPrivate::itemsInserted( +void QQmlDelegateModelPrivate::itemsInserted( const QVector &inserts, - QVarLengthArray, Compositor::MaximumGroupCount> *translatedInserts, - QHash > *movedItems) + QVarLengthArray, Compositor::MaximumGroupCount> *translatedInserts, + QHash > *movedItems) { int cacheIndex = 0; @@ -1113,7 +1100,7 @@ void QQuickVisualDataModelPrivate::itemsInserted( for (int i = 1; i < m_groupCount; ++i) { if (insert.inGroup(i)) { (*translatedInserts)[i].append( - QQuickChangeSet::Insert(insert.index[i], insert.count, insert.moveId)); + QQmlChangeSet::Insert(insert.index[i], insert.count, insert.moveId)); inserted[i] += insert.count; } } @@ -1122,22 +1109,22 @@ void QQuickVisualDataModelPrivate::itemsInserted( continue; if (movedItems && insert.isMove()) { - QList items = movedItems->take(insert.moveId); + QList items = movedItems->take(insert.moveId); Q_ASSERT(items.count() == insert.count); m_cache = m_cache.mid(0, insert.cacheIndex) + items + m_cache.mid(insert.cacheIndex); } if (insert.inGroup()) { for (int offset = 0; cacheIndex < insert.cacheIndex + insert.count; ++cacheIndex, ++offset) { - QQuickVisualDataModelItem *cacheItem = m_cache.at(cacheIndex); + QQmlDelegateModelItem *cacheItem = m_cache.at(cacheIndex); cacheItem->groups |= insert.flags & Compositor::GroupMask; - if (QVDMIncubationTask *incubationTask = cacheItem->incubationTask) { + if (QQDMIncubationTask *incubationTask = cacheItem->incubationTask) { for (int i = 1; i < m_groupCount; ++i) incubationTask->index[i] = cacheItem->groups & (1 << i) ? insert.index[i] + offset : insert.index[i]; } - if (QQuickVisualDataModelAttached *attached = cacheItem->attached) { + if (QQmlDelegateModelAttached *attached = cacheItem->attached) { for (int i = 1; i < m_groupCount; ++i) attached->m_currentIndex[i] = cacheItem->groups & (1 << i) ? insert.index[i] + offset @@ -1152,29 +1139,29 @@ void QQuickVisualDataModelPrivate::itemsInserted( incrementIndexes(m_cache.at(cacheIndex), m_groupCount, inserted); } -void QQuickVisualDataModelPrivate::itemsInserted(const QVector &inserts) +void QQmlDelegateModelPrivate::itemsInserted(const QVector &inserts) { - QVarLengthArray, Compositor::MaximumGroupCount> translatedInserts(m_groupCount); + QVarLengthArray, Compositor::MaximumGroupCount> translatedInserts(m_groupCount); itemsInserted(inserts, &translatedInserts); Q_ASSERT(m_cache.count() == m_compositor.count(Compositor::Cache)); if (!m_delegate) return; for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->changeSet.insert(translatedInserts.at(i)); + QQmlDataGroupPrivate::get(m_groups[i])->changeSet.insert(translatedInserts.at(i)); } -void QQuickVisualDataModel::_q_itemsInserted(int index, int count) +void QQmlDelegateModel::_q_itemsInserted(int index, int count) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (count <= 0 || !d->m_complete) return; d->m_count += count; for (int i = 0, c = d->m_cache.count(); i < c; ++i) { - QQuickVisualDataModelItem *item = d->m_cache.at(i); + QQmlDelegateModelItem *item = d->m_cache.at(i); if (item->modelIndex() >= index) item->setModelIndex(item->modelIndex() + count); } @@ -1185,10 +1172,10 @@ void QQuickVisualDataModel::_q_itemsInserted(int index, int count) d->emitChanges(); } -void QQuickVisualDataModelPrivate::itemsRemoved( +void QQmlDelegateModelPrivate::itemsRemoved( const QVector &removes, - QVarLengthArray, Compositor::MaximumGroupCount> *translatedRemoves, - QHash > *movedItems) + QVarLengthArray, Compositor::MaximumGroupCount> *translatedRemoves, + QHash > *movedItems) { int cacheIndex = 0; int removedCache = 0; @@ -1204,7 +1191,7 @@ void QQuickVisualDataModelPrivate::itemsRemoved( for (int i = 1; i < m_groupCount; ++i) { if (remove.inGroup(i)) { (*translatedRemoves)[i].append( - QQuickChangeSet::Remove(remove.index[i], remove.count, remove.moveId)); + QQmlChangeSet::Remove(remove.index[i], remove.count, remove.moveId)); removed[i] -= remove.count; } } @@ -1214,19 +1201,19 @@ void QQuickVisualDataModelPrivate::itemsRemoved( if (movedItems && remove.isMove()) { movedItems->insert(remove.moveId, m_cache.mid(remove.cacheIndex, remove.count)); - QList::iterator begin = m_cache.begin() + remove.cacheIndex; - QList::iterator end = begin + remove.count; + QList::iterator begin = m_cache.begin() + remove.cacheIndex; + QList::iterator end = begin + remove.count; m_cache.erase(begin, end); } else { for (; cacheIndex < remove.cacheIndex + remove.count - removedCache; ++cacheIndex) { - QQuickVisualDataModelItem *cacheItem = m_cache.at(cacheIndex); + QQmlDelegateModelItem *cacheItem = m_cache.at(cacheIndex); if (remove.inGroup(Compositor::Persisted) && cacheItem->objectRef == 0 && cacheItem->object) { QObject *object = cacheItem->object; cacheItem->destroyObject(); if (QQuickPackage *package = qmlobject_cast(object)) emitDestroyingPackage(package); - else if (QQuickItem *item = qmlobject_cast(object)) - emitDestroyingItem(item); + else + emitDestroyingItem(object); cacheItem->scriptRef -= 1; } if (!cacheItem->isReferenced()) { @@ -1238,22 +1225,22 @@ void QQuickVisualDataModelPrivate::itemsRemoved( Q_ASSERT(m_cache.count() == m_compositor.count(Compositor::Cache)); } else if (remove.groups() == cacheItem->groups) { cacheItem->groups = 0; - if (QVDMIncubationTask *incubationTask = cacheItem->incubationTask) { + if (QQDMIncubationTask *incubationTask = cacheItem->incubationTask) { for (int i = 1; i < m_groupCount; ++i) incubationTask->index[i] = -1; } - if (QQuickVisualDataModelAttached *attached = cacheItem->attached) { + if (QQmlDelegateModelAttached *attached = cacheItem->attached) { for (int i = 1; i < m_groupCount; ++i) attached->m_currentIndex[i] = -1; } } else { - if (QVDMIncubationTask *incubationTask = cacheItem->incubationTask) { + if (QQDMIncubationTask *incubationTask = cacheItem->incubationTask) { for (int i = 1; i < m_groupCount; ++i) { if (remove.inGroup(i)) incubationTask->index[i] = remove.index[i]; } } - if (QQuickVisualDataModelAttached *attached = cacheItem->attached) { + if (QQmlDelegateModelAttached *attached = cacheItem->attached) { for (int i = 1; i < m_groupCount; ++i) { if (remove.inGroup(i)) attached->m_currentIndex[i] = remove.index[i]; @@ -1269,28 +1256,28 @@ void QQuickVisualDataModelPrivate::itemsRemoved( incrementIndexes(m_cache.at(cacheIndex), m_groupCount, removed); } -void QQuickVisualDataModelPrivate::itemsRemoved(const QVector &removes) +void QQmlDelegateModelPrivate::itemsRemoved(const QVector &removes) { - QVarLengthArray, Compositor::MaximumGroupCount> translatedRemoves(m_groupCount); + QVarLengthArray, Compositor::MaximumGroupCount> translatedRemoves(m_groupCount); itemsRemoved(removes, &translatedRemoves); Q_ASSERT(m_cache.count() == m_compositor.count(Compositor::Cache)); if (!m_delegate) return; for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->changeSet.remove(translatedRemoves.at(i)); + QQmlDataGroupPrivate::get(m_groups[i])->changeSet.remove(translatedRemoves.at(i)); } -void QQuickVisualDataModel::_q_itemsRemoved(int index, int count) +void QQmlDelegateModel::_q_itemsRemoved(int index, int count) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (count <= 0|| !d->m_complete) return; d->m_count -= count; for (int i = 0, c = d->m_cache.count(); i < c; ++i) { - QQuickVisualDataModelItem *item = d->m_cache.at(i); + QQmlDelegateModelItem *item = d->m_cache.at(i); if (item->modelIndex() >= index + count) item->setModelIndex(item->modelIndex() - count); else if (item->modelIndex() >= index) @@ -1304,15 +1291,15 @@ void QQuickVisualDataModel::_q_itemsRemoved(int index, int count) d->emitChanges(); } -void QQuickVisualDataModelPrivate::itemsMoved( +void QQmlDelegateModelPrivate::itemsMoved( const QVector &removes, const QVector &inserts) { - QHash > movedItems; + QHash > movedItems; - QVarLengthArray, Compositor::MaximumGroupCount> translatedRemoves(m_groupCount); + QVarLengthArray, Compositor::MaximumGroupCount> translatedRemoves(m_groupCount); itemsRemoved(removes, &translatedRemoves, &movedItems); - QVarLengthArray, Compositor::MaximumGroupCount> translatedInserts(m_groupCount); + QVarLengthArray, Compositor::MaximumGroupCount> translatedInserts(m_groupCount); itemsInserted(inserts, &translatedInserts, &movedItems); Q_ASSERT(m_cache.count() == m_compositor.count(Compositor::Cache)); Q_ASSERT(movedItems.isEmpty()); @@ -1320,15 +1307,15 @@ void QQuickVisualDataModelPrivate::itemsMoved( return; for (int i = 1; i < m_groupCount; ++i) { - QQuickVisualDataGroupPrivate::get(m_groups[i])->changeSet.move( + QQmlDataGroupPrivate::get(m_groups[i])->changeSet.move( translatedRemoves.at(i), translatedInserts.at(i)); } } -void QQuickVisualDataModel::_q_itemsMoved(int from, int to, int count) +void QQmlDelegateModel::_q_itemsMoved(int from, int to, int count) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (count <= 0 || !d->m_complete) return; @@ -1337,7 +1324,7 @@ void QQuickVisualDataModel::_q_itemsMoved(int from, int to, int count) const int difference = from > to ? count : -count; for (int i = 0, c = d->m_cache.count(); i < c; ++i) { - QQuickVisualDataModelItem *item = d->m_cache.at(i); + QQmlDelegateModelItem *item = d->m_cache.at(i); if (item->modelIndex() >= from && item->modelIndex() < from + count) item->setModelIndex(item->modelIndex() - from + to); else if (item->modelIndex() >= minimum && item->modelIndex() < maximum) @@ -1352,7 +1339,7 @@ void QQuickVisualDataModel::_q_itemsMoved(int from, int to, int count) } template v8::Local -QQuickVisualDataModelPrivate::buildChangeList(const QVector &changes) +QQmlDelegateModelPrivate::buildChangeList(const QVector &changes) { v8::Local indexes = v8::Array::New(changes.count()); v8::Local indexKey = v8::String::New("index"); @@ -1369,15 +1356,15 @@ QQuickVisualDataModelPrivate::buildChangeList(const QVector &changes) return indexes; } -void QQuickVisualDataModelPrivate::emitModelUpdated(const QQuickChangeSet &changeSet, bool reset) +void QQmlDelegateModelPrivate::emitModelUpdated(const QQmlChangeSet &changeSet, bool reset) { - Q_Q(QQuickVisualDataModel); + Q_Q(QQmlDelegateModel); emit q->modelUpdated(changeSet, reset); if (changeSet.difference() != 0) emit q->countChanged(); } -void QQuickVisualDataModelPrivate::emitChanges() +void QQmlDelegateModelPrivate::emitChanges() { if (m_transaction || !m_complete || !m_context->isValid()) return; @@ -1385,23 +1372,23 @@ void QQuickVisualDataModelPrivate::emitChanges() m_transaction = true; QV8Engine *engine = QQmlEnginePrivate::getV8Engine(m_context->engine()); for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->emitChanges(engine); + QQmlDataGroupPrivate::get(m_groups[i])->emitChanges(engine); m_transaction = false; const bool reset = m_reset; m_reset = false; for (int i = 1; i < m_groupCount; ++i) - QQuickVisualDataGroupPrivate::get(m_groups[i])->emitModelUpdated(reset); + QQmlDataGroupPrivate::get(m_groups[i])->emitModelUpdated(reset); - foreach (QQuickVisualDataModelItem *cacheItem, m_cache) { + foreach (QQmlDelegateModelItem *cacheItem, m_cache) { if (cacheItem->attached) cacheItem->attached->emitChanges(); } } -void QQuickVisualDataModel::_q_modelReset() +void QQmlDelegateModel::_q_modelReset() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (!d->m_delegate) return; @@ -1412,7 +1399,7 @@ void QQuickVisualDataModel::_q_modelReset() d->m_count = d->m_adaptorModel.count(); for (int i = 0, c = d->m_cache.count(); i < c; ++i) { - QQuickVisualDataModelItem *item = d->m_cache.at(i); + QQmlDelegateModelItem *item = d->m_cache.at(i); if (item->modelIndex() != -1) item->setModelIndex(-1); } @@ -1434,16 +1421,16 @@ void QQuickVisualDataModel::_q_modelReset() emit rootIndexChanged(); } -void QQuickVisualDataModel::_q_rowsInserted(const QModelIndex &parent, int begin, int end) +void QQmlDelegateModel::_q_rowsInserted(const QModelIndex &parent, int begin, int end) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (parent == d->m_adaptorModel.rootIndex) _q_itemsInserted(begin, end - begin + 1); } -void QQuickVisualDataModel::_q_rowsAboutToBeRemoved(const QModelIndex &parent, int begin, int end) +void QQmlDelegateModel::_q_rowsAboutToBeRemoved(const QModelIndex &parent, int begin, int end) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (!d->m_adaptorModel.rootIndex.isValid()) return; const QModelIndex index = d->m_adaptorModel.rootIndex; @@ -1461,18 +1448,18 @@ void QQuickVisualDataModel::_q_rowsAboutToBeRemoved(const QModelIndex &parent, i } } -void QQuickVisualDataModel::_q_rowsRemoved(const QModelIndex &parent, int begin, int end) +void QQmlDelegateModel::_q_rowsRemoved(const QModelIndex &parent, int begin, int end) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (parent == d->m_adaptorModel.rootIndex) _q_itemsRemoved(begin, end - begin + 1); } -void QQuickVisualDataModel::_q_rowsMoved( +void QQmlDelegateModel::_q_rowsMoved( const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); const int count = sourceEnd - sourceStart + 1; if (destinationParent == d->m_adaptorModel.rootIndex && sourceParent == d->m_adaptorModel.rootIndex) { _q_itemsMoved(sourceStart, sourceStart > destinationRow ? destinationRow : destinationRow - count, count); @@ -1483,37 +1470,37 @@ void QQuickVisualDataModel::_q_rowsMoved( } } -void QQuickVisualDataModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end, const QVector &roles) +void QQmlDelegateModel::_q_dataChanged(const QModelIndex &begin, const QModelIndex &end, const QVector &roles) { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); if (begin.parent() == d->m_adaptorModel.rootIndex) _q_itemsChanged(begin.row(), end.row() - begin.row() + 1, roles); } -void QQuickVisualDataModel::_q_layoutChanged() +void QQmlDelegateModel::_q_layoutChanged() { - Q_D(QQuickVisualDataModel); + Q_D(QQmlDelegateModel); _q_itemsChanged(0, d->m_count, QVector()); } -QQuickVisualDataModelAttached *QQuickVisualDataModel::qmlAttachedProperties(QObject *obj) +QQmlDelegateModelAttached *QQmlDelegateModel::qmlAttachedProperties(QObject *obj) { - if (QQuickVisualDataModelItem *cacheItem = QQuickVisualDataModelItem::dataForObject(obj)) { + if (QQmlDelegateModelItem *cacheItem = QQmlDelegateModelItem::dataForObject(obj)) { if (cacheItem->object == obj) { // Don't create attached item for child objects. - cacheItem->attached = new QQuickVisualDataModelAttached(cacheItem, obj); + cacheItem->attached = new QQmlDelegateModelAttached(cacheItem, obj); return cacheItem->attached; } } - return new QQuickVisualDataModelAttached(obj); + return new QQmlDelegateModelAttached(obj); } -bool QQuickVisualDataModelPrivate::insert( +bool QQmlDelegateModelPrivate::insert( Compositor::insert_iterator &before, const v8::Local &object, int groups) { if (!m_context->isValid()) return false; - QQuickVisualDataModelItem *cacheItem = m_adaptorModel.createItem(m_cacheMetaType, m_context->engine(), -1); + QQmlDelegateModelItem *cacheItem = m_adaptorModel.createItem(m_cacheMetaType, m_context->engine(), -1); if (!cacheItem) return false; @@ -1538,8 +1525,8 @@ bool QQuickVisualDataModelPrivate::insert( //============================================================================ -QQuickVisualDataModelItemMetaType::QQuickVisualDataModelItemMetaType( - QV8Engine *engine, QQuickVisualDataModel *model, const QStringList &groupNames) +QQmlDelegateModelItemMetaType::QQmlDelegateModelItemMetaType( + QV8Engine *engine, QQmlDelegateModel *model, const QStringList &groupNames) : model(model) , groupCount(groupNames.count() + 1) , v8Engine(engine) @@ -1548,19 +1535,19 @@ QQuickVisualDataModelItemMetaType::QQuickVisualDataModelItemMetaType( { } -QQuickVisualDataModelItemMetaType::~QQuickVisualDataModelItemMetaType() +QQmlDelegateModelItemMetaType::~QQmlDelegateModelItemMetaType() { if (metaObject) metaObject->release(); qPersistentDispose(constructor); } -void QQuickVisualDataModelItemMetaType::initializeMetaObject() +void QQmlDelegateModelItemMetaType::initializeMetaObject() { QMetaObjectBuilder builder; builder.setFlags(QMetaObjectBuilder::DynamicMetaObject); - builder.setClassName(QQuickVisualDataModelAttached::staticMetaObject.className()); - builder.setSuperClass(&QQuickVisualDataModelAttached::staticMetaObject); + builder.setClassName(QQmlDelegateModelAttached::staticMetaObject.className()); + builder.setSuperClass(&QQmlDelegateModelAttached::staticMetaObject); int notifierId = 0; for (int i = 0; i < groupNames.count(); ++i, ++notifierId) { @@ -1579,15 +1566,15 @@ void QQuickVisualDataModelItemMetaType::initializeMetaObject() propertyBuilder.setWritable(true); } - metaObject = new QQuickVisualDataModelAttachedMetaObject(this, builder.toMetaObject()); + metaObject = new QQmlDelegateModelAttachedMetaObject(this, builder.toMetaObject()); } -void QQuickVisualDataModelItemMetaType::initializeConstructor() +void QQmlDelegateModelItemMetaType::initializeConstructor() { v8::HandleScope handleScope; v8::Context::Scope contextScope(v8Engine->context()); - QQuickVisualDataModelEngineData *data = engineData(v8Engine); + QQmlDelegateModelEngineData *data = engineData(v8Engine); constructor = qPersistentNew(v8::ObjectTemplate::New()); @@ -1613,7 +1600,7 @@ void QQuickVisualDataModelItemMetaType::initializeConstructor() } } -int QQuickVisualDataModelItemMetaType::parseGroups(const QStringList &groups) const +int QQmlDelegateModelItemMetaType::parseGroups(const QStringList &groups) const { int groupFlags = 0; foreach (const QString &groupName, groups) { @@ -1624,7 +1611,7 @@ int QQuickVisualDataModelItemMetaType::parseGroups(const QStringList &groups) co return groupFlags; } -int QQuickVisualDataModelItemMetaType::parseGroups(const v8::Local &groups) const +int QQmlDelegateModelItemMetaType::parseGroups(const v8::Local &groups) const { int groupFlags = 0; if (groups->IsString()) { @@ -1644,10 +1631,10 @@ int QQuickVisualDataModelItemMetaType::parseGroups(const v8::Local &g return groupFlags; } -v8::Handle QQuickVisualDataModelItemMetaType::get_model( +v8::Handle QQmlDelegateModelItemMetaType::get_model( v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *cacheItem = v8_resource_cast(info.This()); + QQmlDelegateModelItem *cacheItem = v8_resource_cast(info.This()); V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); if (!cacheItem->metaType->model) return v8::Undefined(); @@ -1655,10 +1642,10 @@ v8::Handle QQuickVisualDataModelItemMetaType::get_model( return cacheItem->get(); } -v8::Handle QQuickVisualDataModelItemMetaType::get_groups( +v8::Handle QQmlDelegateModelItemMetaType::get_groups( v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *cacheItem = v8_resource_cast(info.This()); + QQmlDelegateModelItem *cacheItem = v8_resource_cast(info.This()); V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); QStringList groups; @@ -1670,15 +1657,15 @@ v8::Handle QQuickVisualDataModelItemMetaType::get_groups( return cacheItem->engine->fromVariant(groups); } -void QQuickVisualDataModelItemMetaType::set_groups( +void QQmlDelegateModelItemMetaType::set_groups( v8::Local, v8::Local value, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *cacheItem = v8_resource_cast(info.This()); + QQmlDelegateModelItem *cacheItem = v8_resource_cast(info.This()); V8ASSERT_TYPE_SETTER(cacheItem, "Not a valid VisualData object"); if (!cacheItem->metaType->model) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(cacheItem->metaType->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(cacheItem->metaType->model); const int groupFlags = model->m_cacheMetaType->parseGroups(value); const int cacheIndex = model->m_cache.indexOf(cacheItem); @@ -1686,24 +1673,24 @@ void QQuickVisualDataModelItemMetaType::set_groups( model->setGroups(it, 1, Compositor::Cache, groupFlags); } -v8::Handle QQuickVisualDataModelItemMetaType::get_member( +v8::Handle QQmlDelegateModelItemMetaType::get_member( v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *cacheItem = v8_resource_cast(info.This()); + QQmlDelegateModelItem *cacheItem = v8_resource_cast(info.This()); V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); return v8::Boolean::New(cacheItem->groups & (1 << info.Data()->Int32Value())); } -void QQuickVisualDataModelItemMetaType::set_member( +void QQmlDelegateModelItemMetaType::set_member( v8::Local, v8::Local value, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *cacheItem = v8_resource_cast(info.This()); + QQmlDelegateModelItem *cacheItem = v8_resource_cast(info.This()); V8ASSERT_TYPE_SETTER(cacheItem, "Not a valid VisualData object"); if (!cacheItem->metaType->model) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(cacheItem->metaType->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(cacheItem->metaType->model); Compositor::Group group = Compositor::Group(info.Data()->Int32Value()); const bool member = value->BooleanValue(); @@ -1719,10 +1706,10 @@ void QQuickVisualDataModelItemMetaType::set_member( model->removeGroups(it, 1, Compositor::Cache, groupFlag); } -v8::Handle QQuickVisualDataModelItemMetaType::get_index( +v8::Handle QQmlDelegateModelItemMetaType::get_index( v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *cacheItem = v8_resource_cast(info.This()); + QQmlDelegateModelItem *cacheItem = v8_resource_cast(info.This()); V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); return v8::Integer::New(cacheItem->groupIndex(Compositor::Group(info.Data()->Int32Value()))); @@ -1731,8 +1718,8 @@ v8::Handle QQuickVisualDataModelItemMetaType::get_index( //--------------------------------------------------------------------------- -QQuickVisualDataModelItem::QQuickVisualDataModelItem( - QQuickVisualDataModelItemMetaType *metaType, int modelIndex) +QQmlDelegateModelItem::QQmlDelegateModelItem( + QQmlDelegateModelItemMetaType *metaType, int modelIndex) : QV8ObjectResource(metaType->v8Engine) , metaType(metaType) , contextData(0) @@ -1747,27 +1734,27 @@ QQuickVisualDataModelItem::QQuickVisualDataModelItem( metaType->addref(); } -QQuickVisualDataModelItem::~QQuickVisualDataModelItem() +QQmlDelegateModelItem::~QQmlDelegateModelItem() { Q_ASSERT(scriptRef == 0); Q_ASSERT(objectRef == 0); Q_ASSERT(!object); if (incubationTask && metaType->model) - QQuickVisualDataModelPrivate::get(metaType->model)->releaseIncubator(incubationTask); + QQmlDelegateModelPrivate::get(metaType->model)->releaseIncubator(incubationTask); metaType->release(); } -void QQuickVisualDataModelItem::Dispose() +void QQmlDelegateModelItem::Dispose() { --scriptRef; if (isReferenced()) return; if (metaType->model) { - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(metaType->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(metaType->model); model->removeCacheItem(this); } delete this; @@ -1778,7 +1765,7 @@ void QQuickVisualDataModelItem::Dispose() arguments instead of QQmlContext which means we don't have to construct the rather weighty wrapper class for every delegate item. */ -void QQuickVisualDataModelItem::incubateObject( +void QQmlDelegateModelItem::incubateObject( QQmlComponent *component, QQmlEngine *engine, QQmlContextData *context, @@ -1799,7 +1786,7 @@ void QQuickVisualDataModelItem::incubateObject( enginePriv->incubate(*incubationTask, forContext); } -void QQuickVisualDataModelItem::destroyObject() +void QQmlDelegateModelItem::destroyObject() { Q_ASSERT(object); Q_ASSERT(contextData); @@ -1821,14 +1808,14 @@ void QQuickVisualDataModelItem::destroyObject() object = 0; } -QQuickVisualDataModelItem *QQuickVisualDataModelItem::dataForObject(QObject *object) +QQmlDelegateModelItem *QQmlDelegateModelItem::dataForObject(QObject *object) { QObjectPrivate *p = QObjectPrivate::get(object); QQmlContextData *context = p->declarativeData ? static_cast(p->declarativeData)->context : 0; for (context = context ? context->parent : 0; context; context = context->parent) { - if (QQuickVisualDataModelItem *cacheItem = qobject_cast( + if (QQmlDelegateModelItem *cacheItem = qobject_cast( context->contextObject)) { return cacheItem; } @@ -1836,10 +1823,10 @@ QQuickVisualDataModelItem *QQuickVisualDataModelItem::dataForObject(QObject *obj return 0; } -int QQuickVisualDataModelItem::groupIndex(Compositor::Group group) +int QQmlDelegateModelItem::groupIndex(Compositor::Group group) { - if (QQuickVisualDataModelPrivate * const model = metaType->model - ? QQuickVisualDataModelPrivate::get(metaType->model) + if (QQmlDelegateModelPrivate * const model = metaType->model + ? QQmlDelegateModelPrivate::get(metaType->model) : 0) { return model->m_compositor.find(Compositor::Cache, model->m_cache.indexOf(this)).index[group]; } @@ -1848,12 +1835,12 @@ int QQuickVisualDataModelItem::groupIndex(Compositor::Group group) //--------------------------------------------------------------------------- -QQuickVisualDataModelAttachedMetaObject::QQuickVisualDataModelAttachedMetaObject( - QQuickVisualDataModelItemMetaType *metaType, QMetaObject *metaObject) +QQmlDelegateModelAttachedMetaObject::QQmlDelegateModelAttachedMetaObject( + QQmlDelegateModelItemMetaType *metaType, QMetaObject *metaObject) : metaType(metaType) , metaObject(metaObject) - , memberPropertyOffset(QQuickVisualDataModelAttached::staticMetaObject.propertyCount()) - , indexPropertyOffset(QQuickVisualDataModelAttached::staticMetaObject.propertyCount() + metaType->groupNames.count()) + , memberPropertyOffset(QQmlDelegateModelAttached::staticMetaObject.propertyCount()) + , indexPropertyOffset(QQmlDelegateModelAttached::staticMetaObject.propertyCount() + metaType->groupNames.count()) { // Don't reference count the meta-type here as that would create a circular reference. // Instead we rely the fact that the meta-type's reference count can't reach 0 without first @@ -1861,19 +1848,19 @@ QQuickVisualDataModelAttachedMetaObject::QQuickVisualDataModelAttachedMetaObject *static_cast(this) = *metaObject; } -QQuickVisualDataModelAttachedMetaObject::~QQuickVisualDataModelAttachedMetaObject() +QQmlDelegateModelAttachedMetaObject::~QQmlDelegateModelAttachedMetaObject() { ::free(metaObject); } -void QQuickVisualDataModelAttachedMetaObject::objectDestroyed(QObject *) +void QQmlDelegateModelAttachedMetaObject::objectDestroyed(QObject *) { release(); } -int QQuickVisualDataModelAttachedMetaObject::metaCall(QObject *object, QMetaObject::Call call, int _id, void **arguments) +int QQmlDelegateModelAttachedMetaObject::metaCall(QObject *object, QMetaObject::Call call, int _id, void **arguments) { - QQuickVisualDataModelAttached *attached = static_cast(object); + QQmlDelegateModelAttached *attached = static_cast(object); if (call == QMetaObject::ReadProperty) { if (_id >= indexPropertyOffset) { Compositor::Group group = Compositor::Group(_id - indexPropertyOffset + 1); @@ -1888,7 +1875,7 @@ int QQuickVisualDataModelAttachedMetaObject::metaCall(QObject *object, QMetaObje if (_id >= memberPropertyOffset) { if (!metaType->model) return -1; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(metaType->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(metaType->model); Compositor::Group group = Compositor::Group(_id - memberPropertyOffset + 1); const int groupFlag = 1 << group; const bool member = attached->m_cacheItem->groups & groupFlag; @@ -1912,24 +1899,24 @@ int QQuickVisualDataModelAttachedMetaObject::metaCall(QObject *object, QMetaObje return attached->qt_metacall(call, _id, arguments); } -QQuickVisualDataModelAttached::QQuickVisualDataModelAttached(QObject *parent) +QQmlDelegateModelAttached::QQmlDelegateModelAttached(QObject *parent) : m_cacheItem(0) , m_previousGroups(0) { QQml_setParent_noEvent(this, parent); } -QQuickVisualDataModelAttached::QQuickVisualDataModelAttached( - QQuickVisualDataModelItem *cacheItem, QObject *parent) +QQmlDelegateModelAttached::QQmlDelegateModelAttached( + QQmlDelegateModelItem *cacheItem, QObject *parent) : m_cacheItem(cacheItem) , m_previousGroups(cacheItem->groups) { QQml_setParent_noEvent(this, parent); - if (QVDMIncubationTask *incubationTask = m_cacheItem->incubationTask) { + if (QQDMIncubationTask *incubationTask = m_cacheItem->incubationTask) { for (int i = 1; i < m_cacheItem->metaType->groupCount; ++i) m_currentIndex[i] = m_previousIndex[i] = incubationTask->index[i]; } else { - QQuickVisualDataModelPrivate * const model = QQuickVisualDataModelPrivate::get(m_cacheItem->metaType->model); + QQmlDelegateModelPrivate * const model = QQmlDelegateModelPrivate::get(m_cacheItem->metaType->model); Compositor::iterator it = model->m_compositor.find( Compositor::Cache, model->m_cache.indexOf(m_cacheItem)); for (int i = 1; i < m_cacheItem->metaType->groupCount; ++i) @@ -1951,7 +1938,7 @@ QQuickVisualDataModelAttached::QQuickVisualDataModelAttached( It is attached to each instance of the delegate. */ -QQuickVisualDataModel *QQuickVisualDataModelAttached::model() const +QQmlDelegateModel *QQmlDelegateModelAttached::model() const { return m_cacheItem ? m_cacheItem->metaType->model : 0; } @@ -1964,7 +1951,7 @@ QQuickVisualDataModel *QQuickVisualDataModelAttached::model() const It is attached to each instance of the delegate. */ -QStringList QQuickVisualDataModelAttached::groups() const +QStringList QQmlDelegateModelAttached::groups() const { QStringList groups; @@ -1977,12 +1964,12 @@ QStringList QQuickVisualDataModelAttached::groups() const return groups; } -void QQuickVisualDataModelAttached::setGroups(const QStringList &groups) +void QQmlDelegateModelAttached::setGroups(const QStringList &groups) { if (!m_cacheItem) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(m_cacheItem->metaType->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(m_cacheItem->metaType->model); const int groupFlags = model->m_cacheMetaType->parseGroups(groups); const int cacheIndex = model->m_cache.indexOf(m_cacheItem); @@ -2002,7 +1989,7 @@ void QQuickVisualDataModelAttached::setGroups(const QStringList &groups) It is attached to each instance of the delegate. */ -bool QQuickVisualDataModelAttached::isUnresolved() const +bool QQmlDelegateModelAttached::isUnresolved() const { if (!m_cacheItem) return false; @@ -2048,7 +2035,7 @@ bool QQuickVisualDataModelAttached::isUnresolved() const It is attached to each instance of the delegate. */ -void QQuickVisualDataModelAttached::emitChanges() +void QQmlDelegateModelAttached::emitChanges() { const int groupChanges = m_previousGroups ^ m_cacheItem->groups; m_previousGroups = m_cacheItem->groups; @@ -2078,22 +2065,22 @@ void QQuickVisualDataModelAttached::emitChanges() //============================================================================ -void QQuickVisualDataGroupPrivate::setModel(QQuickVisualDataModel *m, Compositor::Group g) +void QQmlDataGroupPrivate::setModel(QQmlDelegateModel *m, Compositor::Group g) { Q_ASSERT(!model); model = m; group = g; } -bool QQuickVisualDataGroupPrivate::isChangedConnected() +bool QQmlDataGroupPrivate::isChangedConnected() { - Q_Q(QQuickVisualDataGroup); - IS_SIGNAL_CONNECTED(q, QQuickVisualDataGroup, changed, (const QQmlV8Handle &,const QQmlV8Handle &)); + Q_Q(QQmlDataGroup); + IS_SIGNAL_CONNECTED(q, QQmlDataGroup, changed, (const QQmlV8Handle &,const QQmlV8Handle &)); } -void QQuickVisualDataGroupPrivate::emitChanges(QV8Engine *engine) +void QQmlDataGroupPrivate::emitChanges(QV8Engine *engine) { - Q_Q(QQuickVisualDataGroup); + Q_Q(QQmlDataGroup); if (isChangedConnected() && !changeSet.isEmpty()) { v8::HandleScope handleScope; v8::Context::Scope contextScope(engine->context()); @@ -2105,34 +2092,34 @@ void QQuickVisualDataGroupPrivate::emitChanges(QV8Engine *engine) emit q->countChanged(); } -void QQuickVisualDataGroupPrivate::emitModelUpdated(bool reset) +void QQmlDataGroupPrivate::emitModelUpdated(bool reset) { - for (QQuickVisualDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) + for (QQmlDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) it->emitModelUpdated(changeSet, reset); changeSet.clear(); } -void QQuickVisualDataGroupPrivate::createdPackage(int index, QQuickPackage *package) +void QQmlDataGroupPrivate::createdPackage(int index, QQuickPackage *package) { - for (QQuickVisualDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) + for (QQmlDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) it->createdPackage(index, package); } -void QQuickVisualDataGroupPrivate::initPackage(int index, QQuickPackage *package) +void QQmlDataGroupPrivate::initPackage(int index, QQuickPackage *package) { - for (QQuickVisualDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) + for (QQmlDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) it->initPackage(index, package); } -void QQuickVisualDataGroupPrivate::destroyingPackage(QQuickPackage *package) +void QQmlDataGroupPrivate::destroyingPackage(QQuickPackage *package) { - for (QQuickVisualDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) + for (QQmlDataGroupEmitterList::iterator it = emitters.begin(); it != emitters.end(); ++it) it->destroyingPackage(package); } /*! \qmltype VisualDataGroup - \instantiates QQuickVisualDataGroup + \instantiates QQmlDataGroup \inqmlmodule QtQuick 2 \ingroup qtquick-models \brief Encapsulates a filtered set of visual data items @@ -2165,21 +2152,21 @@ void QQuickVisualDataGroupPrivate::destroyingPackage(QQuickPackage *package) \sa {QML Dynamic View Ordering Tutorial} */ -QQuickVisualDataGroup::QQuickVisualDataGroup(QObject *parent) - : QObject(*new QQuickVisualDataGroupPrivate, parent) +QQmlDataGroup::QQmlDataGroup(QObject *parent) + : QObject(*new QQmlDataGroupPrivate, parent) { } -QQuickVisualDataGroup::QQuickVisualDataGroup( - const QString &name, QQuickVisualDataModel *model, int index, QObject *parent) - : QObject(*new QQuickVisualDataGroupPrivate, parent) +QQmlDataGroup::QQmlDataGroup( + const QString &name, QQmlDelegateModel *model, int index, QObject *parent) + : QObject(*new QQmlDataGroupPrivate, parent) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); d->name = name; d->setModel(model, Compositor::Group(index)); } -QQuickVisualDataGroup::~QQuickVisualDataGroup() +QQmlDataGroup::~QQmlDataGroup() { } @@ -2191,15 +2178,15 @@ QQuickVisualDataGroup::~QQuickVisualDataGroup() Each group in a model must have a unique name starting with a lower case letter. */ -QString QQuickVisualDataGroup::name() const +QString QQmlDataGroup::name() const { - Q_D(const QQuickVisualDataGroup); + Q_D(const QQmlDataGroup); return d->name; } -void QQuickVisualDataGroup::setName(const QString &name) +void QQmlDataGroup::setName(const QString &name) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); if (d->model) return; if (d->name != name) { @@ -2214,12 +2201,12 @@ void QQuickVisualDataGroup::setName(const QString &name) This property holds the number of items in the group. */ -int QQuickVisualDataGroup::count() const +int QQmlDataGroup::count() const { - Q_D(const QQuickVisualDataGroup); + Q_D(const QQmlDataGroup); if (!d->model) return 0; - return QQuickVisualDataModelPrivate::get(d->model)->m_compositor.count(d->group); + return QQmlDelegateModelPrivate::get(d->model)->m_compositor.count(d->group); } /*! @@ -2228,23 +2215,23 @@ int QQuickVisualDataGroup::count() const This property holds whether new items are assigned to this group by default. */ -bool QQuickVisualDataGroup::defaultInclude() const +bool QQmlDataGroup::defaultInclude() const { - Q_D(const QQuickVisualDataGroup); + Q_D(const QQmlDataGroup); return d->defaultInclude; } -void QQuickVisualDataGroup::setDefaultInclude(bool include) +void QQmlDataGroup::setDefaultInclude(bool include) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); if (d->defaultInclude != include) { d->defaultInclude = include; if (d->model) { if (include) - QQuickVisualDataModelPrivate::get(d->model)->m_compositor.setDefaultGroup(d->group); + QQmlDelegateModelPrivate::get(d->model)->m_compositor.setDefaultGroup(d->group); else - QQuickVisualDataModelPrivate::get(d->model)->m_compositor.clearDefaultGroup(d->group); + QQmlDelegateModelPrivate::get(d->model)->m_compositor.clearDefaultGroup(d->group); } emit defaultIncludeChanged(); } @@ -2274,13 +2261,13 @@ void QQuickVisualDataGroup::setDefaultInclude(bool include) \endlist */ -QQmlV8Handle QQuickVisualDataGroup::get(int index) +QQmlV8Handle QQmlDataGroup::get(int index) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); if (!d->model) return QQmlV8Handle::fromHandle(v8::Undefined());; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (!model->m_context->isValid()) { return QQmlV8Handle::fromHandle(v8::Undefined()); } else if (index < 0 || index >= model->m_compositor.count(d->group)) { @@ -2289,7 +2276,7 @@ QQmlV8Handle QQuickVisualDataGroup::get(int index) } Compositor::iterator it = model->m_compositor.find(d->group, index); - QQuickVisualDataModelItem *cacheItem = it->inCache() + QQmlDelegateModelItem *cacheItem = it->inCache() ? model->m_cache.at(it.cacheIndex) : 0; @@ -2313,7 +2300,7 @@ QQmlV8Handle QQuickVisualDataGroup::get(int index) return QQmlV8Handle::fromHandle(handle); } -bool QQuickVisualDataGroupPrivate::parseIndex( +bool QQmlDataGroupPrivate::parseIndex( const v8::Local &value, int *index, Compositor::Group *group) const { if (value->IsInt32()) { @@ -2321,9 +2308,9 @@ bool QQuickVisualDataGroupPrivate::parseIndex( return true; } else if (value->IsObject()) { v8::Local object = value->ToObject(); - QQuickVisualDataModelItem * const cacheItem = v8_resource_cast(object); - if (QQuickVisualDataModelPrivate *model = cacheItem && cacheItem->metaType->model - ? QQuickVisualDataModelPrivate::get(cacheItem->metaType->model) + QQmlDelegateModelItem * const cacheItem = v8_resource_cast(object); + if (QQmlDelegateModelPrivate *model = cacheItem && cacheItem->metaType->model + ? QQmlDelegateModelPrivate::get(cacheItem->metaType->model) : 0) { *index = model->m_cache.indexOf(cacheItem); *group = Compositor::Cache; @@ -2350,10 +2337,10 @@ bool QQuickVisualDataGroupPrivate::parseIndex( items that are later replaced by actual data. */ -void QQuickVisualDataGroup::insert(QQmlV8Function *args) +void QQmlDataGroup::insert(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + Q_D(QQmlDataGroup); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); int index = model->m_compositor.count(d->group); Compositor::Group group = d->group; @@ -2406,16 +2393,16 @@ void QQuickVisualDataGroup::insert(QQmlV8Function *args) group remain instantiated when not referenced by any view. */ -void QQuickVisualDataGroup::create(QQmlV8Function *args) +void QQmlDataGroup::create(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); if (!d->model) return; if (args->Length() == 0) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); int index = model->m_compositor.count(d->group); Compositor::Group group = d->group; @@ -2478,13 +2465,13 @@ void QQuickVisualDataGroup::create(QQmlV8Function *args) that the previously unresolved item has simply moved. */ -void QQuickVisualDataGroup::resolve(QQmlV8Function *args) +void QQmlDataGroup::resolve(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); if (!d->model) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (args->Length() < 2) return; @@ -2533,7 +2520,7 @@ void QQuickVisualDataGroup::resolve(QQmlV8Function *args) const int resolvedIndex = toIt.modelIndex(); void * const resolvedList = toIt->list; - QQuickVisualDataModelItem *cacheItem = model->m_cache.at(fromIt.cacheIndex); + QQmlDelegateModelItem *cacheItem = model->m_cache.at(fromIt.cacheIndex); cacheItem->groups &= ~Compositor::UnresolvedFlag; if (toIt.cacheIndex > fromIt.cacheIndex) @@ -2578,9 +2565,9 @@ void QQuickVisualDataGroup::resolve(QQmlV8Function *args) Removes \a count items starting at \a index from the group. */ -void QQuickVisualDataGroup::remove(QQmlV8Function *args) +void QQmlDataGroup::remove(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); if (!d->model) return; Compositor::Group group = d->group; @@ -2603,7 +2590,7 @@ void QQuickVisualDataGroup::remove(QQmlV8Function *args) count = v->Int32Value(); } - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (index < 0 || index >= model->m_compositor.count(group)) { qmlInfo(this) << tr("remove: index out of range"); } else if (count != 0) { @@ -2616,10 +2603,10 @@ void QQuickVisualDataGroup::remove(QQmlV8Function *args) } } -bool QQuickVisualDataGroupPrivate::parseGroupArgs( +bool QQmlDataGroupPrivate::parseGroupArgs( QQmlV8Function *args, Compositor::Group *group, int *index, int *count, int *groups) const { - if (!model || !QQuickVisualDataModelPrivate::get(model)->m_cacheMetaType) + if (!model || !QQmlDelegateModelPrivate::get(model)->m_cacheMetaType) return false; if (args->Length() < 2) @@ -2639,7 +2626,7 @@ bool QQuickVisualDataGroupPrivate::parseGroupArgs( v = (*args)[i]; } - *groups = QQuickVisualDataModelPrivate::get(model)->m_cacheMetaType->parseGroups(v); + *groups = QQmlDelegateModelPrivate::get(model)->m_cacheMetaType->parseGroups(v); return true; } @@ -2650,9 +2637,9 @@ bool QQuickVisualDataGroupPrivate::parseGroupArgs( Adds \a count items starting at \a index to \a groups. */ -void QQuickVisualDataGroup::addGroups(QQmlV8Function *args) +void QQmlDataGroup::addGroups(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); Compositor::Group group = d->group; int index = -1; int count = 1; @@ -2661,7 +2648,7 @@ void QQuickVisualDataGroup::addGroups(QQmlV8Function *args) if (!d->parseGroupArgs(args, &group, &index, &count, &groups)) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (index < 0 || index >= model->m_compositor.count(group)) { qmlInfo(this) << tr("addGroups: index out of range"); } else if (count != 0) { @@ -2680,9 +2667,9 @@ void QQuickVisualDataGroup::addGroups(QQmlV8Function *args) Removes \a count items starting at \a index from \a groups. */ -void QQuickVisualDataGroup::removeGroups(QQmlV8Function *args) +void QQmlDataGroup::removeGroups(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); Compositor::Group group = d->group; int index = -1; int count = 1; @@ -2691,7 +2678,7 @@ void QQuickVisualDataGroup::removeGroups(QQmlV8Function *args) if (!d->parseGroupArgs(args, &group, &index, &count, &groups)) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (index < 0 || index >= model->m_compositor.count(group)) { qmlInfo(this) << tr("removeGroups: index out of range"); } else if (count != 0) { @@ -2710,9 +2697,9 @@ void QQuickVisualDataGroup::removeGroups(QQmlV8Function *args) Sets the \a groups \a count items starting at \a index belong to. */ -void QQuickVisualDataGroup::setGroups(QQmlV8Function *args) +void QQmlDataGroup::setGroups(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); Compositor::Group group = d->group; int index = -1; int count = 1; @@ -2721,7 +2708,7 @@ void QQuickVisualDataGroup::setGroups(QQmlV8Function *args) if (!d->parseGroupArgs(args, &group, &index, &count, &groups)) return; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (index < 0 || index >= model->m_compositor.count(group)) { qmlInfo(this) << tr("setGroups: index out of range"); } else if (count != 0) { @@ -2746,9 +2733,9 @@ void QQuickVisualDataGroup::setGroups(QQmlV8Function *args) Moves \a count at \a from in a group \a to a new position. */ -void QQuickVisualDataGroup::move(QQmlV8Function *args) +void QQmlDataGroup::move(QQmlV8Function *args) { - Q_D(QQuickVisualDataGroup); + Q_D(QQmlDataGroup); if (args->Length() < 2) return; @@ -2775,7 +2762,7 @@ void QQuickVisualDataGroup::move(QQmlV8Function *args) count = v->Int32Value(); } - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(d->model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(d->model); if (count < 0) { qmlInfo(this) << tr("move: invalid count"); @@ -2808,36 +2795,36 @@ void QQuickVisualDataGroup::move(QQmlV8Function *args) //============================================================================ -QQuickVisualPartsModel::QQuickVisualPartsModel(QQuickVisualDataModel *model, const QString &part, QObject *parent) - : QQuickVisualModel(*new QObjectPrivate, parent) +QQmlPartsModel::QQmlPartsModel(QQmlDelegateModel *model, const QString &part, QObject *parent) + : QQmlInstanceModel(*new QObjectPrivate, parent) , m_model(model) , m_part(part) , m_compositorGroup(Compositor::Cache) , m_inheritGroup(true) { - QQuickVisualDataModelPrivate *d = QQuickVisualDataModelPrivate::get(m_model); + QQmlDelegateModelPrivate *d = QQmlDelegateModelPrivate::get(m_model); if (d->m_cacheMetaType) { - QQuickVisualDataGroupPrivate::get(d->m_groups[1])->emitters.insert(this); + QQmlDataGroupPrivate::get(d->m_groups[1])->emitters.insert(this); m_compositorGroup = Compositor::Default; } else { d->m_pendingParts.insert(this); } } -QQuickVisualPartsModel::~QQuickVisualPartsModel() +QQmlPartsModel::~QQmlPartsModel() { } -QString QQuickVisualPartsModel::filterGroup() const +QString QQmlPartsModel::filterGroup() const { if (m_inheritGroup) return m_model->filterGroup(); return m_filterGroup; } -void QQuickVisualPartsModel::setFilterGroup(const QString &group) +void QQmlPartsModel::setFilterGroup(const QString &group) { - if (QQuickVisualDataModelPrivate::get(m_model)->m_transaction) { + if (QQmlDelegateModelPrivate::get(m_model)->m_transaction) { qmlInfo(this) << tr("The group of a VisualDataModel cannot be changed within onChanged"); return; } @@ -2851,7 +2838,7 @@ void QQuickVisualPartsModel::setFilterGroup(const QString &group) } } -void QQuickVisualPartsModel::resetFilterGroup() +void QQmlPartsModel::resetFilterGroup() { if (!m_inheritGroup) { m_inheritGroup = true; @@ -2860,9 +2847,9 @@ void QQuickVisualPartsModel::resetFilterGroup() } } -void QQuickVisualPartsModel::updateFilterGroup() +void QQmlPartsModel::updateFilterGroup() { - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(m_model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(m_model); if (!model->m_cacheMetaType) return; @@ -2872,9 +2859,9 @@ void QQuickVisualPartsModel::updateFilterGroup() m_filterGroup = model->m_filterGroup; } - QQuickListCompositor::Group previousGroup = m_compositorGroup; + QQmlListCompositor::Group previousGroup = m_compositorGroup; m_compositorGroup = Compositor::Default; - QQuickVisualDataGroupPrivate::get(model->m_groups[Compositor::Default])->emitters.insert(this); + QQmlDataGroupPrivate::get(model->m_groups[Compositor::Default])->emitters.insert(this); for (int i = 1; i < model->m_groupCount; ++i) { if (m_filterGroup == model->m_cacheMetaType->groupNames.at(i - 1)) { m_compositorGroup = Compositor::Group(i); @@ -2882,13 +2869,13 @@ void QQuickVisualPartsModel::updateFilterGroup() } } - QQuickVisualDataGroupPrivate::get(model->m_groups[m_compositorGroup])->emitters.insert(this); + QQmlDataGroupPrivate::get(model->m_groups[m_compositorGroup])->emitters.insert(this); if (m_compositorGroup != previousGroup) { - QVector removes; - QVector inserts; + QVector removes; + QVector inserts; model->m_compositor.transition(previousGroup, m_compositorGroup, &removes, &inserts); - QQuickChangeSet changeSet; + QQmlChangeSet changeSet; changeSet.move(removes, inserts); if (!changeSet.isEmpty()) emit modelUpdated(changeSet, false); @@ -2898,14 +2885,14 @@ void QQuickVisualPartsModel::updateFilterGroup() } } -void QQuickVisualPartsModel::updateFilterGroup( - Compositor::Group group, const QQuickChangeSet &changeSet) +void QQmlPartsModel::updateFilterGroup( + Compositor::Group group, const QQmlChangeSet &changeSet) { if (!m_inheritGroup) return; m_compositorGroup = group; - QQuickVisualDataGroupPrivate::get(QQuickVisualDataModelPrivate::get(m_model)->m_groups[m_compositorGroup])->emitters.insert(this); + QQmlDataGroupPrivate::get(QQmlDelegateModelPrivate::get(m_model)->m_groups[m_compositorGroup])->emitters.insert(this); if (!changeSet.isEmpty()) emit modelUpdated(changeSet, false); @@ -2916,22 +2903,22 @@ void QQuickVisualPartsModel::updateFilterGroup( emit filterGroupChanged(); } -int QQuickVisualPartsModel::count() const +int QQmlPartsModel::count() const { - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(m_model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(m_model); return model->m_delegate ? model->m_compositor.count(m_compositorGroup) : 0; } -bool QQuickVisualPartsModel::isValid() const +bool QQmlPartsModel::isValid() const { return m_model->isValid(); } -QQuickItem *QQuickVisualPartsModel::item(int index, bool asynchronous) +QObject *QQmlPartsModel::object(int index, bool asynchronous) { - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(m_model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(m_model); if (!model->m_delegate || index < 0 || index >= model->m_compositor.count(m_compositorGroup)) { qWarning() << "VisualDataModel::item: index out range" << index << model->m_compositor.count(m_compositorGroup); @@ -2944,10 +2931,8 @@ QQuickItem *QQuickVisualPartsModel::item(int index, bool asynchronous) QObject *part = package->part(m_part); if (!part) return 0; - if (QQuickItem *item = qmlobject_cast(part)) { - m_packaged.insertMulti(item, package); - return item; - } + m_packaged.insertMulti(part, package); + return part; } model->release(object); @@ -2960,68 +2945,64 @@ QQuickItem *QQuickVisualPartsModel::item(int index, bool asynchronous) return 0; } -QQuickVisualModel::ReleaseFlags QQuickVisualPartsModel::release(QQuickItem *item) +QQmlInstanceModel::ReleaseFlags QQmlPartsModel::release(QObject *item) { - QQuickVisualModel::ReleaseFlags flags = 0; + QQmlInstanceModel::ReleaseFlags flags = 0; QHash::iterator it = m_packaged.find(item); if (it != m_packaged.end()) { QQuickPackage *package = *it; - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(m_model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(m_model); flags = model->release(package); m_packaged.erase(it); if (!m_packaged.contains(item)) flags &= ~Referenced; if (flags & Destroyed) - QQuickVisualDataModelPrivate::get(m_model)->emitDestroyingPackage(package); + QQmlDelegateModelPrivate::get(m_model)->emitDestroyingPackage(package); } return flags; } -QString QQuickVisualPartsModel::stringValue(int index, const QString &role) +QString QQmlPartsModel::stringValue(int index, const QString &role) { - return QQuickVisualDataModelPrivate::get(m_model)->stringValue(m_compositorGroup, index, role); + return QQmlDelegateModelPrivate::get(m_model)->stringValue(m_compositorGroup, index, role); } -void QQuickVisualPartsModel::setWatchedRoles(QList roles) +void QQmlPartsModel::setWatchedRoles(QList roles) { - QQuickVisualDataModelPrivate *model = QQuickVisualDataModelPrivate::get(m_model); + QQmlDelegateModelPrivate *model = QQmlDelegateModelPrivate::get(m_model); model->m_adaptorModel.replaceWatchedRoles(m_watchedRoles, roles); m_watchedRoles = roles; } -int QQuickVisualPartsModel::indexOf(QQuickItem *item, QObject *) const +int QQmlPartsModel::indexOf(QObject *item, QObject *) const { QHash::const_iterator it = m_packaged.find(item); if (it != m_packaged.end()) { - if (QQuickVisualDataModelItem *cacheItem = QQuickVisualDataModelItem::dataForObject(*it)) + if (QQmlDelegateModelItem *cacheItem = QQmlDelegateModelItem::dataForObject(*it)) return cacheItem->groupIndex(m_compositorGroup); } return -1; } -void QQuickVisualPartsModel::createdPackage(int index, QQuickPackage *package) +void QQmlPartsModel::createdPackage(int index, QQuickPackage *package) { - if (QQuickItem *item = qmlobject_cast(package->part(m_part))) - emit createdItem(index, item); + emit createdItem(index, package->part(m_part)); } -void QQuickVisualPartsModel::initPackage(int index, QQuickPackage *package) +void QQmlPartsModel::initPackage(int index, QQuickPackage *package) { - if (QQuickItem *item = qmlobject_cast(package->part(m_part))) - emit initItem(index, item); + emit initItem(index, package->part(m_part)); } -void QQuickVisualPartsModel::destroyingPackage(QQuickPackage *package) +void QQmlPartsModel::destroyingPackage(QQuickPackage *package) { - if (QQuickItem *item = qmlobject_cast(package->part(m_part))) { - Q_ASSERT(!m_packaged.contains(item)); - emit destroyingItem(item); - item->setParentItem(0); - } + QObject *item = package->part(m_part); + Q_ASSERT(!m_packaged.contains(item)); + emit destroyingItem(item); } -void QQuickVisualPartsModel::emitModelUpdated(const QQuickChangeSet &changeSet, bool reset) +void QQmlPartsModel::emitModelUpdated(const QQmlChangeSet &changeSet, bool reset) { emit modelUpdated(changeSet, reset); if (changeSet.difference() != 0) @@ -3045,27 +3026,27 @@ v8::Handle get_change_moveId(v8::Local, const v8::Accesso return info.This()->GetInternalField(2); } -class QQuickVisualDataGroupChangeArray : public QV8ObjectResource +class QQmlDataGroupChangeArray : public QV8ObjectResource { V8_RESOURCE_TYPE(ChangeSetArrayType) public: - QQuickVisualDataGroupChangeArray(QV8Engine *engine) + QQmlDataGroupChangeArray(QV8Engine *engine) : QV8ObjectResource(engine) { } virtual quint32 count() const = 0; - virtual const QQuickChangeSet::Change &at(int index) const = 0; + virtual const QQmlChangeSet::Change &at(int index) const = 0; static v8::Handle get_change(quint32 index, const v8::AccessorInfo &info) { - QQuickVisualDataGroupChangeArray *array = v8_resource_cast(info.This()); + QQmlDataGroupChangeArray *array = v8_resource_cast(info.This()); V8ASSERT_TYPE(array, "Not a valid change array"); if (index >= array->count()) return v8::Undefined(); - const QQuickChangeSet::Change &change = array->at(index); + const QQmlChangeSet::Change &change = array->at(index); v8::Local object = engineData(array->engine)->constructorChange->NewInstance(); object->SetInternalField(0, v8::Int32::New(change.index)); @@ -3078,7 +3059,7 @@ public: static v8::Handle get_length(v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataGroupChangeArray *array = v8_resource_cast(info.This()); + QQmlDataGroupChangeArray *array = v8_resource_cast(info.This()); V8ASSERT_TYPE(array, "Not a valid change array"); return v8::Integer::New(array->count()); @@ -3094,39 +3075,39 @@ public: } }; -class QQuickVisualDataGroupRemoveArray : public QQuickVisualDataGroupChangeArray +class QQmlDataGroupRemoveArray : public QQmlDataGroupChangeArray { public: - QQuickVisualDataGroupRemoveArray(QV8Engine *engine, const QVector &changes) - : QQuickVisualDataGroupChangeArray(engine) + QQmlDataGroupRemoveArray(QV8Engine *engine, const QVector &changes) + : QQmlDataGroupChangeArray(engine) , changes(changes) { } quint32 count() const { return changes.count(); } - const QQuickChangeSet::Change &at(int index) const { return changes.at(index); } + const QQmlChangeSet::Change &at(int index) const { return changes.at(index); } private: - QVector changes; + QVector changes; }; -class QQuickVisualDataGroupInsertArray : public QQuickVisualDataGroupChangeArray +class QQmlDataGroupInsertArray : public QQmlDataGroupChangeArray { public: - QQuickVisualDataGroupInsertArray(QV8Engine *engine, const QVector &changes) - : QQuickVisualDataGroupChangeArray(engine) + QQmlDataGroupInsertArray(QV8Engine *engine, const QVector &changes) + : QQmlDataGroupChangeArray(engine) , changes(changes) { } quint32 count() const { return changes.count(); } - const QQuickChangeSet::Change &at(int index) const { return changes.at(index); } + const QQmlChangeSet::Change &at(int index) const { return changes.at(index); } private: - QVector changes; + QVector changes; }; -QQuickVisualDataModelEngineData::QQuickVisualDataModelEngineData(QV8Engine *) +QQmlDelegateModelEngineData::QQmlDelegateModelEngineData(QV8Engine *) { strings = qPersistentNew(v8::Array::New(StringCount)); strings->Set(Model, v8::String::New("model")); @@ -3143,29 +3124,29 @@ QQuickVisualDataModelEngineData::QQuickVisualDataModelEngineData(QV8Engine *) change->InstanceTemplate()->SetAccessor(v8::String::New("moveId"), get_change_moveId); change->InstanceTemplate()->SetInternalFieldCount(3); constructorChange = qPersistentNew(change->GetFunction()); - constructorChangeArray = qPersistentNew(QQuickVisualDataGroupChangeArray::constructor()); + constructorChangeArray = qPersistentNew(QQmlDataGroupChangeArray::constructor()); } -QQuickVisualDataModelEngineData::~QQuickVisualDataModelEngineData() +QQmlDelegateModelEngineData::~QQmlDelegateModelEngineData() { qPersistentDispose(strings); qPersistentDispose(constructorChange); qPersistentDispose(constructorChangeArray); } -v8::Local QQuickVisualDataModelEngineData::array( - QV8Engine *engine, const QVector &changes) +v8::Local QQmlDelegateModelEngineData::array( + QV8Engine *engine, const QVector &changes) { v8::Local array = constructorChangeArray->NewInstance(); - array->SetExternalResource(new QQuickVisualDataGroupRemoveArray(engine, changes)); + array->SetExternalResource(new QQmlDataGroupRemoveArray(engine, changes)); return array; } -v8::Local QQuickVisualDataModelEngineData::array( - QV8Engine *engine, const QVector &changes) +v8::Local QQmlDelegateModelEngineData::array( + QV8Engine *engine, const QVector &changes) { v8::Local array = constructorChangeArray->NewInstance(); - array->SetExternalResource(new QQuickVisualDataGroupInsertArray(engine, changes)); + array->SetExternalResource(new QQmlDataGroupInsertArray(engine, changes)); return array; } diff --git a/src/quick/items/qquickvisualdatamodel_p.h b/src/qml/items/qqmldelegatemodel_p.h similarity index 69% rename from src/quick/items/qquickvisualdatamodel_p.h rename to src/qml/items/qqmldelegatemodel_p.h index 03e06c8..20cc228 100644 --- a/src/quick/items/qquickvisualdatamodel_p.h +++ b/src/qml/items/qqmldelegatemodel_p.h @@ -39,12 +39,12 @@ ** ****************************************************************************/ -#ifndef QQUICKVISUALDATAMODEL_P_H -#define QQUICKVISUALDATAMODEL_P_H +#ifndef QQMLDATAMODEL_P_H +#define QQMLDATAMODEL_P_H -#include -#include -#include +#include +#include +#include #include #include @@ -58,34 +58,34 @@ Q_DECLARE_METATYPE(QModelIndex) QT_BEGIN_NAMESPACE -class QQuickChangeSet; +class QQmlChangeSet; class QQmlComponent; class QQuickPackage; class QQmlV8Function; -class QQuickVisualDataGroup; -class QQuickVisualDataModelAttached; -class QQuickVisualDataModelPrivate; +class QQmlDataGroup; +class QQmlDelegateModelAttached; +class QQmlDelegateModelPrivate; -class Q_QUICK_PRIVATE_EXPORT QQuickVisualDataModel : public QQuickVisualModel, public QQmlParserStatus +class Q_QML_PRIVATE_EXPORT QQmlDelegateModel : public QQmlInstanceModel, public QQmlParserStatus { Q_OBJECT - Q_DECLARE_PRIVATE(QQuickVisualDataModel) + Q_DECLARE_PRIVATE(QQmlDelegateModel) Q_PROPERTY(QVariant model READ model WRITE setModel) Q_PROPERTY(QQmlComponent *delegate READ delegate WRITE setDelegate) Q_PROPERTY(QString filterOnGroup READ filterGroup WRITE setFilterGroup NOTIFY filterGroupChanged RESET resetFilterGroup) - Q_PROPERTY(QQuickVisualDataGroup *items READ items CONSTANT) - Q_PROPERTY(QQuickVisualDataGroup *persistedItems READ persistedItems CONSTANT) - Q_PROPERTY(QQmlListProperty groups READ groups CONSTANT) + Q_PROPERTY(QQmlDataGroup *items READ items CONSTANT) //TODO : worth renaming? + Q_PROPERTY(QQmlDataGroup *persistedItems READ persistedItems CONSTANT) + Q_PROPERTY(QQmlListProperty groups READ groups CONSTANT) Q_PROPERTY(QObject *parts READ parts CONSTANT) Q_PROPERTY(QVariant rootIndex READ rootIndex WRITE setRootIndex NOTIFY rootIndexChanged) Q_CLASSINFO("DefaultProperty", "delegate") Q_INTERFACES(QQmlParserStatus) public: - QQuickVisualDataModel(); - QQuickVisualDataModel(QQmlContext *, QObject *parent=0); - virtual ~QQuickVisualDataModel(); + QQmlDelegateModel(); + QQmlDelegateModel(QQmlContext *, QObject *parent=0); + virtual ~QQmlDelegateModel(); void classBegin(); void componentComplete(); @@ -104,26 +104,26 @@ public: int count() const; bool isValid() const { return delegate() != 0; } - QQuickItem *item(int index, bool asynchronous=false); - ReleaseFlags release(QQuickItem *item); + QObject *object(int index, bool asynchronous=false); + ReleaseFlags release(QObject *object); void cancel(int index); virtual QString stringValue(int index, const QString &role); virtual void setWatchedRoles(QList roles); - int indexOf(QQuickItem *item, QObject *objectContext) const; + int indexOf(QObject *object, QObject *objectContext) const; QString filterGroup() const; void setFilterGroup(const QString &group); void resetFilterGroup(); - QQuickVisualDataGroup *items(); - QQuickVisualDataGroup *persistedItems(); - QQmlListProperty groups(); + QQmlDataGroup *items(); + QQmlDataGroup *persistedItems(); + QQmlListProperty groups(); QObject *parts(); bool event(QEvent *); - static QQuickVisualDataModelAttached *qmlAttachedProperties(QObject *obj); + static QQmlDelegateModelAttached *qmlAttachedProperties(QObject *obj); Q_SIGNALS: void filterGroupChanged(); @@ -144,20 +144,20 @@ private Q_SLOTS: void _q_layoutChanged(); private: - Q_DISABLE_COPY(QQuickVisualDataModel) + Q_DISABLE_COPY(QQmlDelegateModel) }; -class QQuickVisualDataGroupPrivate; -class Q_AUTOTEST_EXPORT QQuickVisualDataGroup : public QObject +class QQmlDataGroupPrivate; +class Q_QML_PRIVATE_EXPORT QQmlDataGroup : public QObject { Q_OBJECT Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) Q_PROPERTY(bool includeByDefault READ defaultInclude WRITE setDefaultInclude NOTIFY defaultIncludeChanged) public: - QQuickVisualDataGroup(QObject *parent = 0); - QQuickVisualDataGroup(const QString &name, QQuickVisualDataModel *model, int compositorType, QObject *parent = 0); - ~QQuickVisualDataGroup(); + QQmlDataGroup(QObject *parent = 0); + QQmlDataGroup(const QString &name, QQmlDelegateModel *model, int compositorType, QObject *parent = 0); + ~QQmlDataGroup(); QString name() const; void setName(const QString &name); @@ -185,25 +185,25 @@ Q_SIGNALS: void defaultIncludeChanged(); void changed(const QQmlV8Handle &removed, const QQmlV8Handle &inserted); private: - Q_DECLARE_PRIVATE(QQuickVisualDataGroup) + Q_DECLARE_PRIVATE(QQmlDataGroup) }; -class QQuickVisualDataModelItem; -class QQuickVisualDataModelAttachedMetaObject; -class QQuickVisualDataModelAttached : public QObject +class QQmlDelegateModelItem; +class QQmlDelegateModelAttachedMetaObject; +class QQmlDelegateModelAttached : public QObject { Q_OBJECT - Q_PROPERTY(QQuickVisualDataModel *model READ model CONSTANT) + Q_PROPERTY(QQmlDelegateModel *model READ model CONSTANT) Q_PROPERTY(QStringList groups READ groups WRITE setGroups NOTIFY groupsChanged) Q_PROPERTY(bool isUnresolved READ isUnresolved NOTIFY unresolvedChanged) public: - QQuickVisualDataModelAttached(QObject *parent); - QQuickVisualDataModelAttached(QQuickVisualDataModelItem *cacheItem, QObject *parent); - ~QQuickVisualDataModelAttached() {} + QQmlDelegateModelAttached(QObject *parent); + QQmlDelegateModelAttached(QQmlDelegateModelItem *cacheItem, QObject *parent); + ~QQmlDelegateModelAttached() {} - void setCacheItem(QQuickVisualDataModelItem *item); + void setCacheItem(QQmlDelegateModelItem *item); - QQuickVisualDataModel *model() const; + QQmlDelegateModel *model() const; QStringList groups() const; void setGroups(const QStringList &groups); @@ -219,20 +219,20 @@ Q_SIGNALS: void unresolvedChanged(); public: - QQuickVisualDataModelItem *m_cacheItem; + QQmlDelegateModelItem *m_cacheItem; int m_previousGroups; - int m_currentIndex[QQuickListCompositor::MaximumGroupCount]; - int m_previousIndex[QQuickListCompositor::MaximumGroupCount]; + int m_currentIndex[QQmlListCompositor::MaximumGroupCount]; + int m_previousIndex[QQmlListCompositor::MaximumGroupCount]; - friend class QQuickVisualDataModelAttachedMetaObject; + friend class QQmlDelegateModelAttachedMetaObject; }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QQuickVisualDataModel) -QML_DECLARE_TYPEINFO(QQuickVisualDataModel, QML_HAS_ATTACHED_PROPERTIES) -QML_DECLARE_TYPE(QQuickVisualDataGroup) +QML_DECLARE_TYPE(QQmlDelegateModel) +QML_DECLARE_TYPEINFO(QQmlDelegateModel, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QQmlDataGroup) QT_END_HEADER -#endif // QQUICKVISUALDATAMODEL_P_H +#endif // QQMLDATAMODEL_P_H diff --git a/src/quick/items/qquickvisualdatamodel_p_p.h b/src/qml/items/qqmldelegatemodel_p_p.h similarity index 60% rename from src/quick/items/qquickvisualdatamodel_p_p.h rename to src/qml/items/qqmldelegatemodel_p_p.h index 89ecece..0ac7285 100644 --- a/src/quick/items/qquickvisualdatamodel_p_p.h +++ b/src/qml/items/qqmldelegatemodel_p_p.h @@ -39,16 +39,16 @@ ** ****************************************************************************/ -#ifndef QQUICKVISUALDATAMODEL_P_P_H -#define QQUICKVISUALDATAMODEL_P_P_H +#ifndef QQMLDATAMODEL_P_P_H +#define QQMLDATAMODEL_P_P_H -#include "qquickvisualdatamodel_p.h" +#include "qqmldelegatemodel_p.h" -#include "qquickvisualadaptormodel_p.h" #include #include +#include #include // @@ -64,15 +64,15 @@ QT_BEGIN_NAMESPACE -typedef QQuickListCompositor Compositor; +typedef QQmlListCompositor Compositor; -class QQuickVisualDataModelAttachedMetaObject; +class QQmlDelegateModelAttachedMetaObject; -class QQuickVisualDataModelItemMetaType : public QQmlRefCount +class QQmlDelegateModelItemMetaType : public QQmlRefCount { public: - QQuickVisualDataModelItemMetaType(QV8Engine *engine, QQuickVisualDataModel *model, const QStringList &groupNames); - ~QQuickVisualDataModelItemMetaType(); + QQmlDelegateModelItemMetaType(QV8Engine *engine, QQmlDelegateModel *model, const QStringList &groupNames); + ~QQmlDelegateModelItemMetaType(); void initializeMetaObject(); void initializeConstructor(); @@ -92,26 +92,26 @@ public: v8::Local, v8::Local value, const v8::AccessorInfo &info); static v8::Handle get_index(v8::Local, const v8::AccessorInfo &info); - QQmlGuard model; + QQmlGuard model; const int groupCount; QV8Engine * const v8Engine; - QQuickVisualDataModelAttachedMetaObject *metaObject; + QQmlDelegateModelAttachedMetaObject *metaObject; const QStringList groupNames; v8::Persistent constructor; }; -class QQuickVisualAdaptorModel; -class QVDMIncubationTask; +class QQmlAdaptorModel; +class QQDMIncubationTask; -class QQuickVisualDataModelItem : public QObject, public QV8ObjectResource +class QQmlDelegateModelItem : public QObject, public QV8ObjectResource { Q_OBJECT Q_PROPERTY(int index READ modelIndex NOTIFY modelIndexChanged) Q_PROPERTY(QObject *model READ modelObject CONSTANT) V8_RESOURCE_TYPE(VisualDataItemType) public: - QQuickVisualDataModelItem(QQuickVisualDataModelItemMetaType *metaType, int modelIndex); - ~QQuickVisualDataModelItem(); + QQmlDelegateModelItem(QQmlDelegateModelItemMetaType *metaType, int modelIndex); + ~QQmlDelegateModelItem(); void referenceObject() { ++objectRef; } bool releaseObject() { return --objectRef == 0 && !(groups & Compositor::PersistedFlag); } @@ -134,7 +134,7 @@ public: QQmlContextData *forContext); void destroyObject(); - static QQuickVisualDataModelItem *dataForObject(QObject *object); + static QQmlDelegateModelItem *dataForObject(QObject *object); int groupIndex(Compositor::Group group); @@ -144,13 +144,13 @@ public: virtual v8::Handle get() { return engine->newQObject(this); } virtual void setValue(const QString &role, const QVariant &value) { Q_UNUSED(role); Q_UNUSED(value); } - virtual bool resolveIndex(const QQuickVisualAdaptorModel &, int) { return false; } + virtual bool resolveIndex(const QQmlAdaptorModel &, int) { return false; } - QQuickVisualDataModelItemMetaType * const metaType; + QQmlDelegateModelItemMetaType * const metaType; QQmlContextData *contextData; QObject *object; - QQuickVisualDataModelAttached *attached; - QVDMIncubationTask *incubationTask; + QQmlDelegateModelAttached *attached; + QQDMIncubationTask *incubationTask; int objectRef; int scriptRef; int groups; @@ -165,11 +165,11 @@ protected: }; -class QQuickVisualDataModelPrivate; -class QVDMIncubationTask : public QQmlIncubator +class QQmlDelegateModelPrivate; +class QQDMIncubationTask : public QQmlIncubator { public: - QVDMIncubationTask(QQuickVisualDataModelPrivate *l, IncubationMode mode) + QQDMIncubationTask(QQmlDelegateModelPrivate *l, IncubationMode mode) : QQmlIncubator(mode) , incubating(0) , vdm(l) {} @@ -177,17 +177,17 @@ public: virtual void statusChanged(Status); virtual void setInitialState(QObject *); - QQuickVisualDataModelItem *incubating; - QQuickVisualDataModelPrivate *vdm; - int index[QQuickListCompositor::MaximumGroupCount]; + QQmlDelegateModelItem *incubating; + QQmlDelegateModelPrivate *vdm; + int index[QQmlListCompositor::MaximumGroupCount]; }; -class QQuickVisualDataGroupEmitter +class QQmlDataGroupEmitter { public: - virtual ~QQuickVisualDataGroupEmitter() {} - virtual void emitModelUpdated(const QQuickChangeSet &changeSet, bool reset) = 0; + virtual ~QQmlDataGroupEmitter() {} + virtual void emitModelUpdated(const QQmlChangeSet &changeSet, bool reset) = 0; virtual void createdPackage(int, QQuickPackage *) {} virtual void initPackage(int, QQuickPackage *) {} virtual void destroyingPackage(QQuickPackage *) {} @@ -195,19 +195,19 @@ public: QIntrusiveListNode emitterNode; }; -typedef QIntrusiveList QQuickVisualDataGroupEmitterList; +typedef QIntrusiveList QQmlDataGroupEmitterList; -class QQuickVisualDataGroupPrivate : public QObjectPrivate +class QQmlDataGroupPrivate : public QObjectPrivate { public: - Q_DECLARE_PUBLIC(QQuickVisualDataGroup) + Q_DECLARE_PUBLIC(QQmlDataGroup) - QQuickVisualDataGroupPrivate() : group(Compositor::Cache), defaultInclude(false) {} + QQmlDataGroupPrivate() : group(Compositor::Cache), defaultInclude(false) {} - static QQuickVisualDataGroupPrivate *get(QQuickVisualDataGroup *group) { - return static_cast(QObjectPrivate::get(group)); } + static QQmlDataGroupPrivate *get(QQmlDataGroup *group) { + return static_cast(QObjectPrivate::get(group)); } - void setModel(QQuickVisualDataModel *model, Compositor::Group group); + void setModel(QQmlDelegateModel *model, Compositor::Group group); bool isChangedConnected(); void emitChanges(QV8Engine *engine); void emitModelUpdated(bool reset); @@ -221,41 +221,41 @@ public: QQmlV8Function *args, Compositor::Group *group, int *index, int *count, int *groups) const; Compositor::Group group; - QQmlGuard model; - QQuickVisualDataGroupEmitterList emitters; - QQuickChangeSet changeSet; + QQmlGuard model; + QQmlDataGroupEmitterList emitters; + QQmlChangeSet changeSet; QString name; bool defaultInclude; }; -class QQuickVisualDataModelParts; +class QQmlDelegateModelParts; -class QQuickVisualDataModelPrivate : public QObjectPrivate, public QQuickVisualDataGroupEmitter +class QQmlDelegateModelPrivate : public QObjectPrivate, public QQmlDataGroupEmitter { - Q_DECLARE_PUBLIC(QQuickVisualDataModel) + Q_DECLARE_PUBLIC(QQmlDelegateModel) public: - QQuickVisualDataModelPrivate(QQmlContext *); - ~QQuickVisualDataModelPrivate(); + QQmlDelegateModelPrivate(QQmlContext *); + ~QQmlDelegateModelPrivate(); - static QQuickVisualDataModelPrivate *get(QQuickVisualDataModel *m) { - return static_cast(QObjectPrivate::get(m)); + static QQmlDelegateModelPrivate *get(QQmlDelegateModel *m) { + return static_cast(QObjectPrivate::get(m)); } void init(); - void connectModel(QQuickVisualAdaptorModel *model); + void connectModel(QQmlAdaptorModel *model); QObject *object(Compositor::Group group, int index, bool asynchronous); - QQuickVisualDataModel::ReleaseFlags release(QObject *object); + QQmlDelegateModel::ReleaseFlags release(QObject *object); QString stringValue(Compositor::Group group, int index, const QString &name); - void emitCreatedPackage(QVDMIncubationTask *incubationTask, QQuickPackage *package); - void emitInitPackage(QVDMIncubationTask *incubationTask, QQuickPackage *package); - void emitCreatedItem(QVDMIncubationTask *incubationTask, QQuickItem *item) { + void emitCreatedPackage(QQDMIncubationTask *incubationTask, QQuickPackage *package); + void emitInitPackage(QQDMIncubationTask *incubationTask, QQuickPackage *package); + void emitCreatedItem(QQDMIncubationTask *incubationTask, QObject *item) { emit q_func()->createdItem(incubationTask->index[m_compositorGroup], item); } - void emitInitItem(QVDMIncubationTask *incubationTask, QQuickItem *item) { + void emitInitItem(QQDMIncubationTask *incubationTask, QObject *item) { emit q_func()->initItem(incubationTask->index[m_compositorGroup], item); } void emitDestroyingPackage(QQuickPackage *package); - void emitDestroyingItem(QQuickItem *item) { emit q_func()->destroyingItem(item); } - void removeCacheItem(QQuickVisualDataModelItem *cacheItem); + void emitDestroyingItem(QObject *item) { emit q_func()->destroyingItem(item); } + void removeCacheItem(QQmlDelegateModelItem *cacheItem); void updateFilterGroup(); @@ -265,41 +265,41 @@ public: void itemsInserted( const QVector &inserts, - QVarLengthArray, Compositor::MaximumGroupCount> *translatedInserts, - QHash > *movedItems = 0); + QVarLengthArray, Compositor::MaximumGroupCount> *translatedInserts, + QHash > *movedItems = 0); void itemsInserted(const QVector &inserts); void itemsRemoved( const QVector &removes, - QVarLengthArray, Compositor::MaximumGroupCount> *translatedRemoves, - QHash > *movedItems = 0); + QVarLengthArray, Compositor::MaximumGroupCount> *translatedRemoves, + QHash > *movedItems = 0); void itemsRemoved(const QVector &removes); void itemsMoved( const QVector &removes, const QVector &inserts); void itemsChanged(const QVector &changes); template static v8::Local buildChangeList(const QVector &changes); void emitChanges(); - void emitModelUpdated(const QQuickChangeSet &changeSet, bool reset); + void emitModelUpdated(const QQmlChangeSet &changeSet, bool reset); bool insert(Compositor::insert_iterator &before, const v8::Local &object, int groups); - static void group_append(QQmlListProperty *property, QQuickVisualDataGroup *group); - static int group_count(QQmlListProperty *property); - static QQuickVisualDataGroup *group_at(QQmlListProperty *property, int index); + static void group_append(QQmlListProperty *property, QQmlDataGroup *group); + static int group_count(QQmlListProperty *property); + static QQmlDataGroup *group_at(QQmlListProperty *property, int index); - void releaseIncubator(QVDMIncubationTask *incubationTask); - void incubatorStatusChanged(QVDMIncubationTask *incubationTask, QQmlIncubator::Status status); - void setInitialState(QVDMIncubationTask *incubationTask, QObject *o); + void releaseIncubator(QQDMIncubationTask *incubationTask); + void incubatorStatusChanged(QQDMIncubationTask *incubationTask, QQmlIncubator::Status status); + void setInitialState(QQDMIncubationTask *incubationTask, QObject *o); - QQuickVisualAdaptorModel m_adaptorModel; - QQuickListCompositor m_compositor; + QQmlAdaptorModel m_adaptorModel; + QQmlListCompositor m_compositor; QQmlComponent *m_delegate; - QQuickVisualDataModelItemMetaType *m_cacheMetaType; + QQmlDelegateModelItemMetaType *m_cacheMetaType; QQmlContext *m_context; - QQuickVisualDataModelParts *m_parts; - QQuickVisualDataGroupEmitterList m_pendingParts; + QQmlDelegateModelParts *m_parts; + QQmlDataGroupEmitterList m_pendingParts; - QList m_cache; - QList m_finishedIncubating; + QList m_cache; + QList m_finishedIncubating; QList m_watchedRoles; QString m_filterGroup; @@ -307,7 +307,7 @@ public: int m_count; int m_groupCount; - QQuickListCompositor::Group m_compositorGroup; + QQmlListCompositor::Group m_compositorGroup; bool m_complete : 1; bool m_delegateValidated : 1; bool m_reset : 1; @@ -316,39 +316,39 @@ public: union { struct { - QQuickVisualDataGroup *m_cacheItems; - QQuickVisualDataGroup *m_items; - QQuickVisualDataGroup *m_persistedItems; + QQmlDataGroup *m_cacheItems; + QQmlDataGroup *m_items; + QQmlDataGroup *m_persistedItems; }; - QQuickVisualDataGroup *m_groups[Compositor::MaximumGroupCount]; + QQmlDataGroup *m_groups[Compositor::MaximumGroupCount]; }; }; -class QQuickVisualPartsModel : public QQuickVisualModel, public QQuickVisualDataGroupEmitter +class QQmlPartsModel : public QQmlInstanceModel, public QQmlDataGroupEmitter { Q_OBJECT Q_PROPERTY(QString filterOnGroup READ filterGroup WRITE setFilterGroup NOTIFY filterGroupChanged RESET resetFilterGroup) public: - QQuickVisualPartsModel(QQuickVisualDataModel *model, const QString &part, QObject *parent = 0); - ~QQuickVisualPartsModel(); + QQmlPartsModel(QQmlDelegateModel *model, const QString &part, QObject *parent = 0); + ~QQmlPartsModel(); QString filterGroup() const; void setFilterGroup(const QString &group); void resetFilterGroup(); void updateFilterGroup(); - void updateFilterGroup(Compositor::Group group, const QQuickChangeSet &changeSet); + void updateFilterGroup(Compositor::Group group, const QQmlChangeSet &changeSet); int count() const; bool isValid() const; - QQuickItem *item(int index, bool asynchronous=false); - ReleaseFlags release(QQuickItem *item); + QObject *object(int index, bool asynchronous=false); + ReleaseFlags release(QObject *item); QString stringValue(int index, const QString &role); QList watchedRoles() const { return m_watchedRoles; } void setWatchedRoles(QList roles); - int indexOf(QQuickItem *item, QObject *objectContext) const; + int indexOf(QObject *item, QObject *objectContext) const; - void emitModelUpdated(const QQuickChangeSet &changeSet, bool reset); + void emitModelUpdated(const QQmlChangeSet &changeSet, bool reset); void createdPackage(int index, QQuickPackage *package); void initPackage(int index, QQuickPackage *package); @@ -358,7 +358,7 @@ Q_SIGNALS: void filterGroupChanged(); private: - QQuickVisualDataModel *m_model; + QQmlDelegateModel *m_model; QHash m_packaged; QString m_part; QString m_filterGroup; @@ -369,38 +369,38 @@ private: class QMetaPropertyBuilder; -class QQuickVisualDataModelPartsMetaObject : public QQmlOpenMetaObject +class QQmlDelegateModelPartsMetaObject : public QQmlOpenMetaObject { public: - QQuickVisualDataModelPartsMetaObject(QObject *parent) + QQmlDelegateModelPartsMetaObject(QObject *parent) : QQmlOpenMetaObject(parent) {} virtual void propertyCreated(int, QMetaPropertyBuilder &); virtual QVariant initialValue(int); }; -class QQuickVisualDataModelParts : public QObject +class QQmlDelegateModelParts : public QObject { Q_OBJECT public: - QQuickVisualDataModelParts(QQuickVisualDataModel *parent); + QQmlDelegateModelParts(QQmlDelegateModel *parent); - QQuickVisualDataModel *model; - QList models; + QQmlDelegateModel *model; + QList models; }; -class QQuickVisualDataModelAttachedMetaObject : public QAbstractDynamicMetaObject, public QQmlRefCount +class QQmlDelegateModelAttachedMetaObject : public QAbstractDynamicMetaObject, public QQmlRefCount { public: - QQuickVisualDataModelAttachedMetaObject( - QQuickVisualDataModelItemMetaType *metaType, QMetaObject *metaObject); - ~QQuickVisualDataModelAttachedMetaObject(); + QQmlDelegateModelAttachedMetaObject( + QQmlDelegateModelItemMetaType *metaType, QMetaObject *metaObject); + ~QQmlDelegateModelAttachedMetaObject(); void objectDestroyed(QObject *); int metaCall(QObject *, QMetaObject::Call, int _id, void **); private: - QQuickVisualDataModelItemMetaType * const metaType; + QQmlDelegateModelItemMetaType * const metaType; QMetaObject * const metaObject; const int memberPropertyOffset; const int indexPropertyOffset; diff --git a/src/quick/items/qquickvisualitemmodel.cpp b/src/qml/items/qqmlobjectmodel.cpp similarity index 62% rename from src/quick/items/qquickvisualitemmodel.cpp rename to src/qml/items/qqmlobjectmodel.cpp index bdc489e..913fa79 100644 --- a/src/quick/items/qquickvisualitemmodel.cpp +++ b/src/qml/items/qqmlobjectmodel.cpp @@ -39,14 +39,13 @@ ** ****************************************************************************/ -#include "qquickvisualitemmodel_p.h" -#include "qquickitem.h" +#include "qqmlobjectmodel_p.h" #include #include #include -#include +#include #include #include @@ -55,69 +54,69 @@ QT_BEGIN_NAMESPACE -QHash QQuickVisualItemModelAttached::attachedProperties; +QHash QQmlObjectModelAttached::attachedProperties; -class QQuickVisualItemModelPrivate : public QObjectPrivate +class QQmlObjectModelPrivate : public QObjectPrivate { - Q_DECLARE_PUBLIC(QQuickVisualItemModel) + Q_DECLARE_PUBLIC(QQmlObjectModel) public: class Item { public: - Item(QQuickItem *i) : item(i), ref(0) {} + Item(QObject *i) : item(i), ref(0) {} void addRef() { ++ref; } bool deref() { return --ref == 0; } - QQuickItem *item; + QObject *item; int ref; }; - QQuickVisualItemModelPrivate() : QObjectPrivate() {} + QQmlObjectModelPrivate() : QObjectPrivate() {} - static void children_append(QQmlListProperty *prop, QQuickItem *item) { - static_cast(prop->data)->children.append(Item(item)); - static_cast(prop->data)->itemAppended(); - static_cast(prop->data)->emitChildrenChanged(); + static void children_append(QQmlListProperty *prop, QObject *item) { + static_cast(prop->data)->children.append(Item(item)); + static_cast(prop->data)->itemAppended(); + static_cast(prop->data)->emitChildrenChanged(); } - static int children_count(QQmlListProperty *prop) { - return static_cast(prop->data)->children.count(); + static int children_count(QQmlListProperty *prop) { + return static_cast(prop->data)->children.count(); } - static QQuickItem *children_at(QQmlListProperty *prop, int index) { - return static_cast(prop->data)->children.at(index).item; + static QObject *children_at(QQmlListProperty *prop, int index) { + return static_cast(prop->data)->children.at(index).item; } - static void children_clear(QQmlListProperty *prop) { - static_cast(prop->data)->itemCleared(static_cast(prop->data)->children); - static_cast(prop->data)->children.clear(); - static_cast(prop->data)->emitChildrenChanged(); + static void children_clear(QQmlListProperty *prop) { + static_cast(prop->data)->itemCleared(static_cast(prop->data)->children); + static_cast(prop->data)->children.clear(); + static_cast(prop->data)->emitChildrenChanged(); } void itemAppended() { - Q_Q(QQuickVisualItemModel); - QQuickVisualItemModelAttached *attached = QQuickVisualItemModelAttached::properties(children.last().item); + Q_Q(QQmlObjectModel); + QQmlObjectModelAttached *attached = QQmlObjectModelAttached::properties(children.last().item); attached->setIndex(children.count()-1); - QQuickChangeSet changeSet; + QQmlChangeSet changeSet; changeSet.insert(children.count() - 1, 1); emit q->modelUpdated(changeSet, false); emit q->countChanged(); } void itemCleared(const QList &children) { - Q_Q(QQuickVisualItemModel); + Q_Q(QQmlObjectModel); foreach (const Item &child, children) emit q->destroyingItem(child.item); emit q->countChanged(); } void emitChildrenChanged() { - Q_Q(QQuickVisualItemModel); + Q_Q(QQmlObjectModel); emit q->childrenChanged(); } - int indexOf(QQuickItem *item) const { + int indexOf(QObject *item) const { for (int i = 0; i < children.count(); ++i) if (children.at(i).item == item) return i; @@ -131,7 +130,7 @@ public: /*! \qmltype VisualItemModel - \instantiates QQuickVisualItemModel + \instantiates QQmlObjectModel \inqmlmodule QtQuick 2 \ingroup qtquick-models \brief Defines items to be used added to a view @@ -167,8 +166,8 @@ public: \sa {quick/modelviews/visualitemmodel}{VisualItemModel example} */ -QQuickVisualItemModel::QQuickVisualItemModel(QObject *parent) - : QQuickVisualModel(*(new QQuickVisualItemModelPrivate), parent) +QQmlObjectModel::QQmlObjectModel(QObject *parent) + : QQmlInstanceModel(*(new QQmlObjectModelPrivate), parent) { } @@ -179,10 +178,10 @@ QQuickVisualItemModel::QQuickVisualItemModel(QObject *parent) It is attached to each instance of the delegate. */ -QQmlListProperty QQuickVisualItemModel::children() +QQmlListProperty QQmlObjectModel::children() { - Q_D(QQuickVisualItemModel); - return QQmlListProperty(this, + Q_D(QQmlObjectModel); + return QQmlListProperty(this, d, d->children_append, d->children_count, @@ -195,21 +194,21 @@ QQmlListProperty QQuickVisualItemModel::children() The number of items in the model. This property is readonly. */ -int QQuickVisualItemModel::count() const +int QQmlObjectModel::count() const { - Q_D(const QQuickVisualItemModel); + Q_D(const QQmlObjectModel); return d->children.count(); } -bool QQuickVisualItemModel::isValid() const +bool QQmlObjectModel::isValid() const { return true; } -QQuickItem *QQuickVisualItemModel::item(int index, bool) +QObject *QQmlObjectModel::object(int index, bool) { - Q_D(QQuickVisualItemModel); - QQuickVisualItemModelPrivate::Item &item = d->children[index]; + Q_D(QQmlObjectModel); + QQmlObjectModelPrivate::Item &item = d->children[index]; item.addRef(); if (item.ref == 1) { emit initItem(index, item.item); @@ -218,38 +217,34 @@ QQuickItem *QQuickVisualItemModel::item(int index, bool) return item.item; } -QQuickVisualModel::ReleaseFlags QQuickVisualItemModel::release(QQuickItem *item) +QQmlInstanceModel::ReleaseFlags QQmlObjectModel::release(QObject *item) { - Q_D(QQuickVisualItemModel); + Q_D(QQmlObjectModel); int idx = d->indexOf(item); if (idx >= 0) { - if (d->children[idx].deref()) { - // XXX todo - the original did item->scene()->removeItem(). Why? - item->setParentItem(0); - } else { - return QQuickVisualModel::Referenced; - } + if (!d->children[idx].deref()) + return QQmlInstanceModel::Referenced; } return 0; } -QString QQuickVisualItemModel::stringValue(int index, const QString &name) +QString QQmlObjectModel::stringValue(int index, const QString &name) { - Q_D(QQuickVisualItemModel); + Q_D(QQmlObjectModel); if (index < 0 || index >= d->children.count()) return QString(); return QQmlEngine::contextForObject(d->children.at(index).item)->contextProperty(name).toString(); } -int QQuickVisualItemModel::indexOf(QQuickItem *item, QObject *) const +int QQmlObjectModel::indexOf(QObject *item, QObject *) const { - Q_D(const QQuickVisualItemModel); + Q_D(const QQmlObjectModel); return d->indexOf(item); } -QQuickVisualItemModelAttached *QQuickVisualItemModel::qmlAttachedProperties(QObject *obj) +QQmlObjectModelAttached *QQmlObjectModel::qmlAttachedProperties(QObject *obj) { - return QQuickVisualItemModelAttached::properties(obj); + return QQmlObjectModelAttached::properties(obj); } QT_END_NAMESPACE diff --git a/src/quick/items/qquickvisualitemmodel_p.h b/src/qml/items/qqmlobjectmodel_p.h similarity index 61% rename from src/quick/items/qquickvisualitemmodel_p.h rename to src/qml/items/qqmlobjectmodel_p.h index a5d50f9..5ec57bd 100644 --- a/src/quick/items/qquickvisualitemmodel_p.h +++ b/src/qml/items/qqmlobjectmodel_p.h @@ -39,10 +39,10 @@ ** ****************************************************************************/ -#ifndef QQUICKVISUALITEMMODEL_P_H -#define QQUICKVISUALITEMMODEL_P_H +#ifndef QQMLINSTANCEMODEL_P_H +#define QQMLINSTANCEMODEL_P_H -#include +#include #include #include @@ -50,88 +50,88 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QQuickItem; -class QQuickChangeSet; +class QObject; +class QQmlChangeSet; -class Q_QUICK_PRIVATE_EXPORT QQuickVisualModel : public QObject +class Q_QML_PRIVATE_EXPORT QQmlInstanceModel : public QObject { Q_OBJECT Q_PROPERTY(int count READ count NOTIFY countChanged) public: - virtual ~QQuickVisualModel() {} + virtual ~QQmlInstanceModel() {} enum ReleaseFlag { Referenced = 0x01, Destroyed = 0x02 }; Q_DECLARE_FLAGS(ReleaseFlags, ReleaseFlag) virtual int count() const = 0; virtual bool isValid() const = 0; - virtual QQuickItem *item(int index, bool asynchronous=false) = 0; - virtual ReleaseFlags release(QQuickItem *item) = 0; + virtual QObject *object(int index, bool asynchronous=false) = 0; + virtual ReleaseFlags release(QObject *object) = 0; virtual void cancel(int) {} virtual QString stringValue(int, const QString &) = 0; virtual void setWatchedRoles(QList roles) = 0; - virtual int indexOf(QQuickItem *item, QObject *objectContext) const = 0; + virtual int indexOf(QObject *object, QObject *objectContext) const = 0; Q_SIGNALS: void countChanged(); - void modelUpdated(const QQuickChangeSet &changeSet, bool reset); - void createdItem(int index, QQuickItem *item); - void initItem(int index, QQuickItem *item); - void destroyingItem(QQuickItem *item); + void modelUpdated(const QQmlChangeSet &changeSet, bool reset); + void createdItem(int index, QObject *object); + void initItem(int index, QObject *object); + void destroyingItem(QObject *object); protected: - QQuickVisualModel(QObjectPrivate &dd, QObject *parent = 0) + QQmlInstanceModel(QObjectPrivate &dd, QObject *parent = 0) : QObject(dd, parent) {} private: - Q_DISABLE_COPY(QQuickVisualModel) + Q_DISABLE_COPY(QQmlInstanceModel) }; -class QQuickVisualItemModelAttached; -class QQuickVisualItemModelPrivate; -class Q_QUICK_PRIVATE_EXPORT QQuickVisualItemModel : public QQuickVisualModel +class QQmlObjectModelAttached; +class QQmlObjectModelPrivate; +class Q_QML_PRIVATE_EXPORT QQmlObjectModel : public QQmlInstanceModel { Q_OBJECT - Q_DECLARE_PRIVATE(QQuickVisualItemModel) + Q_DECLARE_PRIVATE(QQmlObjectModel) - Q_PROPERTY(QQmlListProperty children READ children NOTIFY childrenChanged DESIGNABLE false) + Q_PROPERTY(QQmlListProperty children READ children NOTIFY childrenChanged DESIGNABLE false) Q_CLASSINFO("DefaultProperty", "children") public: - QQuickVisualItemModel(QObject *parent=0); - virtual ~QQuickVisualItemModel() {} + QQmlObjectModel(QObject *parent=0); + virtual ~QQmlObjectModel() {} virtual int count() const; virtual bool isValid() const; - virtual QQuickItem *item(int index, bool asynchronous=false); - virtual ReleaseFlags release(QQuickItem *item); + virtual QObject *object(int index, bool asynchronous=false); + virtual ReleaseFlags release(QObject *object); virtual QString stringValue(int index, const QString &role); virtual void setWatchedRoles(QList) {} - virtual int indexOf(QQuickItem *item, QObject *objectContext) const; + virtual int indexOf(QObject *object, QObject *objectContext) const; - QQmlListProperty children(); + QQmlListProperty children(); - static QQuickVisualItemModelAttached *qmlAttachedProperties(QObject *obj); + static QQmlObjectModelAttached *qmlAttachedProperties(QObject *obj); Q_SIGNALS: void childrenChanged(); private: - Q_DISABLE_COPY(QQuickVisualItemModel) + Q_DISABLE_COPY(QQmlObjectModel) }; -class QQuickVisualItemModelAttached : public QObject +class QQmlObjectModelAttached : public QObject { Q_OBJECT public: - QQuickVisualItemModelAttached(QObject *parent) + QQmlObjectModelAttached(QObject *parent) : QObject(parent), m_index(0) {} - ~QQuickVisualItemModelAttached() { + ~QQmlObjectModelAttached() { attachedProperties.remove(parent()); } @@ -144,10 +144,10 @@ public: } } - static QQuickVisualItemModelAttached *properties(QObject *obj) { - QQuickVisualItemModelAttached *rv = attachedProperties.value(obj); + static QQmlObjectModelAttached *properties(QObject *obj) { + QQmlObjectModelAttached *rv = attachedProperties.value(obj); if (!rv) { - rv = new QQuickVisualItemModelAttached(obj); + rv = new QQmlObjectModelAttached(obj); attachedProperties.insert(obj, rv); } return rv; @@ -159,16 +159,16 @@ Q_SIGNALS: public: int m_index; - static QHash attachedProperties; + static QHash attachedProperties; }; QT_END_NAMESPACE -QML_DECLARE_TYPE(QQuickVisualModel) -QML_DECLARE_TYPE(QQuickVisualItemModel) -QML_DECLARE_TYPEINFO(QQuickVisualItemModel, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPE(QQmlInstanceModel) +QML_DECLARE_TYPE(QQmlObjectModel) +QML_DECLARE_TYPEINFO(QQmlObjectModel, QML_HAS_ATTACHED_PROPERTIES) QT_END_HEADER -#endif // QQUICKVISUALITEMMODEL_P_H +#endif // QQMLINSTANCEMODEL_P_H diff --git a/src/quick/util/qquickpackage.cpp b/src/qml/items/qquickpackage.cpp similarity index 100% rename from src/quick/util/qquickpackage.cpp rename to src/qml/items/qquickpackage.cpp diff --git a/src/quick/util/qquickpackage_p.h b/src/qml/items/qquickpackage_p.h similarity index 100% rename from src/quick/util/qquickpackage_p.h rename to src/qml/items/qquickpackage_p.h diff --git a/src/qml/qml.pro b/src/qml/qml.pro index 4f55b83..08aa369 100644 --- a/src/qml/qml.pro +++ b/src/qml/qml.pro @@ -25,3 +25,4 @@ include(util/util.pri) include(qml/qml.pri) include(debugger/debugger.pri) include(animations/animations.pri) +include(items/items.pri) diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 600f526..5657cac 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -92,6 +92,9 @@ #include "qqmlbind_p.h" #include "qqmlconnections_p.h" #include "qqmltimer_p.h" +#include +#include +#include #ifdef Q_OS_WIN // for %APPDATA% #include @@ -189,6 +192,11 @@ void QQmlEnginePrivate::registerBaseTypes(const char *uri, int versionMajor, int void QQmlEnginePrivate::registerQtQuick2Types(const char *uri, int versionMajor, int versionMinor) { qmlRegisterType(uri, versionMajor, versionMinor, "WorkerScript"); + qmlRegisterType(uri, versionMajor, versionMinor, "Package"); + qmlRegisterType(uri, versionMajor, versionMinor, "VisualDataModel"); + qmlRegisterType(uri, versionMajor, versionMinor, "VisualDataGroup"); + qmlRegisterType(uri, versionMajor, versionMinor, "VisualItemModel"); + qmlRegisterType(); } void QQmlEnginePrivate::defineQtQuick2Module() diff --git a/src/quick/items/qquickvisualadaptormodel.cpp b/src/qml/util/qqmladaptormodel.cpp similarity index 77% rename from src/quick/items/qquickvisualadaptormodel.cpp rename to src/qml/util/qqmladaptormodel.cpp index b57f4bb..5b6ef79 100644 --- a/src/quick/items/qquickvisualadaptormodel.cpp +++ b/src/qml/util/qqmladaptormodel.cpp @@ -39,16 +39,16 @@ ** ****************************************************************************/ -#include "qquickvisualadaptormodel_p.h" -#include "qquickvisualdatamodel_p_p.h" +#include "qqmladaptormodel_p.h" +#include #include #include #include QT_BEGIN_NAMESPACE -class QQuickVisualAdaptorModelEngineData : public QV8Engine::Deletable +class QQmlAdaptorModelEngineData : public QV8Engine::Deletable { public: enum @@ -59,8 +59,8 @@ public: StringCount }; - QQuickVisualAdaptorModelEngineData(QV8Engine *engine); - ~QQuickVisualAdaptorModelEngineData(); + QQmlAdaptorModelEngineData(QV8Engine *engine); + ~QQmlAdaptorModelEngineData(); v8::Local index() { return strings->Get(Index)->ToString(); } v8::Local modelData() { return strings->Get(ModelData)->ToString(); } @@ -70,11 +70,11 @@ public: v8::Persistent strings; }; -V8_DEFINE_EXTENSION(QQuickVisualAdaptorModelEngineData, engineData) +V8_DEFINE_EXTENSION(QQmlAdaptorModelEngineData, engineData) static v8::Handle get_index(v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *data = v8_resource_cast(info.This()); + QQmlDelegateModelItem *data = v8_resource_cast(info.This()); V8ASSERT_TYPE(data, "Not a valid VisualData object"); return v8::Int32::New(data->index); @@ -99,11 +99,11 @@ static void addProperty(QMetaObjectBuilder *builder, int propertyId, const QByte class VDMModelDelegateDataType; -class QQuickVDMCachedModelData : public QQuickVisualDataModelItem +class QQmlDMCachedModelData : public QQmlDelegateModelItem { public: - QQuickVDMCachedModelData( - QQuickVisualDataModelItemMetaType *metaType, + QQmlDMCachedModelData( + QQmlDelegateModelItemMetaType *metaType, VDMModelDelegateDataType *dataType, int index); @@ -113,7 +113,7 @@ public: virtual void setValue(int role, const QVariant &value) = 0; void setValue(const QString &role, const QVariant &value); - bool resolveIndex(const QQuickVisualAdaptorModel &model, int idx); + bool resolveIndex(const QQmlAdaptorModel &model, int idx); static v8::Handle get_property(v8::Local, const v8::AccessorInfo &info); static void set_property( @@ -125,11 +125,11 @@ public: class VDMModelDelegateDataType : public QQmlRefCount - , public QQuickVisualAdaptorModel::Accessors + , public QQmlAdaptorModel::Accessors , public QAbstractDynamicMetaObject { public: - VDMModelDelegateDataType(QQuickVisualAdaptorModel *model) + VDMModelDelegateDataType(QQmlAdaptorModel *model) : model(model) , metaObject(0) , propertyCache(0) @@ -149,8 +149,8 @@ public: } bool notify( - const QQuickVisualAdaptorModel &, - const QList &items, + const QQmlAdaptorModel &, + const QList &items, int index, int count, const QVector &roles) const @@ -182,7 +182,7 @@ public: } for (int i = 0, c = items.count(); i < c; ++i) { - QQuickVisualDataModelItem *item = items.at(i); + QQmlDelegateModelItem *item = items.at(i); const int idx = item->modelIndex(); if (idx >= index && idx < index + count) { for (int i = 0; i < signalIndexes.count(); ++i) @@ -193,7 +193,7 @@ public: } void replaceWatchedRoles( - QQuickVisualAdaptorModel &, + QQmlAdaptorModel &, const QList &oldRoles, const QList &newRoles) const { @@ -205,7 +205,7 @@ public: dataType->watchedRoles += newRoles; } - void initializeConstructor(QQuickVisualAdaptorModelEngineData *const data) + void initializeConstructor(QQmlAdaptorModelEngineData *const data) { constructor = qPersistentNew(v8::ObjectTemplate::New()); constructor->SetHasExternalResource(true); @@ -218,8 +218,8 @@ public: constructor->SetAccessor( v8::String::New(propertyName.constData(), propertyName.length()), - QQuickVDMCachedModelData::get_property, - QQuickVDMCachedModelData::set_property, + QQmlDMCachedModelData::get_property, + QQmlDMCachedModelData::set_property, v8::Int32::New(propertyId)); } } @@ -233,7 +233,7 @@ public: int metaCall(QObject *object, QMetaObject::Call call, int id, void **arguments) { - return static_cast(object)->metaCall(call, id, arguments); + return static_cast(object)->metaCall(call, id, arguments); } v8::Persistent constructor; @@ -241,7 +241,7 @@ public: QList watchedRoleIds; QList watchedRoles; QHash roleNames; - QQuickVisualAdaptorModel *model; + QQmlAdaptorModel *model; QMetaObject *metaObject; QQmlPropertyCache *propertyCache; int propertyOffset; @@ -249,9 +249,9 @@ public: bool hasModelData; }; -QQuickVDMCachedModelData::QQuickVDMCachedModelData( - QQuickVisualDataModelItemMetaType *metaType, VDMModelDelegateDataType *dataType, int index) - : QQuickVisualDataModelItem(metaType, index) +QQmlDMCachedModelData::QQmlDMCachedModelData( + QQmlDelegateModelItemMetaType *metaType, VDMModelDelegateDataType *dataType, int index) + : QQmlDelegateModelItem(metaType, index) , type(dataType) { if (index == -1) @@ -266,7 +266,7 @@ QQuickVDMCachedModelData::QQuickVDMCachedModelData( qmldata->propertyCache->addref(); } -int QQuickVDMCachedModelData::metaCall(QMetaObject::Call call, int id, void **arguments) +int QQmlDMCachedModelData::metaCall(QMetaObject::Call call, int id, void **arguments) { if (call == QMetaObject::ReadProperty && id >= type->propertyOffset) { const int propertyIndex = id - type->propertyOffset; @@ -300,7 +300,7 @@ int QQuickVDMCachedModelData::metaCall(QMetaObject::Call call, int id, void **ar } } -void QQuickVDMCachedModelData::setValue(const QString &role, const QVariant &value) +void QQmlDMCachedModelData::setValue(const QString &role, const QVariant &value) { QHash::iterator it = type->roleNames.find(role.toUtf8()); if (it != type->roleNames.end()) { @@ -313,7 +313,7 @@ void QQuickVDMCachedModelData::setValue(const QString &role, const QVariant &val } } -bool QQuickVDMCachedModelData::resolveIndex(const QQuickVisualAdaptorModel &, int idx) +bool QQmlDMCachedModelData::resolveIndex(const QQmlAdaptorModel &, int idx) { if (index == -1) { Q_ASSERT(idx >= 0); @@ -330,13 +330,13 @@ bool QQuickVDMCachedModelData::resolveIndex(const QQuickVisualAdaptorModel &, in } } -v8::Handle QQuickVDMCachedModelData::get_property( +v8::Handle QQmlDMCachedModelData::get_property( v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *data = v8_resource_cast(info.This()); + QQmlDelegateModelItem *data = v8_resource_cast(info.This()); V8ASSERT_TYPE(data, "Not a valid VisualData object"); - QQuickVDMCachedModelData *modelData = static_cast(data); + QQmlDMCachedModelData *modelData = static_cast(data); const int propertyId = info.Data()->Int32Value(); if (data->index == -1) { if (!modelData->cachedData.isEmpty()) { @@ -350,15 +350,15 @@ v8::Handle QQuickVDMCachedModelData::get_property( return v8::Undefined(); } -void QQuickVDMCachedModelData::set_property( +void QQmlDMCachedModelData::set_property( v8::Local, v8::Local value, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *data = v8_resource_cast(info.This()); + QQmlDelegateModelItem *data = v8_resource_cast(info.This()); V8ASSERT_TYPE_SETTER(data, "Not a valid VisualData object"); const int propertyId = info.Data()->Int32Value(); if (data->index == -1) { - QQuickVDMCachedModelData *modelData = static_cast(data); + QQmlDMCachedModelData *modelData = static_cast(data); if (!modelData->cachedData.isEmpty()) { if (modelData->cachedData.count() > 1) { modelData->cachedData[propertyId] = data->engine->toVariant(value, QVariant::Invalid); @@ -376,16 +376,16 @@ void QQuickVDMCachedModelData::set_property( // QAbstractItemModel //----------------------------------------------------------------- -class QQuickVDMAbstractItemModelData : public QQuickVDMCachedModelData +class QQmlDMAbstractItemModelData : public QQmlDMCachedModelData { Q_OBJECT Q_PROPERTY(bool hasModelChildren READ hasModelChildren CONSTANT) public: - QQuickVDMAbstractItemModelData( - QQuickVisualDataModelItemMetaType *metaType, + QQmlDMAbstractItemModelData( + QQmlDelegateModelItemMetaType *metaType, VDMModelDelegateDataType *dataType, int index) - : QQuickVDMCachedModelData(metaType, dataType, index) + : QQmlDMCachedModelData(metaType, dataType, index) { } @@ -413,7 +413,7 @@ public: v8::Handle get() { if (type->constructor.IsEmpty()) { - QQuickVisualAdaptorModelEngineData * const data = engineData(engine); + QQmlAdaptorModelEngineData * const data = engineData(engine); v8::HandleScope handleScope; v8::Context::Scope contextScope(engine->context()); type->initializeConstructor(data); @@ -427,10 +427,10 @@ public: static v8::Handle get_hasModelChildren(v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *data = v8_resource_cast(info.This()); + QQmlDelegateModelItem *data = v8_resource_cast(info.This()); V8ASSERT_TYPE(data, "Not a valid VisualData object"); - const QQuickVisualAdaptorModel *const model = static_cast(data)->type->model; + const QQmlAdaptorModel *const model = static_cast(data)->type->model; if (data->index >= 0 && *model) { const QAbstractItemModel * const aim = model->aim(); return v8::Boolean::New(aim->hasChildren(aim->index(data->index, 0, model->rootIndex))); @@ -443,17 +443,17 @@ public: class VDMAbstractItemModelDataType : public VDMModelDelegateDataType { public: - VDMAbstractItemModelDataType(QQuickVisualAdaptorModel *model) + VDMAbstractItemModelDataType(QQmlAdaptorModel *model) : VDMModelDelegateDataType(model) { } - int count(const QQuickVisualAdaptorModel &model) const + int count(const QQmlAdaptorModel &model) const { return model.aim()->rowCount(model.rootIndex); } - void cleanup(QQuickVisualAdaptorModel &model, QQuickVisualDataModel *vdm) const + void cleanup(QQmlAdaptorModel &model, QQmlDelegateModel *vdm) const { QAbstractItemModel * const aim = model.aim(); if (aim && vdm) { @@ -476,7 +476,7 @@ public: const_cast(this)->release(); } - QVariant value(const QQuickVisualAdaptorModel &model, int index, const QString &role) const + QVariant value(const QQmlAdaptorModel &model, int index, const QString &role) const { QHash::const_iterator it = roleNames.find(role.toUtf8()); if (it != roleNames.end()) { @@ -488,47 +488,47 @@ public: } } - QVariant parentModelIndex(const QQuickVisualAdaptorModel &model) const + QVariant parentModelIndex(const QQmlAdaptorModel &model) const { return model ? QVariant::fromValue(model.aim()->parent(model.rootIndex)) : QVariant(); } - QVariant modelIndex(const QQuickVisualAdaptorModel &model, int index) const + QVariant modelIndex(const QQmlAdaptorModel &model, int index) const { return model ? QVariant::fromValue(model.aim()->index(index, 0, model.rootIndex)) : QVariant(); } - bool canFetchMore(const QQuickVisualAdaptorModel &model) const + bool canFetchMore(const QQmlAdaptorModel &model) const { return model && model.aim()->canFetchMore(model.rootIndex); } - void fetchMore(QQuickVisualAdaptorModel &model) const + void fetchMore(QQmlAdaptorModel &model) const { if (model) model.aim()->fetchMore(model.rootIndex); } - QQuickVisualDataModelItem *createItem( - QQuickVisualAdaptorModel &model, - QQuickVisualDataModelItemMetaType *metaType, + QQmlDelegateModelItem *createItem( + QQmlAdaptorModel &model, + QQmlDelegateModelItemMetaType *metaType, QQmlEngine *engine, int index) const { VDMAbstractItemModelDataType *dataType = const_cast(this); if (!metaObject) dataType->initializeMetaType(model, engine); - return new QQuickVDMAbstractItemModelData(metaType, dataType, index); + return new QQmlDMAbstractItemModelData(metaType, dataType, index); } - void initializeMetaType(QQuickVisualAdaptorModel &model, QQmlEngine *engine) + void initializeMetaType(QQmlAdaptorModel &model, QQmlEngine *engine) { QMetaObjectBuilder builder; - setModelDataType(&builder, this); + setModelDataType(&builder, this); const QByteArray propertyType = QByteArrayLiteral("QVariant"); const QHash names = model.aim()->roleNames(); @@ -555,16 +555,16 @@ public: }; //----------------------------------------------------------------- -// QQuickListAccessor +// QQmlListAccessor //----------------------------------------------------------------- -class QQuickVDMListAccessorData : public QQuickVisualDataModelItem +class QQmlDMListAccessorData : public QQmlDelegateModelItem { Q_OBJECT Q_PROPERTY(QVariant modelData READ modelData WRITE setModelData NOTIFY modelDataChanged) public: - QQuickVDMListAccessorData(QQuickVisualDataModelItemMetaType *metaType, int index, const QVariant &value) - : QQuickVisualDataModelItem(metaType, index) + QQmlDMListAccessorData(QQmlDelegateModelItemMetaType *metaType, int index, const QVariant &value) + : QQmlDelegateModelItem(metaType, index) , cachedData(value) { } @@ -584,18 +584,18 @@ public: static v8::Handle get_modelData(v8::Local, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *data = v8_resource_cast(info.This()); + QQmlDelegateModelItem *data = v8_resource_cast(info.This()); V8ASSERT_TYPE(data, "Not a valid VisualData object"); - return data->engine->fromVariant(static_cast(data)->cachedData); + return data->engine->fromVariant(static_cast(data)->cachedData); } static void set_modelData(v8::Local, v8::Local value, const v8::AccessorInfo &info) { - QQuickVisualDataModelItem *data = v8_resource_cast(info.This()); + QQmlDelegateModelItem *data = v8_resource_cast(info.This()); V8ASSERT_TYPE_SETTER(data, "Not a valid VisualData object"); - static_cast(data)->setModelData( + static_cast(data)->setModelData( data->engine->toVariant(value, QVariant::Invalid)); } @@ -613,7 +613,7 @@ public: cachedData = value; } - bool resolveIndex(const QQuickVisualAdaptorModel &model, int idx) + bool resolveIndex(const QQmlAdaptorModel &model, int idx) { if (index == -1) { index = idx; @@ -635,30 +635,30 @@ private: }; -class VDMListDelegateDataType : public QQuickVisualAdaptorModel::Accessors +class VDMListDelegateDataType : public QQmlAdaptorModel::Accessors { public: inline VDMListDelegateDataType() {} - int count(const QQuickVisualAdaptorModel &model) const + int count(const QQmlAdaptorModel &model) const { return model.list.count(); } - QVariant value(const QQuickVisualAdaptorModel &model, int index, const QString &role) const + QVariant value(const QQmlAdaptorModel &model, int index, const QString &role) const { return role == QLatin1String("modelData") ? model.list.at(index) : QVariant(); } - QQuickVisualDataModelItem *createItem( - QQuickVisualAdaptorModel &model, - QQuickVisualDataModelItemMetaType *metaType, + QQmlDelegateModelItem *createItem( + QQmlAdaptorModel &model, + QQmlDelegateModelItemMetaType *metaType, QQmlEngine *, int index) const { - return new QQuickVDMListAccessorData( + return new QQmlDMListAccessorData( metaType, index, index >= 0 && index < model.list.count() ? model.list.at(index) : QVariant()); @@ -670,14 +670,14 @@ public: //----------------------------------------------------------------- class VDMObjectDelegateDataType; -class QQuickVDMObjectData : public QQuickVisualDataModelItem, public QQuickVisualAdaptorModelProxyInterface +class QQmlDMObjectData : public QQmlDelegateModelItem, public QQmlAdaptorModelProxyInterface { Q_OBJECT Q_PROPERTY(QObject *modelData READ modelData CONSTANT) - Q_INTERFACES(QQuickVisualAdaptorModelProxyInterface) + Q_INTERFACES(QQmlAdaptorModelProxyInterface) public: - QQuickVDMObjectData( - QQuickVisualDataModelItemMetaType *metaType, + QQmlDMObjectData( + QQmlDelegateModelItemMetaType *metaType, VDMObjectDelegateDataType *dataType, int index, QObject *object); @@ -688,7 +688,7 @@ public: QQmlGuard object; }; -class VDMObjectDelegateDataType : public QQmlRefCount, public QQuickVisualAdaptorModel::Accessors +class VDMObjectDelegateDataType : public QQmlRefCount, public QQmlAdaptorModel::Accessors { public: QMetaObject *metaObject; @@ -707,7 +707,7 @@ public: VDMObjectDelegateDataType(const VDMObjectDelegateDataType &type) : QQmlRefCount() - , QQuickVisualAdaptorModel::Accessors() + , QQmlAdaptorModel::Accessors() , metaObject(0) , propertyOffset(type.propertyOffset) , signalOffset(type.signalOffset) @@ -725,21 +725,21 @@ public: free(metaObject); } - int count(const QQuickVisualAdaptorModel &model) const + int count(const QQmlAdaptorModel &model) const { return model.list.count(); } - QVariant value(const QQuickVisualAdaptorModel &model, int index, const QString &role) const + QVariant value(const QQmlAdaptorModel &model, int index, const QString &role) const { if (QObject *object = model.list.at(index).value()) return object->property(role.toUtf8()); return QVariant(); } - QQuickVisualDataModelItem *createItem( - QQuickVisualAdaptorModel &model, - QQuickVisualDataModelItemMetaType *metaType, + QQmlDelegateModelItem *createItem( + QQmlAdaptorModel &model, + QQmlDelegateModelItemMetaType *metaType, QQmlEngine *, int index) const { @@ -747,27 +747,27 @@ public: if (!metaObject) dataType->initializeMetaType(model); return index >= 0 && index < model.list.count() - ? new QQuickVDMObjectData(metaType, dataType, index, qvariant_cast(model.list.at(index))) + ? new QQmlDMObjectData(metaType, dataType, index, qvariant_cast(model.list.at(index))) : 0; } - void initializeMetaType(QQuickVisualAdaptorModel &) + void initializeMetaType(QQmlAdaptorModel &) { - setModelDataType(&builder, this); + setModelDataType(&builder, this); metaObject = builder.toMetaObject(); } - void cleanup(QQuickVisualAdaptorModel &, QQuickVisualDataModel *) const + void cleanup(QQmlAdaptorModel &, QQmlDelegateModel *) const { const_cast(this)->release(); } }; -class QQuickVDMObjectDataMetaObject : public QAbstractDynamicMetaObject +class QQmlDMObjectDataMetaObject : public QAbstractDynamicMetaObject { public: - QQuickVDMObjectDataMetaObject(QQuickVDMObjectData *data, VDMObjectDelegateDataType *type) + QQmlDMObjectDataMetaObject(QQmlDMObjectData *data, VDMObjectDelegateDataType *type) : m_data(data) , m_type(type) { @@ -777,7 +777,7 @@ public: m_type->addref(); } - ~QQuickVDMObjectDataMetaObject() + ~QQmlDMObjectDataMetaObject() { m_type->release(); } @@ -854,43 +854,43 @@ public: return propertyIndex + m_type->propertyOffset - objectPropertyOffset; } - QQuickVDMObjectData *m_data; + QQmlDMObjectData *m_data; VDMObjectDelegateDataType *m_type; }; -QQuickVDMObjectData::QQuickVDMObjectData( - QQuickVisualDataModelItemMetaType *metaType, +QQmlDMObjectData::QQmlDMObjectData( + QQmlDelegateModelItemMetaType *metaType, VDMObjectDelegateDataType *dataType, int index, QObject *object) - : QQuickVisualDataModelItem(metaType, index) + : QQmlDelegateModelItem(metaType, index) , object(object) { - new QQuickVDMObjectDataMetaObject(this, dataType); + new QQmlDMObjectDataMetaObject(this, dataType); } //----------------------------------------------------------------- -// QQuickVisualAdaptorModel +// QQmlAdaptorModel //----------------------------------------------------------------- -static const QQuickVisualAdaptorModel::Accessors qt_vdm_null_accessors; +static const QQmlAdaptorModel::Accessors qt_vdm_null_accessors; static const VDMListDelegateDataType qt_vdm_list_accessors; -QQuickVisualAdaptorModel::Accessors::~Accessors() +QQmlAdaptorModel::Accessors::~Accessors() { } -QQuickVisualAdaptorModel::QQuickVisualAdaptorModel() +QQmlAdaptorModel::QQmlAdaptorModel() : accessors(&qt_vdm_null_accessors) { } -QQuickVisualAdaptorModel::~QQuickVisualAdaptorModel() +QQmlAdaptorModel::~QQmlAdaptorModel() { accessors->cleanup(*this); } -void QQuickVisualAdaptorModel::setModel(const QVariant &variant, QQuickVisualDataModel *vdm, QQmlEngine *engine) +void QQmlAdaptorModel::setModel(const QVariant &variant, QQmlDelegateModel *vdm, QQmlEngine *engine) { accessors->cleanup(*this, vdm); @@ -902,27 +902,27 @@ void QQuickVisualAdaptorModel::setModel(const QVariant &variant, QQuickVisualDat accessors = new VDMAbstractItemModelDataType(this); qmlobject_connect(model, QAbstractItemModel, SIGNAL(rowsInserted(QModelIndex,int,int)), - vdm, QQuickVisualDataModel, SLOT(_q_rowsInserted(QModelIndex,int,int))); + vdm, QQmlDelegateModel, SLOT(_q_rowsInserted(QModelIndex,int,int))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), - vdm, QQuickVisualDataModel, SLOT(_q_rowsRemoved(QModelIndex,int,int))); + vdm, QQmlDelegateModel, SLOT(_q_rowsRemoved(QModelIndex,int,int))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), - vdm, QQuickVisualDataModel, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); + vdm, QQmlDelegateModel, SLOT(_q_rowsAboutToBeRemoved(QModelIndex,int,int))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector)), - vdm, QQuickVisualDataModel, SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector))); + vdm, QQmlDelegateModel, SLOT(_q_dataChanged(QModelIndex,QModelIndex,QVector))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)), - vdm, QQuickVisualDataModel, SLOT(_q_rowsMoved(QModelIndex,int,int,QModelIndex,int))); + vdm, QQmlDelegateModel, SLOT(_q_rowsMoved(QModelIndex,int,int,QModelIndex,int))); qmlobject_connect(model, QAbstractItemModel, SIGNAL(modelReset()), - vdm, QQuickVisualDataModel, SLOT(_q_modelReset())); + vdm, QQmlDelegateModel, SLOT(_q_modelReset())); qmlobject_connect(model, QAbstractItemModel, SIGNAL(layoutChanged()), - vdm, QQuickVisualDataModel, SLOT(_q_layoutChanged())); + vdm, QQmlDelegateModel, SLOT(_q_layoutChanged())); } else { accessors = new VDMObjectDelegateDataType; } - } else if (list.type() == QQuickListAccessor::ListProperty) { + } else if (list.type() == QQmlListAccessor::ListProperty) { setObject(static_cast(variant.constData())->object()); accessors = new VDMObjectDelegateDataType; - } else if (list.type() != QQuickListAccessor::Invalid) { - Q_ASSERT(list.type() != QQuickListAccessor::Instance); // Should have cast to QObject. + } else if (list.type() != QQmlListAccessor::Invalid) { + Q_ASSERT(list.type() != QQmlListAccessor::Instance); // Should have cast to QObject. setObject(0); accessors = &qt_vdm_list_accessors; } else { @@ -931,7 +931,7 @@ void QQuickVisualAdaptorModel::setModel(const QVariant &variant, QQuickVisualDat } } -void QQuickVisualAdaptorModel::invalidateModel(QQuickVisualDataModel *vdm) +void QQmlAdaptorModel::invalidateModel(QQmlDelegateModel *vdm) { accessors->cleanup(*this, vdm); accessors = &qt_vdm_null_accessors; @@ -939,17 +939,17 @@ void QQuickVisualAdaptorModel::invalidateModel(QQuickVisualDataModel *vdm) // object is destroyed. } -bool QQuickVisualAdaptorModel::isValid() const +bool QQmlAdaptorModel::isValid() const { return accessors != &qt_vdm_null_accessors; } -void QQuickVisualAdaptorModel::objectDestroyed(QObject *) +void QQmlAdaptorModel::objectDestroyed(QObject *) { setModel(QVariant(), 0, 0); } -QQuickVisualAdaptorModelEngineData::QQuickVisualAdaptorModelEngineData(QV8Engine *) +QQmlAdaptorModelEngineData::QQmlAdaptorModelEngineData(QV8Engine *) { strings = qPersistentNew(v8::Array::New(StringCount)); strings->Set(Index, v8::String::New("index")); @@ -961,12 +961,12 @@ QQuickVisualAdaptorModelEngineData::QQuickVisualAdaptorModelEngineData(QV8Engine listItem->InstanceTemplate()->SetAccessor(index(), get_index); listItem->InstanceTemplate()->SetAccessor( modelData(), - QQuickVDMListAccessorData::get_modelData, - QQuickVDMListAccessorData::set_modelData); + QQmlDMListAccessorData::get_modelData, + QQmlDMListAccessorData::set_modelData); constructorListItem = qPersistentNew(listItem->GetFunction()); } -QQuickVisualAdaptorModelEngineData::~QQuickVisualAdaptorModelEngineData() +QQmlAdaptorModelEngineData::~QQmlAdaptorModelEngineData() { qPersistentDispose(constructorListItem); qPersistentDispose(strings); @@ -974,4 +974,4 @@ QQuickVisualAdaptorModelEngineData::~QQuickVisualAdaptorModelEngineData() QT_END_NAMESPACE -#include +#include diff --git a/src/quick/items/qquickvisualadaptormodel_p.h b/src/qml/util/qqmladaptormodel_p.h similarity index 68% rename from src/quick/items/qquickvisualadaptormodel_p.h rename to src/qml/util/qqmladaptormodel_p.h index 40890f8..6e9af8e 100644 --- a/src/quick/items/qquickvisualadaptormodel_p.h +++ b/src/qml/util/qqmladaptormodel_p.h @@ -39,12 +39,12 @@ ** ****************************************************************************/ -#ifndef QQUICKVISUALADAPTORMODEL_P_H -#define QQUICKVISUALADAPTORMODEL_P_H +#ifndef QQMLADAPTORMODEL_P_H +#define QQMLADAPTORMODEL_P_H #include -#include "private/qquicklistaccessor_p.h" +#include "private/qqmllistaccessor_p.h" #include @@ -54,11 +54,11 @@ QT_BEGIN_NAMESPACE class QQmlEngine; -class QQuickVisualDataModel; -class QQuickVisualDataModelItem; -class QQuickVisualDataModelItemMetaType; +class QQmlDelegateModel; +class QQmlDelegateModelItem; +class QQmlDelegateModelItemMetaType; -class QQuickVisualAdaptorModel : public QQmlGuard +class QQmlAdaptorModel : public QQmlGuard { public: class Accessors @@ -66,46 +66,46 @@ public: public: inline Accessors() {} virtual ~Accessors(); - virtual int count(const QQuickVisualAdaptorModel &) const { return 0; } - virtual void cleanup(QQuickVisualAdaptorModel &, QQuickVisualDataModel * = 0) const {} + virtual int count(const QQmlAdaptorModel &) const { return 0; } + virtual void cleanup(QQmlAdaptorModel &, QQmlDelegateModel * = 0) const {} - virtual QVariant value(const QQuickVisualAdaptorModel &, int, const QString &) const { + virtual QVariant value(const QQmlAdaptorModel &, int, const QString &) const { return QVariant(); } - virtual QQuickVisualDataModelItem *createItem( - QQuickVisualAdaptorModel &, - QQuickVisualDataModelItemMetaType *, + virtual QQmlDelegateModelItem *createItem( + QQmlAdaptorModel &, + QQmlDelegateModelItemMetaType *, QQmlEngine *, int) const { return 0; } virtual bool notify( - const QQuickVisualAdaptorModel &, - const QList &, + const QQmlAdaptorModel &, + const QList &, int, int, const QVector &) const { return false; } virtual void replaceWatchedRoles( - QQuickVisualAdaptorModel &, + QQmlAdaptorModel &, const QList &, const QList &) const {} - virtual QVariant parentModelIndex(const QQuickVisualAdaptorModel &) const { + virtual QVariant parentModelIndex(const QQmlAdaptorModel &) const { return QVariant(); } - virtual QVariant modelIndex(const QQuickVisualAdaptorModel &, int) const { + virtual QVariant modelIndex(const QQmlAdaptorModel &, int) const { return QVariant(); } - virtual bool canFetchMore(const QQuickVisualAdaptorModel &) const { return false; } - virtual void fetchMore(QQuickVisualAdaptorModel &) const {} + virtual bool canFetchMore(const QQmlAdaptorModel &) const { return false; } + virtual void fetchMore(QQmlAdaptorModel &) const {} }; const Accessors *accessors; QPersistentModelIndex rootIndex; - QQuickListAccessor list; + QQmlListAccessor list; - QQuickVisualAdaptorModel(); - ~QQuickVisualAdaptorModel(); + QQmlAdaptorModel(); + ~QQmlAdaptorModel(); inline QVariant model() const { return list.list(); } - void setModel(const QVariant &variant, QQuickVisualDataModel *vdm, QQmlEngine *engine); - void invalidateModel(QQuickVisualDataModel *vdm); + void setModel(const QVariant &variant, QQmlDelegateModel *vdm, QQmlEngine *engine); + void invalidateModel(QQmlDelegateModel *vdm); bool isValid() const; @@ -115,13 +115,13 @@ public: 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); } - inline QQuickVisualDataModelItem *createItem(QQuickVisualDataModelItemMetaType *metaType, QQmlEngine *engine, int index) { + inline QQmlDelegateModelItem *createItem(QQmlDelegateModelItemMetaType *metaType, QQmlEngine *engine, int index) { return accessors->createItem(*this, metaType, engine, index); } inline bool hasProxyObject() const { - return list.type() == QQuickListAccessor::Instance || list.type() == QQuickListAccessor::ListProperty; } + return list.type() == QQmlListAccessor::Instance || list.type() == QQmlListAccessor::ListProperty; } inline bool notify( - const QList &items, + const QList &items, int index, int count, const QVector &roles) const { @@ -139,17 +139,17 @@ protected: void objectDestroyed(QObject *); }; -class QQuickVisualAdaptorModelProxyInterface +class QQmlAdaptorModelProxyInterface { public: - virtual ~QQuickVisualAdaptorModelProxyInterface() {} + virtual ~QQmlAdaptorModelProxyInterface() {} virtual QObject *proxiedObject() = 0; }; -#define QQuickVisualAdaptorModelProxyInterface_iid "org.qt-project.Qt.QQuickVisualAdaptorModelProxyInterface" +#define QQmlAdaptorModelProxyInterface_iid "org.qt-project.Qt.QQmlAdaptorModelProxyInterface" -Q_DECLARE_INTERFACE(QQuickVisualAdaptorModelProxyInterface, QQuickVisualAdaptorModelProxyInterface_iid) +Q_DECLARE_INTERFACE(QQmlAdaptorModelProxyInterface, QQmlAdaptorModelProxyInterface_iid) QT_END_NAMESPACE diff --git a/src/quick/util/qquickchangeset.cpp b/src/qml/util/qqmlchangeset.cpp similarity index 92% rename from src/quick/util/qquickchangeset.cpp rename to src/qml/util/qqmlchangeset.cpp index d416749..831cb06 100644 --- a/src/quick/util/qquickchangeset.cpp +++ b/src/qml/util/qqmlchangeset.cpp @@ -39,18 +39,18 @@ ** ****************************************************************************/ -#include "qquickchangeset_p.h" +#include "qqmlchangeset_p.h" QT_BEGIN_NAMESPACE /*! - \class QQuickChangeSet - \brief The QQuickChangeSet class stores an ordered list of notifications about + \class QQmlChangeSet + \brief The QQmlChangeSet class stores an ordered list of notifications about changes to a linear data set. \internal - QQuickChangeSet can be used to record a series of notications about items in an indexed list + QQmlChangeSet can be used to record a series of notifications about items in an indexed list being inserted, removed, moved, and changed. Notifications in the set are re-ordered so that all notifications of a single type are grouped together and sorted in order of ascending index, with remove notifications preceding all others, followed by insert notification, and then @@ -67,7 +67,7 @@ QT_BEGIN_NAMESPACE Constructs an empty change set. */ -QQuickChangeSet::QQuickChangeSet() +QQmlChangeSet::QQmlChangeSet() : m_difference(0) { } @@ -76,7 +76,7 @@ QQuickChangeSet::QQuickChangeSet() Constructs a copy of a \a changeSet. */ -QQuickChangeSet::QQuickChangeSet(const QQuickChangeSet &changeSet) +QQmlChangeSet::QQmlChangeSet(const QQmlChangeSet &changeSet) : m_removes(changeSet.m_removes) , m_inserts(changeSet.m_inserts) , m_changes(changeSet.m_changes) @@ -88,7 +88,7 @@ QQuickChangeSet::QQuickChangeSet(const QQuickChangeSet &changeSet) Destroys a change set. */ -QQuickChangeSet::~QQuickChangeSet() +QQmlChangeSet::~QQmlChangeSet() { } @@ -96,7 +96,7 @@ QQuickChangeSet::~QQuickChangeSet() Assigns the value of a \a changeSet to another. */ -QQuickChangeSet &QQuickChangeSet::operator =(const QQuickChangeSet &changeSet) +QQmlChangeSet &QQmlChangeSet::operator =(const QQmlChangeSet &changeSet) { m_removes = changeSet.m_removes; m_inserts = changeSet.m_inserts; @@ -109,7 +109,7 @@ QQuickChangeSet &QQuickChangeSet::operator =(const QQuickChangeSet &changeSet) Appends a notification that \a count items were inserted at \a index. */ -void QQuickChangeSet::insert(int index, int count) +void QQmlChangeSet::insert(int index, int count) { insert(QVector() << Insert(index, count)); } @@ -118,7 +118,7 @@ void QQuickChangeSet::insert(int index, int count) Appends a notification that \a count items were removed at \a index. */ -void QQuickChangeSet::remove(int index, int count) +void QQmlChangeSet::remove(int index, int count) { QVector removes; removes.append(Remove(index, count)); @@ -132,7 +132,7 @@ void QQuickChangeSet::remove(int index, int count) change sets. */ -void QQuickChangeSet::move(int from, int to, int count, int moveId) +void QQmlChangeSet::move(int from, int to, int count, int moveId) { QVector removes; removes.append(Remove(from, count, moveId)); @@ -146,7 +146,7 @@ void QQuickChangeSet::move(int from, int to, int count, int moveId) Appends a notification that \a count items were changed at \a index. */ -void QQuickChangeSet::change(int index, int count) +void QQmlChangeSet::change(int index, int count) { QVector changes; changes.append(Change(index, count)); @@ -157,7 +157,7 @@ void QQuickChangeSet::change(int index, int count) Applies the changes in a \a changeSet to another. */ -void QQuickChangeSet::apply(const QQuickChangeSet &changeSet) +void QQmlChangeSet::apply(const QQmlChangeSet &changeSet) { QVector r = changeSet.m_removes; QVector i = changeSet.m_inserts; @@ -174,13 +174,13 @@ void QQuickChangeSet::apply(const QQuickChangeSet &changeSet) corresponding intersection in the optional \a inserts list. */ -void QQuickChangeSet::remove(const QVector &removes, QVector *inserts) +void QQmlChangeSet::remove(const QVector &removes, QVector *inserts) { QVector r = removes; remove(&r, inserts); } -void QQuickChangeSet::remove(QVector *removes, QVector *inserts) +void QQmlChangeSet::remove(QVector *removes, QVector *inserts) { int removeCount = 0; int insertCount = 0; @@ -395,7 +395,7 @@ void QQuickChangeSet::remove(QVector *removes, QVector *inserts) Applies a list of \a inserts to a change set. */ -void QQuickChangeSet::insert(const QVector &inserts) +void QQmlChangeSet::insert(const QVector &inserts) { int insertCount = 0; QVector::iterator insert = m_inserts.begin(); @@ -487,7 +487,7 @@ void QQuickChangeSet::insert(const QVector &inserts) calling \l remove() followed by \l insert() with the same lists. */ -void QQuickChangeSet::move(const QVector &removes, const QVector &inserts) +void QQmlChangeSet::move(const QVector &removes, const QVector &inserts) { QVector r = removes; QVector i = inserts; @@ -499,13 +499,13 @@ void QQuickChangeSet::move(const QVector &removes, const QVector Applies a list of \a changes to a change set. */ -void QQuickChangeSet::change(const QVector &changes) +void QQmlChangeSet::change(const QVector &changes) { QVector c = changes; change(&c); } -void QQuickChangeSet::change(QVector *changes) +void QQmlChangeSet::change(QVector *changes) { QVector::iterator insert = m_inserts.begin(); QVector::iterator change = m_changes.begin(); @@ -557,12 +557,12 @@ void QQuickChangeSet::change(QVector *changes) Prints the contents of a change \a set to the \a debug stream. */ -QDebug operator <<(QDebug debug, const QQuickChangeSet &set) +QDebug operator <<(QDebug debug, const QQmlChangeSet &set) { - debug.nospace() << "QQuickChangeSet("; - foreach (const QQuickChangeSet::Remove &remove, set.removes()) debug << remove; - foreach (const QQuickChangeSet::Insert &insert, set.inserts()) debug << insert; - foreach (const QQuickChangeSet::Change &change, set.changes()) debug << change; + debug.nospace() << "QQmlChangeSet("; + foreach (const QQmlChangeSet::Remove &remove, set.removes()) debug << remove; + foreach (const QQmlChangeSet::Insert &insert, set.inserts()) debug << insert; + foreach (const QQmlChangeSet::Change &change, set.changes()) debug << change; return debug.nospace() << ')'; } @@ -570,7 +570,7 @@ QDebug operator <<(QDebug debug, const QQuickChangeSet &set) Prints a \a remove to the \a debug stream. */ -QDebug operator <<(QDebug debug, const QQuickChangeSet::Remove &remove) +QDebug operator <<(QDebug debug, const QQmlChangeSet::Remove &remove) { if (remove.moveId == -1) { return (debug.nospace() @@ -591,7 +591,7 @@ QDebug operator <<(QDebug debug, const QQuickChangeSet::Remove &remove) Prints an \a insert to the \a debug stream. */ -QDebug operator <<(QDebug debug, const QQuickChangeSet::Insert &insert) +QDebug operator <<(QDebug debug, const QQmlChangeSet::Insert &insert) { if (insert.moveId == -1) { return (debug.nospace() @@ -612,7 +612,7 @@ QDebug operator <<(QDebug debug, const QQuickChangeSet::Insert &insert) Prints a \a change to the \a debug stream. */ -QDebug operator <<(QDebug debug, const QQuickChangeSet::Change &change) +QDebug operator <<(QDebug debug, const QQmlChangeSet::Change &change) { return (debug.nospace() << "Change(" << change.index << ',' << change.count << ')').space(); } diff --git a/src/quick/util/qquickchangeset_p.h b/src/qml/util/qqmlchangeset_p.h similarity index 80% rename from src/quick/util/qquickchangeset_p.h rename to src/qml/util/qqmlchangeset_p.h index 83b9023..acafbd4 100644 --- a/src/quick/util/qquickchangeset_p.h +++ b/src/qml/util/qqmlchangeset_p.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QQUICKCHANGESET_P_H -#define QQUICKCHANGESET_P_H +#ifndef QQMLCHANGESET_P_H +#define QQMLCHANGESET_P_H // // W A R N I N G @@ -55,10 +55,11 @@ #include #include +#include QT_BEGIN_NAMESPACE -class Q_AUTOTEST_EXPORT QQuickChangeSet +class Q_QML_PRIVATE_EXPORT QQmlChangeSet { public: struct MoveKey @@ -104,11 +105,11 @@ public: : Change(index, count, moveId, offset) {} }; - QQuickChangeSet(); - QQuickChangeSet(const QQuickChangeSet &changeSet); - ~QQuickChangeSet(); + QQmlChangeSet(); + QQmlChangeSet(const QQmlChangeSet &changeSet); + ~QQmlChangeSet(); - QQuickChangeSet &operator =(const QQuickChangeSet &changeSet); + QQmlChangeSet &operator =(const QQmlChangeSet &changeSet); const QVector &removes() const { return m_removes; } const QVector &inserts() const { return m_inserts; } @@ -123,7 +124,7 @@ public: void remove(const QVector &removes, QVector *inserts = 0); void move(const QVector &removes, const QVector &inserts); void change(const QVector &changes); - void apply(const QQuickChangeSet &changeSet); + void apply(const QQmlChangeSet &changeSet); bool isEmpty() const { return m_removes.empty() && m_inserts.empty() && m_changes.isEmpty(); } @@ -147,19 +148,19 @@ private: int m_difference; }; -Q_DECLARE_TYPEINFO(QQuickChangeSet::Change, Q_PRIMITIVE_TYPE); -Q_DECLARE_TYPEINFO(QQuickChangeSet::Remove, Q_PRIMITIVE_TYPE); -Q_DECLARE_TYPEINFO(QQuickChangeSet::Insert, Q_PRIMITIVE_TYPE); -Q_DECLARE_TYPEINFO(QQuickChangeSet::MoveKey, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQmlChangeSet::Change, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQmlChangeSet::Remove, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQmlChangeSet::Insert, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQmlChangeSet::MoveKey, Q_PRIMITIVE_TYPE); -inline uint qHash(const QQuickChangeSet::MoveKey &key) { return qHash(qMakePair(key.moveId, key.offset)); } -inline bool operator ==(const QQuickChangeSet::MoveKey &l, const QQuickChangeSet::MoveKey &r) { +inline uint qHash(const QQmlChangeSet::MoveKey &key) { return qHash(qMakePair(key.moveId, key.offset)); } +inline bool operator ==(const QQmlChangeSet::MoveKey &l, const QQmlChangeSet::MoveKey &r) { return l.moveId == r.moveId && l.offset == r.offset; } -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickChangeSet::Remove &remove); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickChangeSet::Insert &insert); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickChangeSet::Change &change); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickChangeSet &change); +Q_QML_PRIVATE_EXPORT QDebug operator <<(QDebug debug, const QQmlChangeSet::Remove &remove); +Q_QML_PRIVATE_EXPORT QDebug operator <<(QDebug debug, const QQmlChangeSet::Insert &insert); +Q_QML_PRIVATE_EXPORT QDebug operator <<(QDebug debug, const QQmlChangeSet::Change &change); +Q_QML_PRIVATE_EXPORT QDebug operator <<(QDebug debug, const QQmlChangeSet &change); QT_END_NAMESPACE diff --git a/src/quick/util/qquicklistaccessor.cpp b/src/qml/util/qqmllistaccessor.cpp similarity index 91% rename from src/quick/util/qquicklistaccessor.cpp rename to src/qml/util/qqmllistaccessor.cpp index 5cd6c77..2a2bd74 100644 --- a/src/quick/util/qquicklistaccessor.cpp +++ b/src/qml/util/qqmllistaccessor.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qquicklistaccessor_p.h" +#include "qqmllistaccessor_p.h" #include @@ -51,21 +51,21 @@ QT_BEGIN_NAMESPACE -QQuickListAccessor::QQuickListAccessor() +QQmlListAccessor::QQmlListAccessor() : m_type(Invalid) { } -QQuickListAccessor::~QQuickListAccessor() +QQmlListAccessor::~QQmlListAccessor() { } -QVariant QQuickListAccessor::list() const +QVariant QQmlListAccessor::list() const { return d; } -void QQuickListAccessor::setList(const QVariant &v, QQmlEngine *engine) +void QQmlListAccessor::setList(const QVariant &v, QQmlEngine *engine) { d = v; @@ -91,7 +91,7 @@ void QQuickListAccessor::setList(const QVariant &v, QQmlEngine *engine) } } -int QQuickListAccessor::count() const +int QQmlListAccessor::count() const { switch(m_type) { case StringList: @@ -110,7 +110,7 @@ int QQuickListAccessor::count() const } } -QVariant QQuickListAccessor::at(int idx) const +QVariant QQmlListAccessor::at(int idx) const { Q_ASSERT(idx >= 0 && idx < count()); switch(m_type) { @@ -130,7 +130,7 @@ QVariant QQuickListAccessor::at(int idx) const } } -bool QQuickListAccessor::isValid() const +bool QQmlListAccessor::isValid() const { return m_type != Invalid; } diff --git a/src/quick/util/qquicklistaccessor_p.h b/src/qml/util/qqmllistaccessor_p.h similarity index 92% rename from src/quick/util/qquicklistaccessor_p.h rename to src/qml/util/qqmllistaccessor_p.h index 0a2957a..71f7542 100644 --- a/src/quick/util/qquicklistaccessor_p.h +++ b/src/qml/util/qqmllistaccessor_p.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QQUICKLISTACCESSOR_H -#define QQUICKLISTACCESSOR_H +#ifndef QQMLLISTACCESSOR_H +#define QQMLLISTACCESSOR_H #include @@ -49,11 +49,11 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE class QQmlEngine; -class Q_AUTOTEST_EXPORT QQuickListAccessor +class Q_AUTOTEST_EXPORT QQmlListAccessor { public: - QQuickListAccessor(); - ~QQuickListAccessor(); + QQmlListAccessor(); + ~QQmlListAccessor(); QVariant list() const; void setList(const QVariant &, QQmlEngine * = 0); @@ -75,4 +75,4 @@ QT_END_NAMESPACE QT_END_HEADER -#endif // QQUICKLISTACCESSOR_H +#endif // QQMLLISTACCESSOR_H diff --git a/src/quick/util/qquicklistcompositor.cpp b/src/qml/util/qqmllistcompositor.cpp similarity index 90% rename from src/quick/util/qquicklistcompositor.cpp rename to src/qml/util/qqmllistcompositor.cpp index a9e9ace..75d2f67 100644 --- a/src/quick/util/qquicklistcompositor.cpp +++ b/src/qml/util/qqmllistcompositor.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qquicklistcompositor_p.h" +#include "qqmllistcompositor_p.h" #include @@ -49,12 +49,12 @@ QT_BEGIN_NAMESPACE /*! - \class QQuickListCompositor - \brief The QQuickListCompositor class provides a lookup table for filtered, or re-ordered list + \class QQmlListCompositor + \brief The QQmlListCompositor class provides a lookup table for filtered, or re-ordered list indexes. \internal - QQuickListCompositor is intended as an aid for developing proxy models. It doesn't however + QQmlListCompositor is intended as an aid for developing proxy models. It doesn't however directly proxy a list or model, instead a range of indexes from one or many lists can be inserted into the compositor and then categorized and shuffled around and it will manage the task of translating from an index in the combined space into an index in a particular list. @@ -118,15 +118,15 @@ QT_BEGIN_NAMESPACE */ static bool qt_verifyMinimal( - const QQuickListCompositor::iterator &begin, - const QQuickListCompositor::iterator &end) + const QQmlListCompositor::iterator &begin, + const QQmlListCompositor::iterator &end) { bool minimal = true; int index = 0; - for (const QQuickListCompositor::Range *range = begin->next; range != *end; range = range->next, ++index) { + for (const QQmlListCompositor::Range *range = begin->next; range != *end; range = range->next, ++index) { if (range->previous->list == range->list - && range->previous->flags == (range->flags & ~QQuickListCompositor::AppendFlag) + && range->previous->flags == (range->flags & ~QQmlListCompositor::AppendFlag) && range->previous->end() == range->index) { qWarning() << index << "Consecutive ranges"; qWarning() << *range->previous; @@ -141,7 +141,7 @@ static bool qt_verifyMinimal( #endif #ifdef QT_QML_VERIFY_INTEGRITY -static bool qt_printInfo(const QQuickListCompositor &compositor) +static bool qt_printInfo(const QQmlListCompositor &compositor) { qWarning() << compositor; return true; @@ -158,14 +158,14 @@ static bool qt_printInfo(const QQuickListCompositor &compositor) */ static bool qt_verifyIntegrity( - const QQuickListCompositor::iterator &begin, - const QQuickListCompositor::iterator &end, - const QQuickListCompositor::iterator &cachedIt) + const QQmlListCompositor::iterator &begin, + const QQmlListCompositor::iterator &end, + const QQmlListCompositor::iterator &cachedIt) { bool valid = true; int index = 0; - QQuickListCompositor::iterator it; + QQmlListCompositor::iterator it; for (it = begin; *it != *end; *it = it->next) { if (it->count == 0 && !it->append()) { qWarning() << index << "Empty non-append range"; @@ -175,7 +175,7 @@ static bool qt_verifyIntegrity( qWarning() << index << "Negative count"; valid = false; } - if (it->list && it->flags != QQuickListCompositor::CacheFlag && it->index < 0) { + if (it->list && it->flags != QQmlListCompositor::CacheFlag && it->index < 0) { qWarning() << index <<"Negative index"; valid = false; } @@ -195,7 +195,7 @@ static bool qt_verifyIntegrity( if (groupIndex != cachedIt.index[i]) { qWarning() << index << "invalid cached index" - << QQuickListCompositor::Group(i) + << QQmlListCompositor::Group(i) << "Expected:" << groupIndex << "Actual" @@ -233,7 +233,7 @@ static bool qt_verifyIntegrity( //#define QT_QML_TRACE_LISTCOMPOSITOR(args) qDebug() << m_end.index[1] << m_end.index[0] << Q_FUNC_INFO args; #define QT_QML_TRACE_LISTCOMPOSITOR(args) -QQuickListCompositor::iterator &QQuickListCompositor::iterator::operator +=(int difference) +QQmlListCompositor::iterator &QQmlListCompositor::iterator::operator +=(int difference) { // Update all indexes to the start of the range. decrementIndexes(offset); @@ -267,7 +267,7 @@ QQuickListCompositor::iterator &QQuickListCompositor::iterator::operator +=(int return *this; } -QQuickListCompositor::insert_iterator &QQuickListCompositor::insert_iterator::operator +=(int difference) +QQmlListCompositor::insert_iterator &QQmlListCompositor::insert_iterator::operator +=(int difference) { iterator::operator +=(difference); @@ -286,7 +286,7 @@ QQuickListCompositor::insert_iterator &QQuickListCompositor::insert_iterator::op Constructs an empty list compositor. */ -QQuickListCompositor::QQuickListCompositor() +QQmlListCompositor::QQmlListCompositor() : m_end(m_ranges.next, 0, Default, 2) , m_cacheIt(m_end) , m_groupCount(2) @@ -300,7 +300,7 @@ QQuickListCompositor::QQuickListCompositor() Destroys a list compositor. */ -QQuickListCompositor::~QQuickListCompositor() +QQmlListCompositor::~QQmlListCompositor() { for (Range *next, *range = m_ranges.next; range != &m_ranges; range = next) { next = range->next; @@ -313,7 +313,7 @@ QQuickListCompositor::~QQuickListCompositor() of the existing range \a before. */ -inline QQuickListCompositor::Range *QQuickListCompositor::insert( +inline QQmlListCompositor::Range *QQmlListCompositor::insert( Range *before, void *list, int index, int count, uint flags) { return new Range(before, list, index, count, flags); @@ -325,7 +325,7 @@ inline QQuickListCompositor::Range *QQuickListCompositor::insert( Returns a pointer to the next range in the compositor. */ -inline QQuickListCompositor::Range *QQuickListCompositor::erase( +inline QQmlListCompositor::Range *QQmlListCompositor::erase( Range *range) { Range *next = range->next; @@ -339,7 +339,7 @@ inline QQuickListCompositor::Range *QQuickListCompositor::erase( Sets the number (\a count) of possible groups that items may belong to in a compositor. */ -void QQuickListCompositor::setGroupCount(int count) +void QQmlListCompositor::setGroupCount(int count) { m_groupCount = count; m_end = iterator(&m_ranges, 0, Default, m_groupCount); @@ -350,7 +350,7 @@ void QQuickListCompositor::setGroupCount(int count) Returns the number of items that belong to a \a group. */ -int QQuickListCompositor::count(Group group) const +int QQmlListCompositor::count(Group group) const { return m_end.index[group]; } @@ -361,7 +361,7 @@ int QQuickListCompositor::count(Group group) const The index must be between 0 and count(group) - 1. */ -QQuickListCompositor::iterator QQuickListCompositor::find(Group group, int index) +QQmlListCompositor::iterator QQmlListCompositor::find(Group group, int index) { QT_QML_TRACE_LISTCOMPOSITOR(<< group << index) Q_ASSERT(index >=0 && index < count(group)); @@ -385,9 +385,9 @@ QQuickListCompositor::iterator QQuickListCompositor::find(Group group, int index The index must be between 0 and count(group) - 1. */ -QQuickListCompositor::iterator QQuickListCompositor::find(Group group, int index) const +QQmlListCompositor::iterator QQmlListCompositor::find(Group group, int index) const { - return const_cast(this)->find(group, index); + return const_cast(this)->find(group, index); } /*! @@ -402,7 +402,7 @@ QQuickListCompositor::iterator QQuickListCompositor::find(Group group, int index The index must be between 0 and count(group) - 1. */ -QQuickListCompositor::insert_iterator QQuickListCompositor::findInsertPosition(Group group, int index) +QQmlListCompositor::insert_iterator QQmlListCompositor::findInsertPosition(Group group, int index) { QT_QML_TRACE_LISTCOMPOSITOR(<< group << index) Q_ASSERT(index >=0 && index <= count(group)); @@ -428,7 +428,7 @@ QQuickListCompositor::insert_iterator QQuickListCompositor::findInsertPosition(G in each group. */ -void QQuickListCompositor::append( +void QQmlListCompositor::append( void *list, int index, int count, uint flags, QVector *inserts) { QT_QML_TRACE_LISTCOMPOSITOR(<< list << index << count << flags) @@ -443,7 +443,7 @@ void QQuickListCompositor::append( each group. */ -void QQuickListCompositor::insert( +void QQmlListCompositor::insert( Group group, int before, void *list, int index, int count, uint flags, QVector *inserts) { QT_QML_TRACE_LISTCOMPOSITOR(<< group << before << list << index << count << flags) @@ -458,7 +458,7 @@ void QQuickListCompositor::insert( each group. */ -QQuickListCompositor::iterator QQuickListCompositor::insert( +QQmlListCompositor::iterator QQmlListCompositor::insert( iterator before, void *list, int index, int count, uint flags, QVector *inserts) { QT_QML_TRACE_LISTCOMPOSITOR(<< before << list << index << count << flags) @@ -512,7 +512,7 @@ QQuickListCompositor::iterator QQuickListCompositor::insert( If supplied the \a inserts list will be populated with insert notifications for affected groups. */ -void QQuickListCompositor::setFlags( +void QQmlListCompositor::setFlags( Group fromGroup, int from, int count, Group group, int flags, QVector *inserts) { QT_QML_TRACE_LISTCOMPOSITOR(<< fromGroup << from << count << group << flags) @@ -526,7 +526,7 @@ void QQuickListCompositor::setFlags( If supplied the \a inserts list will be populated with insert notifications for affected groups. */ -void QQuickListCompositor::setFlags( +void QQmlListCompositor::setFlags( iterator from, int count, Group group, uint flags, QVector *inserts) { QT_QML_TRACE_LISTCOMPOSITOR(<< from << count << flags) @@ -622,7 +622,7 @@ void QQuickListCompositor::setFlags( If supplied the \a removes list will be populated with remove notifications for affected groups. */ -void QQuickListCompositor::clearFlags( +void QQmlListCompositor::clearFlags( Group fromGroup, int from, int count, Group group, uint flags, QVector *removes) { QT_QML_TRACE_LISTCOMPOSITOR(<< fromGroup << from << count << group << flags) @@ -636,7 +636,7 @@ void QQuickListCompositor::clearFlags( If supplied the \a removes list will be populated with remove notifications for affected groups. */ -void QQuickListCompositor::clearFlags( +void QQmlListCompositor::clearFlags( iterator from, int count, Group group, uint flags, QVector *removes) { QT_QML_TRACE_LISTCOMPOSITOR(<< from << count << flags) @@ -730,7 +730,7 @@ void QQuickListCompositor::clearFlags( QT_QML_VERIFY_LISTCOMPOSITOR } -bool QQuickListCompositor::verifyMoveTo( +bool QQmlListCompositor::verifyMoveTo( Group fromGroup, int from, Group toGroup, int to, int count, Group group) const { if (group != toGroup) { @@ -765,7 +765,7 @@ bool QQuickListCompositor::verifyMoveTo( of the items moved. */ -void QQuickListCompositor::move( +void QQmlListCompositor::move( Group fromGroup, int from, Group toGroup, @@ -940,7 +940,7 @@ void QQuickListCompositor::move( Clears the contents of a compositor. */ -void QQuickListCompositor::clear() +void QQmlListCompositor::clear() { QT_QML_TRACE_LISTCOMPOSITOR( ) for (Range *range = m_ranges.next; range != &m_ranges; range = erase(range)) {} @@ -948,10 +948,10 @@ void QQuickListCompositor::clear() m_cacheIt = m_end; } -void QQuickListCompositor::listItemsInserted( +void QQmlListCompositor::listItemsInserted( QVector *translatedInsertions, void *list, - const QVector &insertions, + const QVector &insertions, const QVector *movedFlags) { QT_QML_TRACE_LISTCOMPOSITOR(<< list << insertions) @@ -966,7 +966,7 @@ void QQuickListCompositor::listItemsInserted( it.incrementIndexes(it->count); continue; } - foreach (const QQuickChangeSet::Insert &insertion, insertions) { + foreach (const QQmlChangeSet::Insert &insertion, insertions) { int offset = insertion.index - it->index; if ((offset > 0 && offset < it->count) || (offset == 0 && it->prepend()) @@ -1058,23 +1058,23 @@ void QQuickListCompositor::listItemsInserted( groups. */ -void QQuickListCompositor::listItemsInserted( +void QQmlListCompositor::listItemsInserted( void *list, int index, int count, QVector *translatedInsertions) { QT_QML_TRACE_LISTCOMPOSITOR(<< list << index << count) Q_ASSERT(count > 0); - QVector insertions; - insertions.append(QQuickChangeSet::Insert(index, count)); + QVector insertions; + insertions.append(QQmlChangeSet::Insert(index, count)); listItemsInserted(translatedInsertions, list, insertions); } -void QQuickListCompositor::listItemsRemoved( +void QQmlListCompositor::listItemsRemoved( QVector *translatedRemovals, void *list, - QVector *removals, - QVector *insertions, + QVector *removals, + QVector *insertions, QVector *movedFlags) { QT_QML_TRACE_LISTCOMPOSITOR(<< list << *removals) @@ -1086,7 +1086,7 @@ void QQuickListCompositor::listItemsRemoved( continue; } bool removed = false; - for (QVector::iterator removal = removals->begin(); + for (QVector::iterator removal = removals->begin(); !removed && removal != removals->end(); ++removal) { int relativeIndex = removal->index - it->index; @@ -1104,7 +1104,7 @@ void QQuickListCompositor::listItemsRemoved( } if (removal->isMove()) { // If the removal was part of a move find the corresponding insert. - QVector::iterator insertion = insertions->begin(); + QVector::iterator insertion = insertions->begin(); for (; insertion != insertions->end() && insertion->moveId != removal->moveId; ++insertion) {} Q_ASSERT(insertion != insertions->end()); @@ -1114,11 +1114,11 @@ void QQuickListCompositor::listItemsRemoved( // If the remove started before the current range, split it and the // corresponding insert so we're only working with intersecting part. int splitMoveId = ++m_moveId; - removal = removals->insert(removal, QQuickChangeSet::Remove( + removal = removals->insert(removal, QQmlChangeSet::Remove( removal->index, -relativeIndex, splitMoveId)); ++removal; removal->count -= -relativeIndex; - insertion = insertions->insert(insertion, QQuickChangeSet::Insert( + insertion = insertions->insert(insertion, QQmlChangeSet::Insert( insertion->index, -relativeIndex, splitMoveId)); ++insertion; insertion->index += -relativeIndex; @@ -1135,10 +1135,10 @@ void QQuickListCompositor::listItemsRemoved( if (removeCount < removal->count) { // If the remove doesn't encompass all of the current range, // split it and the corresponding insert. - removal = removals->insert(removal, QQuickChangeSet::Remove( + removal = removals->insert(removal, QQmlChangeSet::Remove( removal->index, removeCount, translatedRemoval.moveId)); ++removal; - insertion = insertions->insert(insertion, QQuickChangeSet::Insert( + insertion = insertions->insert(insertion, QQmlChangeSet::Insert( insertion->index, removeCount, translatedRemoval.moveId)); ++insertion; @@ -1247,14 +1247,14 @@ void QQuickListCompositor::listItemsRemoved( */ -void QQuickListCompositor::listItemsRemoved( +void QQmlListCompositor::listItemsRemoved( void *list, int index, int count, QVector *translatedRemovals) { QT_QML_TRACE_LISTCOMPOSITOR(<< list << index << count) Q_ASSERT(count >= 0); - QVector removals; - removals.append(QQuickChangeSet::Remove(index, count)); + QVector removals; + removals.append(QQmlChangeSet::Remove(index, count)); listItemsRemoved(translatedRemovals, list, &removals, 0, 0); } @@ -1269,7 +1269,7 @@ void QQuickListCompositor::listItemsRemoved( notifications for the affected groups. */ -void QQuickListCompositor::listItemsMoved( +void QQmlListCompositor::listItemsMoved( void *list, int from, int to, @@ -1280,20 +1280,20 @@ void QQuickListCompositor::listItemsMoved( QT_QML_TRACE_LISTCOMPOSITOR(<< list << from << to << count) Q_ASSERT(count >= 0); - QVector removals; - QVector insertions; + QVector removals; + QVector insertions; QVector movedFlags; - removals.append(QQuickChangeSet::Remove(from, count, 0)); - insertions.append(QQuickChangeSet::Insert(to, count, 0)); + removals.append(QQmlChangeSet::Remove(from, count, 0)); + insertions.append(QQmlChangeSet::Insert(to, count, 0)); listItemsRemoved(translatedRemovals, list, &removals, &insertions, &movedFlags); listItemsInserted(translatedInsertions, list, insertions, &movedFlags); } -void QQuickListCompositor::listItemsChanged( +void QQmlListCompositor::listItemsChanged( QVector *translatedChanges, void *list, - const QVector &changes) + const QVector &changes) { QT_QML_TRACE_LISTCOMPOSITOR(<< list << changes) for (iterator it(m_ranges.next, 0, Default, m_groupCount); *it != &m_ranges; *it = it->next) { @@ -1303,7 +1303,7 @@ void QQuickListCompositor::listItemsChanged( } else if (!it->inGroup()) { continue; } - foreach (const QQuickChangeSet::Change &change, changes) { + foreach (const QQmlChangeSet::Change &change, changes) { const int offset = change.index - it->index; if (offset + change.count > 0 && offset < it->count) { const int changeOffset = qMax(0, offset); @@ -1329,29 +1329,29 @@ void QQuickListCompositor::listItemsChanged( affected groups. */ -void QQuickListCompositor::listItemsChanged( +void QQmlListCompositor::listItemsChanged( void *list, int index, int count, QVector *translatedChanges) { QT_QML_TRACE_LISTCOMPOSITOR(<< list << index << count) Q_ASSERT(count >= 0); - QVector changes; - changes.append(QQuickChangeSet::Change(index, count)); + QVector changes; + changes.append(QQmlChangeSet::Change(index, count)); listItemsChanged(translatedChanges, list, changes); } -void QQuickListCompositor::transition( +void QQmlListCompositor::transition( Group from, Group to, - QVector *removes, - QVector *inserts) + QVector *removes, + QVector *inserts) { int removeCount = 0; for (iterator it(m_ranges.next, 0, Default, m_groupCount); *it != &m_ranges; *it = it->next) { if (it == from && it != to) { - removes->append(QQuickChangeSet::Remove(it.index[from]- removeCount, it->count)); + removes->append(QQmlChangeSet::Remove(it.index[from]- removeCount, it->count)); removeCount += it->count; } else if (it != from && it == to) { - inserts->append(QQuickChangeSet::Insert(it.index[to], it->count)); + inserts->append(QQmlChangeSet::Insert(it.index[to], it->count)); } it.incrementIndexes(it->count); } @@ -1362,11 +1362,11 @@ void QQuickListCompositor::transition( Writes the name of \a group to \a debug. */ -QDebug operator <<(QDebug debug, const QQuickListCompositor::Group &group) +QDebug operator <<(QDebug debug, const QQmlListCompositor::Group &group) { switch (group) { - case QQuickListCompositor::Cache: return debug << "Cache"; - case QQuickListCompositor::Default: return debug << "Default"; + case QQmlListCompositor::Cache: return debug << "Cache"; + case QQmlListCompositor::Default: return debug << "Default"; default: return (debug.nospace() << "Group" << int(group)).space(); } @@ -1377,7 +1377,7 @@ QDebug operator <<(QDebug debug, const QQuickListCompositor::Group &group) Writes the contents of \a range to \a debug. */ -QDebug operator <<(QDebug debug, const QQuickListCompositor::Range &range) +QDebug operator <<(QDebug debug, const QQmlListCompositor::Range &range) { (debug.nospace() << "Range(" @@ -1387,11 +1387,11 @@ QDebug operator <<(QDebug debug, const QQuickListCompositor::Range &range) << (range.isUnresolved() ? 'U' : '0') << (range.append() ? 'A' : '0') << (range.prepend() ? 'P' : '0'); - for (int i = QQuickListCompositor::MaximumGroupCount - 1; i >= 2; --i) + for (int i = QQmlListCompositor::MaximumGroupCount - 1; i >= 2; --i) debug << (range.inGroup(i) ? '1' : '0'); return (debug - << (range.inGroup(QQuickListCompositor::Default) ? 'D' : '0') - << (range.inGroup(QQuickListCompositor::Cache) ? 'C' : '0')); + << (range.inGroup(QQmlListCompositor::Default) ? 'D' : '0') + << (range.inGroup(QQmlListCompositor::Cache) ? 'C' : '0')); } static void qt_print_indexes(QDebug &debug, int count, const int *indexes) @@ -1405,21 +1405,21 @@ static void qt_print_indexes(QDebug &debug, int count, const int *indexes) Writes the contents of \a it to \a debug. */ -QDebug operator <<(QDebug debug, const QQuickListCompositor::iterator &it) +QDebug operator <<(QDebug debug, const QQmlListCompositor::iterator &it) { (debug.nospace() << "iterator(" << it.group).space() << "offset:" << it.offset; qt_print_indexes(debug, it.groupCount, it.index); return ((debug << **it).nospace() << ')').space(); } -static QDebug qt_print_change(QDebug debug, const char *name, const QQuickListCompositor::Change &change) +static QDebug qt_print_change(QDebug debug, const char *name, const QQmlListCompositor::Change &change) { debug.nospace() << name << '(' << change.moveId << ' ' << change.count << ' '; - for (int i = QQuickListCompositor::MaximumGroupCount - 1; i >= 2; --i) + for (int i = QQmlListCompositor::MaximumGroupCount - 1; i >= 2; --i) debug << (change.inGroup(i) ? '1' : '0'); - debug << (change.inGroup(QQuickListCompositor::Default) ? 'D' : '0') - << (change.inGroup(QQuickListCompositor::Cache) ? 'C' : '0'); - int i = QQuickListCompositor::MaximumGroupCount - 1; + debug << (change.inGroup(QQmlListCompositor::Default) ? 'D' : '0') + << (change.inGroup(QQmlListCompositor::Cache) ? 'C' : '0'); + int i = QQmlListCompositor::MaximumGroupCount - 1; for (; i >= 0 && !change.inGroup(i); --i) {} for (; i >= 0; --i) debug << ' ' << change.index[i]; @@ -1431,7 +1431,7 @@ static QDebug qt_print_change(QDebug debug, const char *name, const QQuickListCo Writes the contents of \a change to \a debug. */ -QDebug operator <<(QDebug debug, const QQuickListCompositor::Change &change) +QDebug operator <<(QDebug debug, const QQmlListCompositor::Change &change) { return qt_print_change(debug, "Change", change); } @@ -1441,7 +1441,7 @@ QDebug operator <<(QDebug debug, const QQuickListCompositor::Change &change) Writes the contents of \a remove to \a debug. */ -QDebug operator <<(QDebug debug, const QQuickListCompositor::Remove &remove) +QDebug operator <<(QDebug debug, const QQmlListCompositor::Remove &remove) { return qt_print_change(debug, "Remove", remove); } @@ -1451,7 +1451,7 @@ QDebug operator <<(QDebug debug, const QQuickListCompositor::Remove &remove) Writes the contents of \a insert to \a debug. */ -QDebug operator <<(QDebug debug, const QQuickListCompositor::Insert &insert) +QDebug operator <<(QDebug debug, const QQmlListCompositor::Insert &insert) { return qt_print_change(debug, "Insert", insert); } @@ -1461,14 +1461,14 @@ QDebug operator <<(QDebug debug, const QQuickListCompositor::Insert &insert) Writes the contents of \a list to \a debug. */ -QDebug operator <<(QDebug debug, const QQuickListCompositor &list) +QDebug operator <<(QDebug debug, const QQmlListCompositor &list) { - int indexes[QQuickListCompositor::MaximumGroupCount]; - for (int i = 0; i < QQuickListCompositor::MaximumGroupCount; ++i) + int indexes[QQmlListCompositor::MaximumGroupCount]; + for (int i = 0; i < QQmlListCompositor::MaximumGroupCount; ++i) indexes[i] = 0; - debug.nospace() << "QQuickListCompositor("; + debug.nospace() << "QQmlListCompositor("; qt_print_indexes(debug, list.m_groupCount, list.m_end.index); - for (QQuickListCompositor::Range *range = list.m_ranges.next; range != &list.m_ranges; range = range->next) { + for (QQmlListCompositor::Range *range = list.m_ranges.next; range != &list.m_ranges; range = range->next) { (debug << '\n').space(); qt_print_indexes(debug, list.m_groupCount, indexes); debug << ' ' << *range; diff --git a/src/quick/util/qquicklistcompositor_p.h b/src/qml/util/qqmllistcompositor_p.h similarity index 85% rename from src/quick/util/qquicklistcompositor_p.h rename to src/qml/util/qqmllistcompositor_p.h index b2fe69d..5d87051 100644 --- a/src/quick/util/qquicklistcompositor_p.h +++ b/src/qml/util/qqmllistcompositor_p.h @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#ifndef QQUICKLISTCOMPOSITOR_P_H -#define QQUICKLISTCOMPOSITOR_P_H +#ifndef QQMLLISTCOMPOSITOR_P_H +#define QQMLLISTCOMPOSITOR_P_H // // W A R N I N G @@ -56,13 +56,13 @@ #include #include -#include +#include #include QT_BEGIN_NAMESPACE -class Q_AUTOTEST_EXPORT QQuickListCompositor +class Q_AUTOTEST_EXPORT QQmlListCompositor { public: enum { MinimumGroupCount = 3, MaximumGroupCount = 11 }; @@ -207,8 +207,8 @@ public: : Change(it, count, flags, moveId) {} }; - QQuickListCompositor(); - ~QQuickListCompositor(); + QQmlListCompositor(); + ~QQmlListCompositor(); int defaultGroups() const { return m_defaultFlags & ~PrependFlag; } void setDefaultGroups(int groups) { m_defaultFlags = groups | PrependFlag; } @@ -263,8 +263,8 @@ public: void transition( Group from, Group to, - QVector *removes, - QVector *inserts); + QVector *removes, + QVector *inserts); private: Range m_ranges; @@ -290,29 +290,29 @@ private: void listItemsRemoved( QVector *translatedRemovals, void *list, - QVector *removals, - QVector *insertions = 0, + QVector *removals, + QVector *insertions = 0, QVector *movedFlags = 0); void listItemsInserted( QVector *translatedInsertions, void *list, - const QVector &insertions, + const QVector &insertions, const QVector *movedFlags = 0); void listItemsChanged( QVector *translatedChanges, void *list, - const QVector &changes); + const QVector &changes); - friend Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor &list); + friend Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor &list); }; -Q_DECLARE_TYPEINFO(QQuickListCompositor::Change, Q_PRIMITIVE_TYPE); -Q_DECLARE_TYPEINFO(QQuickListCompositor::Remove, Q_PRIMITIVE_TYPE); -Q_DECLARE_TYPEINFO(QQuickListCompositor::Insert, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQmlListCompositor::Change, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQmlListCompositor::Remove, Q_PRIMITIVE_TYPE); +Q_DECLARE_TYPEINFO(QQmlListCompositor::Insert, Q_PRIMITIVE_TYPE); -inline QQuickListCompositor::iterator::iterator() +inline QQmlListCompositor::iterator::iterator() : range(0), offset(0), group(Default), groupCount(0) {} -inline QQuickListCompositor::iterator::iterator(const iterator &it) +inline QQmlListCompositor::iterator::iterator(const iterator &it) : range(it.range) , offset(it.offset) , group(it.group) @@ -323,7 +323,7 @@ inline QQuickListCompositor::iterator::iterator(const iterator &it) index[i] = it.index[i]; } -inline QQuickListCompositor::iterator::iterator( +inline QQmlListCompositor::iterator::iterator( Range *range, int offset, Group group, int groupCount) : range(range) , offset(offset) @@ -335,7 +335,7 @@ inline QQuickListCompositor::iterator::iterator( index[i] = 0; } -inline void QQuickListCompositor::iterator::incrementIndexes(int difference, uint flags) +inline void QQmlListCompositor::iterator::incrementIndexes(int difference, uint flags) { for (int i = 0; i < groupCount; ++i) { if (flags & (1 << i)) @@ -343,7 +343,7 @@ inline void QQuickListCompositor::iterator::incrementIndexes(int difference, uin } } -inline void QQuickListCompositor::iterator::decrementIndexes(int difference, uint flags) +inline void QQmlListCompositor::iterator::decrementIndexes(int difference, uint flags) { for (int i = 0; i < groupCount; ++i) { if (flags & (1 << i)) @@ -351,24 +351,24 @@ inline void QQuickListCompositor::iterator::decrementIndexes(int difference, uin } } -inline QQuickListCompositor::insert_iterator::insert_iterator( +inline QQmlListCompositor::insert_iterator::insert_iterator( Range *range, int offset, Group group, int groupCount) : iterator(range, offset, group, groupCount) {} -inline QQuickListCompositor::Change::Change(iterator it, int count, uint flags, int moveId) +inline QQmlListCompositor::Change::Change(iterator it, int count, uint flags, int moveId) : count(count), flags(flags), moveId(moveId) { for (int i = 0; i < MaximumGroupCount; ++i) index[i] = it.index[i]; } -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor::Group &group); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor::Range &range); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor::iterator &it); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor::Change &change); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor::Remove &remove); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor::Insert &insert); -Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQuickListCompositor &list); +Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor::Group &group); +Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor::Range &range); +Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor::iterator &it); +Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor::Change &change); +Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor::Remove &remove); +Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor::Insert &insert); +Q_AUTOTEST_EXPORT QDebug operator <<(QDebug debug, const QQmlListCompositor &list); QT_END_NAMESPACE diff --git a/src/qml/util/util.pri b/src/qml/util/util.pri index 3b121ba..a9c5ffe 100644 --- a/src/qml/util/util.pri +++ b/src/qml/util/util.pri @@ -1,5 +1,13 @@ SOURCES += \ + $$PWD/qqmlchangeset.cpp \ + $$PWD/qqmllistaccessor.cpp \ + $$PWD/qqmllistcompositor.cpp \ + $$PWD/qqmladaptormodel.cpp \ $$PWD/qqmlpropertymap.cpp HEADERS += \ + $$PWD/qqmlchangeset_p.h \ + $$PWD/qqmllistaccessor_p.h \ + $$PWD/qqmllistcompositor_p.h \ + $$PWD/qqmladaptormodel_p.h \ $$PWD/qqmlpropertymap.h diff --git a/src/quick/items/items.pri b/src/quick/items/items.pri index 5272a3d..2183a2b 100644 --- a/src/quick/items/items.pri +++ b/src/quick/items/items.pri @@ -38,10 +38,6 @@ HEADERS += \ $$PWD/qquickflickable_p.h \ $$PWD/qquickflickable_p_p.h \ $$PWD/qquicklistview_p.h \ - $$PWD/qquickvisualadaptormodel_p.h \ - $$PWD/qquickvisualdatamodel_p.h \ - $$PWD/qquickvisualdatamodel_p_p.h \ - $$PWD/qquickvisualitemmodel_p.h \ $$PWD/qquickrepeater_p.h \ $$PWD/qquickrepeater_p_p.h \ $$PWD/qquickgridview_p.h \ @@ -99,9 +95,6 @@ SOURCES += \ $$PWD/qquickpincharea.cpp \ $$PWD/qquickflickable.cpp \ $$PWD/qquicklistview.cpp \ - $$PWD/qquickvisualadaptormodel.cpp \ - $$PWD/qquickvisualdatamodel.cpp \ - $$PWD/qquickvisualitemmodel.cpp \ $$PWD/qquickrepeater.cpp \ $$PWD/qquickgridview.cpp \ $$PWD/qquickpathview.cpp \ diff --git a/src/quick/items/qquickgridview.cpp b/src/quick/items/qquickgridview.cpp index fd9ce9f..ea8badb 100644 --- a/src/quick/items/qquickgridview.cpp +++ b/src/quick/items/qquickgridview.cpp @@ -40,10 +40,10 @@ ****************************************************************************/ #include "qquickgridview_p.h" -#include "qquickvisualitemmodel_p.h" #include "qquickflickable_p_p.h" #include "qquickitemview_p_p.h" +#include #include #include @@ -209,7 +209,7 @@ public: virtual void setPosition(qreal pos); virtual void layoutVisibleItems(int fromModelIndex = 0); - virtual bool applyInsertionChange(const QQuickChangeSet::Insert &insert, ChangeResult *changeResult, QList *addedItems, QList *movingIntoView); + virtual bool applyInsertionChange(const QQmlChangeSet::Insert &insert, ChangeResult *changeResult, QList *addedItems, QList *movingIntoView); virtual void translateAndTransitionItemsAfter(int afterModelIndex, const ChangeResult &insertionResult, const ChangeResult &removalResult); virtual bool needsRefillForAddedOrRemovedIndex(int index) const; @@ -2105,13 +2105,16 @@ void QQuickGridView::geometryChanged(const QRectF &newGeometry, const QRectF &ol QQuickItemView::geometryChanged(newGeometry, oldGeometry); } -void QQuickGridView::initItem(int index, QQuickItem *item) +void QQuickGridView::initItem(int index, QObject *obj) { - QQuickItemView::initItem(index, item); - QQuickGridViewAttached *attached = static_cast( - qmlAttachedPropertiesObject(item)); - if (attached) - attached->setView(this); + QQuickItemView::initItem(index, obj); + QQuickItem *item = qmlobject_cast(obj); + if (item) { + QQuickGridViewAttached *attached = static_cast( + qmlAttachedPropertiesObject(item)); + if (attached) + attached->setView(this); + } } /*! @@ -2286,7 +2289,7 @@ void QQuickGridView::moveCurrentIndexRight() } } -bool QQuickGridViewPrivate::applyInsertionChange(const QQuickChangeSet::Insert &change, ChangeResult *insertResult, QList *addedItems, QList *movingIntoView) +bool QQuickGridViewPrivate::applyInsertionChange(const QQmlChangeSet::Insert &change, ChangeResult *insertResult, QList *addedItems, QList *movingIntoView) { Q_Q(QQuickGridView); diff --git a/src/quick/items/qquickgridview_p.h b/src/quick/items/qquickgridview_p.h index 64cb814..a1c0ce9 100644 --- a/src/quick/items/qquickgridview_p.h +++ b/src/quick/items/qquickgridview_p.h @@ -50,7 +50,6 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QQuickVisualModel; class QQuickGridViewAttached; class QQuickGridViewPrivate; class Q_AUTOTEST_EXPORT QQuickGridView : public QQuickItemView @@ -112,7 +111,7 @@ protected: virtual void viewportMoved(Qt::Orientations); virtual void keyPressEvent(QKeyEvent *); virtual void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); - virtual void initItem(int index, QQuickItem *item); + virtual void initItem(int index, QObject *item); }; class QQuickGridViewAttached : public QQuickItemViewAttached diff --git a/src/quick/items/qquickitemsmodule.cpp b/src/quick/items/qquickitemsmodule.cpp index c048071..043baeb 100644 --- a/src/quick/items/qquickitemsmodule.cpp +++ b/src/quick/items/qquickitemsmodule.cpp @@ -57,8 +57,6 @@ #include "qquickflickable_p.h" #include "qquickflickable_p_p.h" #include "qquicklistview_p.h" -#include "qquickvisualitemmodel_p.h" -#include "qquickvisualdatamodel_p.h" #include "qquickgridview_p.h" #include "qquickpathview_p.h" #include "qquickitemviewtransition_p.h" @@ -161,9 +159,6 @@ static void qt_quickitems_defineModule(const char *uri, int major, int minor) qmlRegisterType(uri,major,minor,"TextEdit"); qmlRegisterType(uri,major,minor,"TextInput"); qmlRegisterType(uri,major,minor,"ViewSection"); - qmlRegisterType(uri,major,minor,"VisualDataModel"); - qmlRegisterType(uri,major,minor,"VisualDataGroup"); - qmlRegisterType(uri,major,minor,"VisualItemModel"); qmlRegisterType(); qmlRegisterType(); @@ -178,7 +173,6 @@ static void qt_quickitems_defineModule(const char *uri, int major, int minor) #ifndef QT_NO_VALIDATOR qmlRegisterType(); #endif - qmlRegisterType(); qmlRegisterType(); qmlRegisterType(); qRegisterMetaType("QQuickAnchorLine"); diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp index b73fb8c..198052b 100644 --- a/src/quick/items/qquickitemview.cpp +++ b/src/quick/items/qquickitemview.cpp @@ -41,6 +41,7 @@ #include "qquickitemview_p_p.h" #include +#include #include "qplatformdefs.h" QT_BEGIN_NAMESPACE @@ -147,14 +148,14 @@ bool QQuickItemViewChangeSet::hasPendingChanges() const return !pendingChanges.isEmpty(); } -void QQuickItemViewChangeSet::applyChanges(const QQuickChangeSet &changeSet) +void QQuickItemViewChangeSet::applyChanges(const QQmlChangeSet &changeSet) { pendingChanges.apply(changeSet); int moveId = -1; int moveOffset = 0; - foreach (const QQuickChangeSet::Remove &r, changeSet.removes()) { + foreach (const QQmlChangeSet::Remove &r, changeSet.removes()) { itemCount -= r.count; if (moveId == -1 && newCurrentIndex >= r.index + r.count) { newCurrentIndex -= r.count; @@ -173,7 +174,7 @@ void QQuickItemViewChangeSet::applyChanges(const QQuickChangeSet &changeSet) currentChanged = true; } } - foreach (const QQuickChangeSet::Insert &i, changeSet.inserts()) { + foreach (const QQmlChangeSet::Insert &i, changeSet.inserts()) { if (moveId == -1) { if (itemCount && newCurrentIndex >= i.index) { newCurrentIndex += i.count; @@ -266,14 +267,14 @@ void QQuickItemView::setModel(const QVariant &model) if (d->modelVariant == model) return; if (d->model) { - disconnect(d->model, SIGNAL(modelUpdated(QQuickChangeSet,bool)), - this, SLOT(modelUpdated(QQuickChangeSet,bool))); - disconnect(d->model, SIGNAL(initItem(int,QQuickItem*)), this, SLOT(initItem(int,QQuickItem*))); - disconnect(d->model, SIGNAL(createdItem(int,QQuickItem*)), this, SLOT(createdItem(int,QQuickItem*))); - disconnect(d->model, SIGNAL(destroyingItem(QQuickItem*)), this, SLOT(destroyingItem(QQuickItem*))); + disconnect(d->model, SIGNAL(modelUpdated(QQmlChangeSet,bool)), + this, SLOT(modelUpdated(QQmlChangeSet,bool))); + disconnect(d->model, SIGNAL(initItem(int,QObject*)), this, SLOT(initItem(int,QObject*))); + disconnect(d->model, SIGNAL(createdItem(int,QObject*)), this, SLOT(createdItem(int,QObject*))); + disconnect(d->model, SIGNAL(destroyingItem(QObject*)), this, SLOT(destroyingItem(QObject*))); } - QQuickVisualModel *oldModel = d->model; + QQmlInstanceModel *oldModel = d->model; d->clear(); d->model = 0; @@ -281,8 +282,8 @@ void QQuickItemView::setModel(const QVariant &model) d->modelVariant = model; QObject *object = qvariant_cast(model); - QQuickVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { + QQmlInstanceModel *vim = 0; + if (object && (vim = qobject_cast(object))) { if (d->ownModel) { delete oldModel; d->ownModel = false; @@ -290,22 +291,22 @@ void QQuickItemView::setModel(const QVariant &model) d->model = vim; } else { if (!d->ownModel) { - d->model = new QQuickVisualDataModel(qmlContext(this), this); + d->model = new QQmlDelegateModel(qmlContext(this), this); d->ownModel = true; if (isComponentComplete()) - static_cast(d->model.data())->componentComplete(); + static_cast(d->model.data())->componentComplete(); } else { d->model = oldModel; } - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) dataModel->setModel(model); } if (d->model) { d->bufferMode = QQuickItemViewPrivate::BufferBefore | QQuickItemViewPrivate::BufferAfter; - connect(d->model, SIGNAL(createdItem(int,QQuickItem*)), this, SLOT(createdItem(int,QQuickItem*))); - connect(d->model, SIGNAL(initItem(int,QQuickItem*)), this, SLOT(initItem(int,QQuickItem*))); - connect(d->model, SIGNAL(destroyingItem(QQuickItem*)), this, SLOT(destroyingItem(QQuickItem*))); + connect(d->model, SIGNAL(createdItem(int,QObject*)), this, SLOT(createdItem(int,QObject*))); + connect(d->model, SIGNAL(initItem(int,QObject*)), this, SLOT(initItem(int,QObject*))); + connect(d->model, SIGNAL(destroyingItem(QObject*)), this, SLOT(destroyingItem(QObject*))); if (isComponentComplete()) { d->updateSectionCriteria(); d->refill(); @@ -319,8 +320,8 @@ void QQuickItemView::setModel(const QVariant &model) } } - connect(d->model, SIGNAL(modelUpdated(QQuickChangeSet,bool)), - this, SLOT(modelUpdated(QQuickChangeSet,bool))); + connect(d->model, SIGNAL(modelUpdated(QQmlChangeSet,bool)), + this, SLOT(modelUpdated(QQmlChangeSet,bool))); emit countChanged(); } emit modelChanged(); @@ -330,7 +331,7 @@ QQmlComponent *QQuickItemView::delegate() const { Q_D(const QQuickItemView); if (d->model) { - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) return dataModel->delegate(); } @@ -343,10 +344,10 @@ void QQuickItemView::setDelegate(QQmlComponent *delegate) if (delegate == this->delegate()) return; if (!d->ownModel) { - d->model = new QQuickVisualDataModel(qmlContext(this)); + d->model = new QQmlDelegateModel(qmlContext(this)); d->ownModel = true; } - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) { + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) { int oldCount = dataModel->count(); dataModel->setDelegate(delegate); if (isComponentComplete()) { @@ -371,6 +372,7 @@ void QQuickItemView::setDelegate(QQmlComponent *delegate) emit countChanged(); } emit delegateChanged(); + d->delegateValidated = false; } @@ -972,7 +974,7 @@ void QQuickItemViewPrivate::applyPendingChanges() layout(); } -int QQuickItemViewPrivate::findMoveKeyIndex(QQuickChangeSet::MoveKey key, const QVector &changes) const +int QQuickItemViewPrivate::findMoveKeyIndex(QQmlChangeSet::MoveKey key, const QVector &changes) const { for (int i=0; iforceLayoutPolish(); } -void QQuickItemView::modelUpdated(const QQuickChangeSet &changeSet, bool reset) +void QQuickItemView::modelUpdated(const QQmlChangeSet &changeSet, bool reset) { Q_D(QQuickItemView); if (reset) { @@ -1388,7 +1390,7 @@ void QQuickItemView::componentComplete() { Q_D(QQuickItemView); if (d->model && d->ownModel) - static_cast(d->model.data())->componentComplete(); + static_cast(d->model.data())->componentComplete(); QQuickFlickable::componentComplete(); @@ -1440,7 +1442,7 @@ QQuickItemViewPrivate::QQuickItemViewPrivate() , inLayout(false), inViewportMoved(false), forceLayout(false), currentIndexCleared(false) , haveHighlightRange(false), autoHighlight(true), highlightRangeStartValid(false), highlightRangeEndValid(false) , fillCacheBuffer(false), inRequest(false) - , runDelayedRemoveTransition(false) + , runDelayedRemoveTransition(false), delegateValidated(false) { bufferPause.addAnimationChangeListener(this, QAbstractAnimationJob::Completion); bufferPause.setLoopCount(1); @@ -1874,8 +1876,8 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult totalInsertionResult->visiblePos = prevViewPos; totalRemovalResult->visiblePos = prevViewPos; - const QVector &removals = currentChanges.pendingChanges.removes(); - const QVector &insertions = currentChanges.pendingChanges.inserts(); + const QVector &removals = currentChanges.pendingChanges.removes(); + const QVector &insertions = currentChanges.pendingChanges.inserts(); ChangeResult insertionResult(prevViewPos); ChangeResult removalResult(prevViewPos); @@ -1895,7 +1897,7 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult } } if (runDelayedRemoveTransition) { - QQuickChangeSet::Remove removal; + QQmlChangeSet::Remove removal; for (QList::Iterator it = visibleItems.begin(); it != visibleItems.end();) { FxViewItem *item = *it; if (item->index == -1 && !item->attached->delayRemove()) { @@ -1963,7 +1965,7 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult // Whatever removed/moved items remain are no longer visible items. prepareRemoveTransitions(¤tChanges.removedItems); - for (QHash::Iterator it = currentChanges.removedItems.begin(); + for (QHash::Iterator it = currentChanges.removedItems.begin(); it != currentChanges.removedItems.end(); ++it) { releaseItem(it.value()); } @@ -1992,7 +1994,7 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult return visibleAffected; } -bool QQuickItemViewPrivate::applyRemovalChange(const QQuickChangeSet::Remove &removal, ChangeResult *removeResult, int *removedCount) +bool QQuickItemViewPrivate::applyRemovalChange(const QQmlChangeSet::Remove &removal, ChangeResult *removeResult, int *removedCount) { Q_Q(QQuickItemView); bool visibleAffected = false; @@ -2042,7 +2044,7 @@ bool QQuickItemViewPrivate::applyRemovalChange(const QQuickChangeSet::Remove &re return visibleAffected; } -void QQuickItemViewPrivate::removeItem(FxViewItem *item, const QQuickChangeSet::Remove &removal, ChangeResult *removeResult) +void QQuickItemViewPrivate::removeItem(FxViewItem *item, const QQmlChangeSet::Remove &removal, ChangeResult *removeResult) { if (removeResult->visiblePos.isValid()) { if (item->position() < removeResult->visiblePos) @@ -2055,7 +2057,7 @@ void QQuickItemViewPrivate::removeItem(FxViewItem *item, const QQuickChangeSet:: item->transitionNextReposition(transitioner, QQuickItemViewTransitioner::MoveTransition, true); } else { // track item so it is released later - currentChanges.removedItems.insertMulti(QQuickChangeSet::MoveKey(), item); + currentChanges.removedItems.insertMulti(QQmlChangeSet::MoveKey(), item); } if (!removeResult->changedFirstItem && item == *visibleItems.constBegin()) removeResult->changedFirstItem = true; @@ -2120,14 +2122,14 @@ void QQuickItemViewPrivate::prepareVisibleItemTransitions() visibleItems[i]->prepareTransition(transitioner, viewBounds); } -void QQuickItemViewPrivate::prepareRemoveTransitions(QHash *removedItems) +void QQuickItemViewPrivate::prepareRemoveTransitions(QHash *removedItems) { if (!transitioner) return; if (transitioner->canTransition(QQuickItemViewTransitioner::RemoveTransition, true) || transitioner->canTransition(QQuickItemViewTransitioner::RemoveTransition, false)) { - for (QHash::Iterator it = removedItems->begin(); + for (QHash::Iterator it = removedItems->begin(); it != removedItems->end(); ) { bool isRemove = it.key().moveId < 0; if (isRemove) { @@ -2197,7 +2199,20 @@ FxViewItem *QQuickItemViewPrivate::createItem(int modelIndex, bool asynchronous) requestedIndex = modelIndex; inRequest = true; - if (QQuickItem *item = model->item(modelIndex, asynchronous)) { + QObject* object = model->object(modelIndex, asynchronous); + QQuickItem *item = qmlobject_cast(object); + if (!item) { + if (object) { + model->release(object); + if (!delegateValidated) { + delegateValidated = true; + QObject* delegate = q->delegate(); + qmlInfo(delegate ? delegate : q) << q->tr("Delegate must be of Item type"); + } + } + inRequest = false; + return 0; + } else { item->setParentItem(q->contentItem()); if (requestedIndex == modelIndex) requestedIndex = -1; @@ -2212,15 +2227,13 @@ FxViewItem *QQuickItemViewPrivate::createItem(int modelIndex, bool asynchronous) inRequest = false; return viewItem; } - - inRequest = false; - return 0; } -void QQuickItemView::createdItem(int index, QQuickItem *item) +void QQuickItemView::createdItem(int index, QObject* object) { Q_D(QQuickItemView); + QQuickItem* item = qmlobject_cast(object); if (!d->inRequest) { d->unrequestedItems.insert(item, index); d->requestedIndex = -1; @@ -2235,16 +2248,21 @@ void QQuickItemView::createdItem(int index, QQuickItem *item) } } -void QQuickItemView::initItem(int, QQuickItem *item) +void QQuickItemView::initItem(int, QObject *object) { - item->setZ(1); - item->setParentItem(contentItem()); - QQuickItemPrivate::get(item)->setCulled(true); + QQuickItem* item = qmlobject_cast(object); + if (item) { + item->setZ(1); + item->setParentItem(contentItem()); + QQuickItemPrivate::get(item)->setCulled(true); + } } -void QQuickItemView::destroyingItem(QQuickItem *item) +void QQuickItemView::destroyingItem(QObject *object) { Q_D(QQuickItemView); + QQuickItem* item = qmlobject_cast(object); + item->setParentItem(0); d->unrequestedItems.remove(item); } @@ -2257,14 +2275,16 @@ bool QQuickItemViewPrivate::releaseItem(FxViewItem *item) trackedItem = 0; QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item->item); itemPrivate->removeItemChangeListener(this, QQuickItemPrivate::Geometry); - QQuickVisualModel::ReleaseFlags flags = model->release(item->item); + QQmlInstanceModel::ReleaseFlags flags = model->release(item->item); if (flags == 0) { // item was not destroyed, and we no longer reference it. QQuickItemPrivate::get(item->item)->setCulled(true); unrequestedItems.insert(item->item, model->indexOf(item->item, q)); + } else if (flags & QQmlInstanceModel::Destroyed) { + item->item->setParentItem(0); } delete item; - return flags != QQuickVisualModel::Referenced; + return flags != QQmlInstanceModel::Referenced; } QQuickItem *QQuickItemViewPrivate::createHighlightItem() diff --git a/src/quick/items/qquickitemview_p.h b/src/quick/items/qquickitemview_p.h index 82180a2..f941371 100644 --- a/src/quick/items/qquickitemview_p.h +++ b/src/quick/items/qquickitemview_p.h @@ -48,7 +48,7 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QQuickChangeSet; +class QQmlChangeSet; class QQuickItemViewPrivate; @@ -257,10 +257,10 @@ protected: protected slots: void destroyRemoved(); - void createdItem(int index, QQuickItem *item); - virtual void initItem(int index, QQuickItem *item); - void modelUpdated(const QQuickChangeSet &changeSet, bool reset); - void destroyingItem(QQuickItem *item); + void createdItem(int index, QObject *item); + virtual void initItem(int index, QObject *item); + void modelUpdated(const QQmlChangeSet &changeSet, bool reset); + void destroyingItem(QObject *item); void animStopped(); void trackedPositionChanged(); diff --git a/src/quick/items/qquickitemview_p_p.h b/src/quick/items/qquickitemview_p_p.h index 0efc458..af895fb 100644 --- a/src/quick/items/qquickitemview_p_p.h +++ b/src/quick/items/qquickitemview_p_p.h @@ -45,9 +45,9 @@ #include "qquickitemview_p.h" #include "qquickitemviewtransition_p.h" #include "qquickflickable_p_p.h" -#include "qquickvisualdatamodel_p.h" -#include "qquickvisualitemmodel_p.h" -#include +#include +#include +#include QT_BEGIN_HEADER @@ -103,14 +103,14 @@ public: void prepare(int currentIndex, int count); void reset(); - void applyChanges(const QQuickChangeSet &changeSet); + void applyChanges(const QQmlChangeSet &changeSet); void applyBufferedChanges(const QQuickItemViewChangeSet &other); int itemCount; int newCurrentIndex; - QQuickChangeSet pendingChanges; - QHash removedItems; + QQmlChangeSet pendingChanges; + QHash removedItems; bool active : 1; bool currentChanged : 1; @@ -209,18 +209,18 @@ public: void applyPendingChanges(); bool applyModelChanges(ChangeResult *insertionResult, ChangeResult *removalResult); - bool applyRemovalChange(const QQuickChangeSet::Remove &removal, ChangeResult *changeResult, int *removedCount); - void removeItem(FxViewItem *item, const QQuickChangeSet::Remove &removal, ChangeResult *removeResult); + bool applyRemovalChange(const QQmlChangeSet::Remove &removal, ChangeResult *changeResult, int *removedCount); + void removeItem(FxViewItem *item, const QQmlChangeSet::Remove &removal, ChangeResult *removeResult); void repositionFirstItem(FxViewItem *prevVisibleItemsFirst, qreal prevVisibleItemsFirstPos, FxViewItem *prevFirstVisible, ChangeResult *insertionResult, ChangeResult *removalResult); void createTransitioner(); void prepareVisibleItemTransitions(); - void prepareRemoveTransitions(QHash *removedItems); + void prepareRemoveTransitions(QHash *removedItems); bool prepareNonVisibleItemTransition(FxViewItem *item, const QRectF &viewBounds); virtual void viewItemTransitionFinished(QQuickItemViewTransitionableItem *item); - int findMoveKeyIndex(QQuickChangeSet::MoveKey key, const QVector &changes) const; + int findMoveKeyIndex(QQmlChangeSet::MoveKey key, const QVector &changes) const; void checkVisible() const; void showVisibleItems() const; @@ -251,7 +251,7 @@ public: q->polish(); } - QQmlGuard model; + QQmlGuard model; QVariant modelVariant; int itemCount; int buffer; @@ -286,8 +286,8 @@ public: struct MovedItem { FxViewItem *item; - QQuickChangeSet::MoveKey moveKey; - MovedItem(FxViewItem *i, QQuickChangeSet::MoveKey k) + QQmlChangeSet::MoveKey moveKey; + MovedItem(FxViewItem *i, QQmlChangeSet::MoveKey k) : item(i), moveKey(k) {} }; QQuickItemViewTransitioner *transitioner; @@ -309,6 +309,7 @@ public: bool fillCacheBuffer : 1; bool inRequest : 1; bool runDelayedRemoveTransition : 1; + bool delegateValidated : 1; protected: virtual Qt::Orientation layoutOrientation() const = 0; @@ -346,7 +347,7 @@ protected: virtual void layoutVisibleItems(int fromModelIndex = 0) = 0; virtual void changedVisibleIndex(int newIndex) = 0; - virtual bool applyInsertionChange(const QQuickChangeSet::Insert &insert, ChangeResult *changeResult, + virtual bool applyInsertionChange(const QQmlChangeSet::Insert &insert, ChangeResult *changeResult, QList *newItems, QList *movingIntoView) = 0; virtual bool needsRefillForAddedOrRemovedIndex(int) const { return false; } diff --git a/src/quick/items/qquicklistview.cpp b/src/quick/items/qquicklistview.cpp index 57f1b99..297f641 100644 --- a/src/quick/items/qquicklistview.cpp +++ b/src/quick/items/qquicklistview.cpp @@ -41,8 +41,8 @@ #include "qquicklistview_p.h" #include "qquickitemview_p_p.h" -#include "qquickvisualitemmodel_p.h" +#include #include #include #include @@ -106,7 +106,7 @@ public: virtual void setPosition(qreal pos); virtual void layoutVisibleItems(int fromModelIndex = 0); - virtual bool applyInsertionChange(const QQuickChangeSet::Insert &insert, ChangeResult *changeResult, QList *addedItems, QList *movingIntoView); + virtual bool applyInsertionChange(const QQmlChangeSet::Insert &insert, ChangeResult *changeResult, QList *addedItems, QList *movingIntoView); virtual void translateAndTransitionItemsAfter(int afterIndex, const ChangeResult &insertionResult, const ChangeResult &removalResult); virtual void updateSectionCriteria(); @@ -2803,13 +2803,16 @@ void QQuickListView::geometryChanged(const QRectF &newGeometry, const QRectF &ol QQuickItemView::geometryChanged(newGeometry, oldGeometry); } -void QQuickListView::initItem(int index, QQuickItem *item) +void QQuickListView::initItem(int index, QObject *object) { - QQuickItemView::initItem(index, item); - QQuickListViewAttached *attached = static_cast( - qmlAttachedPropertiesObject(item)); - if (attached) - attached->setView(this); + QQuickItemView::initItem(index, object); + QQuickItem *item = qmlobject_cast(object); + if (item) { + QQuickListViewAttached *attached = static_cast( + qmlAttachedPropertiesObject(item)); + if (attached) + attached->setView(this); + } } @@ -2867,7 +2870,7 @@ void QQuickListViewPrivate::updateSectionCriteria() } } -bool QQuickListViewPrivate::applyInsertionChange(const QQuickChangeSet::Insert &change, ChangeResult *insertResult, QList *addedItems, QList *movingIntoView) +bool QQuickListViewPrivate::applyInsertionChange(const QQmlChangeSet::Insert &change, ChangeResult *insertResult, QList *addedItems, QList *movingIntoView) { int modelIndex = change.index; int count = change.count; diff --git a/src/quick/items/qquicklistview_p.h b/src/quick/items/qquicklistview_p.h index f6c405e..e0ad1ff 100644 --- a/src/quick/items/qquicklistview_p.h +++ b/src/quick/items/qquicklistview_p.h @@ -96,7 +96,7 @@ private: }; -class QQuickVisualModel; +class QQmlInstanceModel; class QQuickListViewAttached; class Q_AUTOTEST_EXPORT QQuickListView : public QQuickItemView { @@ -169,7 +169,7 @@ protected: virtual void viewportMoved(Qt::Orientations orient); virtual void keyPressEvent(QKeyEvent *); virtual void geometryChanged(const QRectF &newGeometry,const QRectF &oldGeometry); - virtual void initItem(int index, QQuickItem *item); + virtual void initItem(int index, QObject *item); }; class QQuickListViewAttached : public QQuickItemViewAttached diff --git a/src/quick/items/qquickpathview.cpp b/src/quick/items/qquickpathview.cpp index a7be50b..e9aa698 100644 --- a/src/quick/items/qquickpathview.cpp +++ b/src/quick/items/qquickpathview.cpp @@ -46,8 +46,9 @@ #include #include #include -#include +#include +#include #include #include #include @@ -117,7 +118,7 @@ QQuickPathViewPrivate::QQuickPathViewPrivate() , offset(0.0), offsetAdj(0.0), mappedRange(1.0), mappedCache(0.0) , stealMouse(false), ownModel(false), interactive(true), haveHighlightRange(true) , autoHighlight(true), highlightUp(false), layoutScheduled(false) - , moving(false), flicking(false), dragging(false), inRequest(false) + , moving(false), flicking(false), dragging(false), inRequest(false), delegateValidated(false) , dragMargin(0), deceleration(100), maximumFlickVelocity(QML_FLICK_DEFAULTMAXVELOCITY) , moveOffset(this, &QQuickPathViewPrivate::setAdjustedOffset), flickDuration(0) , firstIndex(-1), pathItems(-1), requestedIndex(-1), cacheSize(0), requestedZ(0) @@ -150,8 +151,18 @@ QQuickItem *QQuickPathViewPrivate::getItem(int modelIndex, qreal z, bool async) requestedIndex = modelIndex; requestedZ = z; inRequest = true; - QQuickItem *item = model->item(modelIndex, async); - if (item) { + QObject *object = model->object(modelIndex, async); + QQuickItem *item = qmlobject_cast(object); + if (!item) { + if (object) { + model->release(object); + if (!delegateValidated) { + delegateValidated = true; + QObject* delegate = q->delegate(); + qmlInfo(delegate ? delegate : q) << q->tr("Delegate must be of Item type"); + } + } + } else { item->setParentItem(q); requestedIndex = -1; QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item); @@ -161,9 +172,10 @@ QQuickItem *QQuickPathViewPrivate::getItem(int modelIndex, qreal z, bool async) return item; } -void QQuickPathView::createdItem(int index, QQuickItem *item) +void QQuickPathView::createdItem(int index, QObject *object) { Q_D(QQuickPathView); + QQuickItem *item = qmlobject_cast(object); if (d->requestedIndex != index) { qPathViewAttachedType = d->attachedType(); QQuickPathViewAttached *att = static_cast(qmlAttachedPropertiesObject(item)); @@ -181,10 +193,11 @@ void QQuickPathView::createdItem(int index, QQuickItem *item) } } -void QQuickPathView::initItem(int index, QQuickItem *item) +void QQuickPathView::initItem(int index, QObject *object) { Q_D(QQuickPathView); - if (d->requestedIndex == index) { + QQuickItem *item = qmlobject_cast(object); + if (item && d->requestedIndex == index) { QQuickItemPrivate::get(item)->setCulled(true); item->setParentItem(this); qPathViewAttachedType = d->attachedType(); @@ -209,10 +222,14 @@ void QQuickPathViewPrivate::releaseItem(QQuickItem *item) return; QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item); itemPrivate->removeItemChangeListener(this, QQuickItemPrivate::Geometry); - if (model->release(item) == 0) { + QQmlInstanceModel::ReleaseFlags flags = model->release(item); + if (!flags) { // item was not destroyed, and we no longer reference it. if (QQuickPathViewAttached *att = attached(item)) att->setOnPath(false); + } else if (flags & QQmlInstanceModel::Destroyed) { + // but we still reference it + item->setParentItem(0); } } @@ -619,19 +636,19 @@ void QQuickPathView::setModel(const QVariant &model) return; if (d->model) { - qmlobject_disconnect(d->model, QQuickVisualModel, SIGNAL(modelUpdated(QQuickChangeSet,bool)), - this, QQuickPathView, SLOT(modelUpdated(QQuickChangeSet,bool))); - qmlobject_disconnect(d->model, QQuickVisualModel, SIGNAL(createdItem(int,QQuickItem*)), - this, QQuickPathView, SLOT(createdItem(int,QQuickItem*))); - qmlobject_disconnect(d->model, QQuickVisualModel, SIGNAL(initItem(int,QQuickItem*)), - this, QQuickPathView, SLOT(initItem(int,QQuickItem*))); + qmlobject_disconnect(d->model, QQmlInstanceModel, SIGNAL(modelUpdated(QQmlChangeSet,bool)), + this, QQuickPathView, SLOT(modelUpdated(QQmlChangeSet,bool))); + qmlobject_disconnect(d->model, QQmlInstanceModel, SIGNAL(createdItem(int,QObject*)), + this, QQuickPathView, SLOT(createdItem(int,QObject*))); + qmlobject_disconnect(d->model, QQmlInstanceModel, SIGNAL(initItem(int,QObject*)), + this, QQuickPathView, SLOT(initItem(int,QObject*))); d->clear(); } d->modelVariant = model; QObject *object = qvariant_cast(model); - QQuickVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { + QQmlInstanceModel *vim = 0; + if (object && (vim = qobject_cast(object))) { if (d->ownModel) { delete d->model; d->ownModel = false; @@ -639,23 +656,23 @@ void QQuickPathView::setModel(const QVariant &model) d->model = vim; } else { if (!d->ownModel) { - d->model = new QQuickVisualDataModel(qmlContext(this)); + d->model = new QQmlDelegateModel(qmlContext(this)); d->ownModel = true; if (isComponentComplete()) - static_cast(d->model.data())->componentComplete(); + static_cast(d->model.data())->componentComplete(); } - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) dataModel->setModel(model); } int oldModelCount = d->modelCount; d->modelCount = 0; if (d->model) { - qmlobject_connect(d->model, QQuickVisualModel, SIGNAL(modelUpdated(QQuickChangeSet,bool)), - this, QQuickPathView, SLOT(modelUpdated(QQuickChangeSet,bool))); - qmlobject_connect(d->model, QQuickVisualModel, SIGNAL(createdItem(int,QQuickItem*)), - this, QQuickPathView, SLOT(createdItem(int,QQuickItem*))); - qmlobject_connect(d->model, QQuickVisualModel, SIGNAL(initItem(int,QQuickItem*)), - this, QQuickPathView, SLOT(initItem(int,QQuickItem*))); + qmlobject_connect(d->model, QQmlInstanceModel, SIGNAL(modelUpdated(QQmlChangeSet,bool)), + this, QQuickPathView, SLOT(modelUpdated(QQmlChangeSet,bool))); + qmlobject_connect(d->model, QQmlInstanceModel, SIGNAL(createdItem(int,QObject*)), + this, QQuickPathView, SLOT(createdItem(int,QObject*))); + qmlobject_connect(d->model, QQmlInstanceModel, SIGNAL(initItem(int,QObject*)), + this, QQuickPathView, SLOT(initItem(int,QObject*))); d->modelCount = d->model->count(); } if (isComponentComplete()) { @@ -1210,7 +1227,7 @@ QQmlComponent *QQuickPathView::delegate() const { Q_D(const QQuickPathView); if (d->model) { - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) return dataModel->delegate(); } @@ -1223,10 +1240,10 @@ void QQuickPathView::setDelegate(QQmlComponent *delegate) if (delegate == this->delegate()) return; if (!d->ownModel) { - d->model = new QQuickVisualDataModel(qmlContext(this)); + d->model = new QQmlDelegateModel(qmlContext(this)); d->ownModel = true; } - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) { + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) { int oldCount = dataModel->count(); dataModel->setDelegate(delegate); d->modelCount = dataModel->count(); @@ -1234,6 +1251,7 @@ void QQuickPathView::setDelegate(QQmlComponent *delegate) if (oldCount != dataModel->count()) emit countChanged(); emit delegateChanged(); + d->delegateValidated = false; } } @@ -1821,7 +1839,7 @@ void QQuickPathView::componentComplete() { Q_D(QQuickPathView); if (d->model && d->ownModel) - static_cast(d->model.data())->componentComplete(); + static_cast(d->model.data())->componentComplete(); QQuickItem::componentComplete(); @@ -1983,7 +2001,7 @@ void QQuickPathView::refill() d->releaseItem(d->itemCache.takeLast()); } -void QQuickPathView::modelUpdated(const QQuickChangeSet &changeSet, bool reset) +void QQuickPathView::modelUpdated(const QQmlChangeSet &changeSet, bool reset) { Q_D(QQuickPathView); if (!d->model || !d->model->isValid() || !d->path || !isComponentComplete()) @@ -2004,7 +2022,7 @@ void QQuickPathView::modelUpdated(const QQuickChangeSet &changeSet, bool reset) int moveOffset; bool currentChanged = false; bool changedOffset = false; - foreach (const QQuickChangeSet::Remove &r, changeSet.removes()) { + foreach (const QQmlChangeSet::Remove &r, changeSet.removes()) { if (moveId == -1 && d->currentIndex >= r.index + r.count) { d->currentIndex -= r.count; currentChanged = true; @@ -2030,7 +2048,7 @@ void QQuickPathView::modelUpdated(const QQuickChangeSet &changeSet, bool reset) } d->modelCount -= r.count; } - foreach (const QQuickChangeSet::Insert &i, changeSet.inserts()) { + foreach (const QQmlChangeSet::Insert &i, changeSet.inserts()) { if (d->modelCount) { if (moveId == -1 && i.index <= d->currentIndex) { d->currentIndex += i.count; @@ -2082,7 +2100,7 @@ void QQuickPathView::modelUpdated(const QQuickChangeSet &changeSet, bool reset) emit countChanged(); } -void QQuickPathView::destroyingItem(QQuickItem *item) +void QQuickPathView::destroyingItem(QObject *item) { Q_UNUSED(item); } diff --git a/src/quick/items/qquickpathview_p.h b/src/quick/items/qquickpathview_p.h index 9cb6b88..1ee23ed 100644 --- a/src/quick/items/qquickpathview_p.h +++ b/src/quick/items/qquickpathview_p.h @@ -50,7 +50,7 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QQuickChangeSet; +class QQmlChangeSet; class QQuickPathViewPrivate; class QQuickPathViewAttached; @@ -216,10 +216,10 @@ private Q_SLOTS: void refill(); void ticked(); void movementEnding(); - void modelUpdated(const QQuickChangeSet &changeSet, bool reset); - void createdItem(int index, QQuickItem *item); - void initItem(int index, QQuickItem *item); - void destroyingItem(QQuickItem *item); + void modelUpdated(const QQmlChangeSet &changeSet, bool reset); + void createdItem(int index, QObject *item); + void initItem(int index, QObject *item); + void destroyingItem(QObject *item); void pathUpdated(); private: diff --git a/src/quick/items/qquickpathview_p_p.h b/src/quick/items/qquickpathview_p_p.h index 9f504db..2653305 100644 --- a/src/quick/items/qquickpathview_p_p.h +++ b/src/quick/items/qquickpathview_p_p.h @@ -55,7 +55,6 @@ #include "qquickpathview_p.h" #include "qquickitem_p.h" -#include "qquickvisualdatamodel_p.h" #include #include @@ -63,6 +62,7 @@ #include #include +#include #include QT_BEGIN_NAMESPACE @@ -152,6 +152,7 @@ public: bool dragging : 1; bool requestedOnPath : 1; bool inRequest : 1; + bool delegateValidated : 1; QElapsedTimer timer; qint64 lastPosTime; QPointF lastPos; @@ -168,7 +169,7 @@ public: qreal requestedZ; QList items; QList itemCache; - QQmlGuard model; + QQmlGuard model; QVariant modelVariant; enum MovementReason { Other, SetIndex, Mouse }; MovementReason moveReason; diff --git a/src/quick/items/qquickrepeater.cpp b/src/quick/items/qquickrepeater.cpp index 68f70a5..c986e46 100644 --- a/src/quick/items/qquickrepeater.cpp +++ b/src/quick/items/qquickrepeater.cpp @@ -41,16 +41,18 @@ #include "qquickrepeater_p.h" #include "qquickrepeater_p_p.h" -#include "qquickvisualdatamodel_p.h" #include -#include -#include +#include +#include +#include + +#include QT_BEGIN_NAMESPACE QQuickRepeaterPrivate::QQuickRepeaterPrivate() - : model(0), ownModel(false), inRequest(false), dataSourceIsObject(false), itemCount(0), createFrom(-1) + : model(0), ownModel(false), inRequest(false), dataSourceIsObject(false), delegateValidated(false), itemCount(0), createFrom(-1) { } @@ -192,18 +194,18 @@ void QQuickRepeater::setModel(const QVariant &model) clear(); if (d->model) { - disconnect(d->model, SIGNAL(modelUpdated(QQuickChangeSet,bool)), - this, SLOT(modelUpdated(QQuickChangeSet,bool))); - disconnect(d->model, SIGNAL(createdItem(int,QQuickItem*)), this, SLOT(createdItem(int,QQuickItem*))); - disconnect(d->model, SIGNAL(initItem(int,QQuickItem*)), this, SLOT(initItem(int,QQuickItem*))); -// disconnect(d->model, SIGNAL(destroyingItem(QQuickItem*)), this, SLOT(destroyingItem(QQuickItem*))); + disconnect(d->model, SIGNAL(modelUpdated(QQmlChangeSet,bool)), + this, SLOT(modelUpdated(QQmlChangeSet,bool))); + disconnect(d->model, SIGNAL(createdItem(int,QObject*)), this, SLOT(createdItem(int,QObject*))); + disconnect(d->model, SIGNAL(initItem(int,QObject*)), this, SLOT(initItem(int,QObject*))); +// disconnect(d->model, SIGNAL(destroyingItem(QObject*)), this, SLOT(destroyingItem(QObject*))); } d->dataSource = model; QObject *object = qvariant_cast(model); d->dataSourceAsObject = object; d->dataSourceIsObject = object != 0; - QQuickVisualModel *vim = 0; - if (object && (vim = qobject_cast(object))) { + QQmlInstanceModel *vim = 0; + if (object && (vim = qobject_cast(object))) { if (d->ownModel) { delete d->model; d->ownModel = false; @@ -211,20 +213,20 @@ void QQuickRepeater::setModel(const QVariant &model) d->model = vim; } else { if (!d->ownModel) { - d->model = new QQuickVisualDataModel(qmlContext(this)); + d->model = new QQmlDelegateModel(qmlContext(this)); d->ownModel = true; if (isComponentComplete()) - static_cast(d->model)->componentComplete(); + static_cast(d->model)->componentComplete(); } - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) dataModel->setModel(model); } if (d->model) { - connect(d->model, SIGNAL(modelUpdated(QQuickChangeSet,bool)), - this, SLOT(modelUpdated(QQuickChangeSet,bool))); - connect(d->model, SIGNAL(createdItem(int,QQuickItem*)), this, SLOT(createdItem(int,QQuickItem*))); - connect(d->model, SIGNAL(initItem(int,QQuickItem*)), this, SLOT(initItem(int,QQuickItem*))); -// connect(d->model, SIGNAL(destroyingItem(QQuickItem*)), this, SLOT(destroyingItem(QQuickItem*))); + connect(d->model, SIGNAL(modelUpdated(QQmlChangeSet,bool)), + this, SLOT(modelUpdated(QQmlChangeSet,bool))); + connect(d->model, SIGNAL(createdItem(int,QObject*)), this, SLOT(createdItem(int,QObject*))); + connect(d->model, SIGNAL(initItem(int,QObject*)), this, SLOT(initItem(int,QObject*))); +// connect(d->model, SIGNAL(destroyingItem(QObject*)), this, SLOT(destroyingItem(QObject*))); regenerate(); } emit modelChanged(); @@ -268,7 +270,7 @@ QQmlComponent *QQuickRepeater::delegate() const { Q_D(const QQuickRepeater); if (d->model) { - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) return dataModel->delegate(); } @@ -278,18 +280,20 @@ QQmlComponent *QQuickRepeater::delegate() const void QQuickRepeater::setDelegate(QQmlComponent *delegate) { Q_D(QQuickRepeater); - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) if (delegate == dataModel->delegate()) return; if (!d->ownModel) { - d->model = new QQuickVisualDataModel(qmlContext(this)); + d->model = new QQmlDelegateModel(qmlContext(this)); d->ownModel = true; } - if (QQuickVisualDataModel *dataModel = qobject_cast(d->model)) { + + if (QQmlDelegateModel *dataModel = qobject_cast(d->model)) { dataModel->setDelegate(delegate); regenerate(); emit delegateChanged(); + d->delegateValidated = false; } } @@ -324,7 +328,7 @@ void QQuickRepeater::componentComplete() { Q_D(QQuickRepeater); if (d->model && d->ownModel) - static_cast(d->model)->componentComplete(); + static_cast(d->model)->componentComplete(); QQuickItem::componentComplete(); regenerate(); if (d->model && d->model->count()) @@ -349,6 +353,7 @@ void QQuickRepeater::clear() QQuickItem *item = d->deletables.at(i); if (complete) emit itemRemoved(i, item); + item->setParentItem(0); d->model->release(item); } } @@ -381,8 +386,17 @@ void QQuickRepeaterPrivate::createItems() inRequest = true; for (int ii = createFrom; ii < itemCount; ++ii) { if (!deletables.at(ii)) { - QQuickItem *item = model->item(ii, false); + QObject *object = model->object(ii, false); + QQuickItem *item = qmlobject_cast(object); if (!item) { + if (object) { + model->release(object); + if (!delegateValidated) { + delegateValidated = true; + QObject* delegate = q->delegate(); + qmlInfo(delegate ? delegate : q) << q->tr("Delegate must be of Item type"); + } + } createFrom = ii; break; } @@ -406,19 +420,21 @@ void QQuickRepeaterPrivate::createItems() inRequest = false; } -void QQuickRepeater::createdItem(int, QQuickItem *) +void QQuickRepeater::createdItem(int, QObject *) { Q_D(QQuickRepeater); if (!d->inRequest) d->createItems(); } -void QQuickRepeater::initItem(int, QQuickItem *item) +void QQuickRepeater::initItem(int, QObject *object) { - item->setParentItem(parentItem()); + QQuickItem *item = qmlobject_cast(object); + if (item) + item->setParentItem(parentItem()); } -void QQuickRepeater::modelUpdated(const QQuickChangeSet &changeSet, bool reset) +void QQuickRepeater::modelUpdated(const QQmlChangeSet &changeSet, bool reset) { Q_D(QQuickRepeater); @@ -434,7 +450,7 @@ void QQuickRepeater::modelUpdated(const QQuickChangeSet &changeSet, bool reset) int difference = 0; QHash > > moved; - foreach (const QQuickChangeSet::Remove &remove, changeSet.removes()) { + foreach (const QQmlChangeSet::Remove &remove, changeSet.removes()) { int index = qMin(remove.index, d->deletables.count()); int count = qMin(remove.index + remove.count, d->deletables.count()) - index; if (remove.isMove()) { @@ -446,8 +462,10 @@ void QQuickRepeater::modelUpdated(const QQuickChangeSet &changeSet, bool reset) QQuickItem *item = d->deletables.at(index); d->deletables.remove(index); emit itemRemoved(index, item); - if (item) + if (item) { + item->setParentItem(0); d->model->release(item); + } --d->itemCount; } @@ -455,7 +473,7 @@ void QQuickRepeater::modelUpdated(const QQuickChangeSet &changeSet, bool reset) } d->createFrom = -1; - foreach (const QQuickChangeSet::Insert &insert, changeSet.inserts()) { + foreach (const QQmlChangeSet::Insert &insert, changeSet.inserts()) { int index = qMin(insert.index, d->deletables.count()); if (insert.isMove()) { QVector > items = moved.value(insert.moveId); diff --git a/src/quick/items/qquickrepeater_p.h b/src/quick/items/qquickrepeater_p.h index 1715369..8698b82 100644 --- a/src/quick/items/qquickrepeater_p.h +++ b/src/quick/items/qquickrepeater_p.h @@ -48,7 +48,7 @@ QT_BEGIN_HEADER QT_BEGIN_NAMESPACE -class QQuickChangeSet; +class QQmlChangeSet; class QQuickRepeaterPrivate; class Q_AUTOTEST_EXPORT QQuickRepeater : public QQuickItem @@ -91,9 +91,9 @@ protected: void itemChange(ItemChange change, const ItemChangeData &value); private Q_SLOTS: - void createdItem(int index, QQuickItem *item); - void initItem(int, QQuickItem *item); - void modelUpdated(const QQuickChangeSet &changeSet, bool reset); + void createdItem(int index, QObject *item); + void initItem(int, QObject *item); + void modelUpdated(const QQmlChangeSet &changeSet, bool reset); private: Q_DISABLE_COPY(QQuickRepeater) diff --git a/src/quick/items/qquickrepeater_p_p.h b/src/quick/items/qquickrepeater_p_p.h index a187aea..f220eb4 100644 --- a/src/quick/items/qquickrepeater_p_p.h +++ b/src/quick/items/qquickrepeater_p_p.h @@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE class QQmlContext; -class QQuickVisualModel; +class QQmlInstanceModel; class QQuickRepeaterPrivate : public QQuickItemPrivate { Q_DECLARE_PUBLIC(QQuickRepeater) @@ -73,12 +73,13 @@ public: private: void createItems(); - QQuickVisualModel *model; + QQmlInstanceModel *model; QVariant dataSource; QQmlGuard dataSourceAsObject; bool ownModel : 1; bool inRequest : 1; bool dataSourceIsObject : 1; + bool delegateValidated : 1; int itemCount; int createFrom; diff --git a/src/quick/util/qquickutilmodule.cpp b/src/quick/util/qquickutilmodule.cpp index 5591f04..a45ec4e 100644 --- a/src/quick/util/qquickutilmodule.cpp +++ b/src/quick/util/qquickutilmodule.cpp @@ -45,7 +45,6 @@ #include "qquickbehavior_p.h" #include "qquicksmoothedanimation_p.h" #include "qquickfontloader_p.h" -#include "qquickpackage_p.h" #include "qquickpropertychanges_p.h" #include "qquickspringanimation_p.h" #include "qquickstategroup_p.h" @@ -73,7 +72,6 @@ void QQuickUtilModule::defineModule() qmlRegisterType("QtQuick",2,0,"SmoothedAnimation"); qmlRegisterType("QtQuick",2,0,"FontLoader"); qmlRegisterType("QtQuick",2,0,"NumberAnimation"); - qmlRegisterType("QtQuick",2,0,"Package"); qmlRegisterType("QtQuick",2,0,"ParallelAnimation"); qmlRegisterType("QtQuick",2,0,"PauseAnimation"); qmlRegisterType("QtQuick",2,0,"PropertyAction"); diff --git a/src/quick/util/util.pri b/src/quick/util/util.pri index 7a56a95..7f77f7f 100644 --- a/src/quick/util/util.pri +++ b/src/quick/util/util.pri @@ -1,7 +1,6 @@ SOURCES += \ $$PWD/qquickapplication.cpp\ $$PWD/qquickutilmodule.cpp\ - $$PWD/qquickpackage.cpp \ $$PWD/qquickanimation.cpp \ $$PWD/qquicksystempalette.cpp \ $$PWD/qquickspringanimation.cpp \ @@ -13,15 +12,12 @@ SOURCES += \ $$PWD/qquickpropertychanges.cpp \ $$PWD/qquickstategroup.cpp \ $$PWD/qquicktransition.cpp \ - $$PWD/qquicklistaccessor.cpp \ $$PWD/qquicktimeline.cpp \ $$PWD/qquickpixmapcache.cpp \ $$PWD/qquickbehavior.cpp \ $$PWD/qquickfontloader.cpp \ $$PWD/qquickstyledtext.cpp \ $$PWD/qquickpath.cpp \ - $$PWD/qquickchangeset.cpp \ - $$PWD/qquicklistcompositor.cpp \ $$PWD/qquickpathinterpolator.cpp \ $$PWD/qquickimageprovider.cpp \ $$PWD/qquicksvgparser.cpp \ @@ -31,7 +27,6 @@ SOURCES += \ HEADERS += \ $$PWD/qquickapplication_p.h\ $$PWD/qquickutilmodule_p.h\ - $$PWD/qquickpackage_p.h \ $$PWD/qquickanimation_p.h \ $$PWD/qquickanimation_p_p.h \ $$PWD/qquicksystempalette_p.h \ @@ -46,7 +41,6 @@ HEADERS += \ $$PWD/qquicktransitionmanager_p_p.h \ $$PWD/qquickstategroup_p.h \ $$PWD/qquicktransition_p.h \ - $$PWD/qquicklistaccessor_p.h \ $$PWD/qquicktimeline_p_p.h \ $$PWD/qquickpixmapcache_p.h \ $$PWD/qquickbehavior_p.h \ @@ -54,8 +48,6 @@ HEADERS += \ $$PWD/qquickstyledtext_p.h \ $$PWD/qquickpath_p.h \ $$PWD/qquickpath_p_p.h \ - $$PWD/qquickchangeset_p.h \ - $$PWD/qquicklistcompositor_p.h \ $$PWD/qquickpathinterpolator_p.h \ $$PWD/qquickimageprovider.h \ $$PWD/qquicksvgparser_p.h \ diff --git a/tests/auto/qml/qml.pro b/tests/auto/qml/qml.pro index 5d62b91..da705ce 100644 --- a/tests/auto/qml/qml.pro +++ b/tests/auto/qml/qml.pro @@ -42,9 +42,9 @@ PRIVATETESTS += \ qqmlvaluetypes \ qqmlvaluetypeproviders \ qqmlbinding \ - qquickchangeset \ + qqmlchangeset \ qqmlconnections \ - qquicklistcompositor \ + qqmllistcompositor \ qqmllistmodel \ qqmllistmodelworkerscript \ qquickworkerscript \ diff --git a/tests/auto/qml/qqmlchangeset/qqmlchangeset.pro b/tests/auto/qml/qqmlchangeset/qqmlchangeset.pro new file mode 100644 index 0000000..b65e58c --- /dev/null +++ b/tests/auto/qml/qqmlchangeset/qqmlchangeset.pro @@ -0,0 +1,10 @@ +CONFIG += testcase +TARGET = tst_qqmlhangeset +macx:CONFIG -= app_bundle + +SOURCES += tst_qqmlchangeset.cpp + +CONFIG += parallel_test + +QT += core-private gui-private qml-private testlib +DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/qml/qquickchangeset/tst_qquickchangeset.cpp b/tests/auto/qml/qqmlchangeset/tst_qqmlchangeset.cpp similarity index 96% rename from tests/auto/qml/qquickchangeset/tst_qquickchangeset.cpp rename to tests/auto/qml/qqmlchangeset/tst_qqmlchangeset.cpp index 77286b0..0f09de2 100644 --- a/tests/auto/qml/qquickchangeset/tst_qquickchangeset.cpp +++ b/tests/auto/qml/qqmlchangeset/tst_qqmlchangeset.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ #include -#include +#include -class tst_qquickchangeset : public QObject +class tst_qqmlchangeset : public QObject { Q_OBJECT private slots: @@ -140,7 +140,7 @@ public: bool applyChanges(QVector &list, const QVector &changes) { - QHash removedValues; + QHash removedValues; foreach (const Signal &signal, changes) { if (signal.isInsert()) { if (signal.index < 0 || signal.index > list.count()) { @@ -148,7 +148,7 @@ public: return false; } if (signal.moveId != -1) { - QQuickChangeSet::Insert insert(signal.index, signal.count, signal.moveId, signal.offset); + QQmlChangeSet::Insert insert(signal.index, signal.count, signal.moveId, signal.offset); for (int i = insert.start(); i < insert.end(); ++i) list.insert(i, removedValues.take(insert.moveKey(i))); } else { @@ -160,7 +160,7 @@ public: return false; } if (signal.moveId != -1) { - QQuickChangeSet::Remove remove(signal.index, signal.count, signal.moveId, signal.offset); + QQmlChangeSet::Remove remove(signal.index, signal.count, signal.moveId, signal.offset); for (int i = remove.start(); i < remove.end(); ++i) removedValues.insert(remove.moveKey(i), list.at(i)); } @@ -184,7 +184,7 @@ public: }; -bool operator ==(const tst_qquickchangeset::Signal &left, const tst_qquickchangeset::Signal &right) +bool operator ==(const tst_qqmlchangeset::Signal &left, const tst_qqmlchangeset::Signal &right) { return left.index == right.index && left.count == right.count @@ -194,13 +194,13 @@ bool operator ==(const tst_qquickchangeset::Signal &left, const tst_qquickchange } QT_BEGIN_NAMESPACE -bool operator ==(const QQuickChangeSet::Change &left, const QQuickChangeSet::Change &right) +bool operator ==(const QQmlChangeSet::Change &left, const QQmlChangeSet::Change &right) { return left.index == right.index && left.count == right.count && left.moveId == right.moveId; } QT_END_NAMESPACE -QDebug operator <<(QDebug debug, const tst_qquickchangeset::Signal &signal) +QDebug operator <<(QDebug debug, const tst_qqmlchangeset::Signal &signal) { if (signal.isInsert() && signal.moveId == -1) debug.nospace() << "Insert(" << signal.index << "," << signal.count << ")"; @@ -217,8 +217,8 @@ QDebug operator <<(QDebug debug, const tst_qquickchangeset::Signal &signal) return debug; } -Q_DECLARE_METATYPE(tst_qquickchangeset::SignalList) -Q_DECLARE_METATYPE(tst_qquickchangeset::SignalListList) +Q_DECLARE_METATYPE(tst_qqmlchangeset::SignalList) +Q_DECLARE_METATYPE(tst_qqmlchangeset::SignalListList) #if 0 # define VERIFY_EXPECTED_OUTPUT \ @@ -256,7 +256,7 @@ Q_DECLARE_METATYPE(tst_qquickchangeset::SignalListList) } #endif -void tst_qquickchangeset::sequence_data() +void tst_qqmlchangeset::sequence_data() { QTest::addColumn("input"); QTest::addColumn("output"); @@ -1163,12 +1163,12 @@ void tst_qquickchangeset::sequence_data() << Insert(24,1,5,9) << Insert(25,2) << Insert(27,2)); } -void tst_qquickchangeset::sequence() +void tst_qqmlchangeset::sequence() { QFETCH(SignalList, input); QFETCH(SignalList, output); - QQuickChangeSet set; + QQmlChangeSet set; foreach (const Signal &signal, input) { if (signal.isRemove()) @@ -1182,18 +1182,18 @@ void tst_qquickchangeset::sequence() } SignalList changes; - foreach (const QQuickChangeSet::Remove &remove, set.removes()) + foreach (const QQmlChangeSet::Remove &remove, set.removes()) changes << Remove(remove.index, remove.count, remove.moveId, remove.offset); - foreach (const QQuickChangeSet::Insert &insert, set.inserts()) + foreach (const QQmlChangeSet::Insert &insert, set.inserts()) changes << Insert(insert.index, insert.count, insert.moveId, insert.offset); - foreach (const QQuickChangeSet::Change &change, set.changes()) + foreach (const QQmlChangeSet::Change &change, set.changes()) changes << Change(change.index, change.count); VERIFY_EXPECTED_OUTPUT QCOMPARE(changes, output); } -void tst_qquickchangeset::apply_data() +void tst_qqmlchangeset::apply_data() { QTest::addColumn("input"); @@ -1297,15 +1297,15 @@ void tst_qquickchangeset::apply_data() << (SignalList() << Move(38,23,1,3) << Move(38,31,0,4) << Remove(26,11) << Move(5,7,18,5) << Move(19,0,8,6))); } -void tst_qquickchangeset::apply() +void tst_qqmlchangeset::apply() { QFETCH(SignalListList, input); - QQuickChangeSet set; - QQuickChangeSet linearSet; + QQmlChangeSet set; + QQmlChangeSet linearSet; foreach (const SignalList &list, input) { - QQuickChangeSet intermediateSet; + QQmlChangeSet intermediateSet; foreach (const Signal &signal, list) { if (signal.isRemove()) { intermediateSet.remove(signal.index, signal.count); @@ -1322,15 +1322,15 @@ void tst_qquickchangeset::apply() } SignalList changes; - foreach (const QQuickChangeSet::Remove &remove, set.removes()) + foreach (const QQmlChangeSet::Remove &remove, set.removes()) changes << Remove(remove.index, remove.count, remove.moveId, remove.offset); - foreach (const QQuickChangeSet::Insert &insert, set.inserts()) + foreach (const QQmlChangeSet::Insert &insert, set.inserts()) changes << Insert(insert.index, insert.count, insert.moveId, insert.offset); SignalList linearChanges; - foreach (const QQuickChangeSet::Remove &remove, linearSet.removes()) + foreach (const QQmlChangeSet::Remove &remove, linearSet.removes()) linearChanges << Remove(remove.index, remove.count, remove.moveId, remove.offset); - foreach (const QQuickChangeSet::Insert &insert, linearSet.inserts()) + foreach (const QQmlChangeSet::Insert &insert, linearSet.inserts()) linearChanges << Insert(insert.index, insert.count, insert.moveId, insert.offset); // The output in the failing tests isn't incorrect, merely sub-optimal. @@ -1343,7 +1343,7 @@ void tst_qquickchangeset::apply() QCOMPARE(changes, linearChanges); } -void tst_qquickchangeset::removeConsecutive_data() +void tst_qqmlchangeset::removeConsecutive_data() { QTest::addColumn("input"); QTest::addColumn("output"); @@ -1359,22 +1359,22 @@ void tst_qquickchangeset::removeConsecutive_data() << (SignalList() << Remove(0,2) << Remove(0,1,0,0) << Remove(0,5)); } -void tst_qquickchangeset::removeConsecutive() +void tst_qqmlchangeset::removeConsecutive() { QFETCH(SignalList, input); QFETCH(SignalList, output); - QVector removes; + QVector removes; foreach (const Signal &signal, input) { QVERIFY(signal.isRemove()); - removes.append(QQuickChangeSet::Remove(signal.index, signal.count, signal.moveId, signal.offset)); + removes.append(QQmlChangeSet::Remove(signal.index, signal.count, signal.moveId, signal.offset)); } - QQuickChangeSet set; + QQmlChangeSet set; set.remove(removes); SignalList changes; - foreach (const QQuickChangeSet::Remove &remove, set.removes()) + foreach (const QQmlChangeSet::Remove &remove, set.removes()) changes << Remove(remove.index, remove.count, remove.moveId, remove.offset); QVERIFY(set.inserts().isEmpty()); QVERIFY(set.changes().isEmpty()); @@ -1383,7 +1383,7 @@ void tst_qquickchangeset::removeConsecutive() QCOMPARE(changes, output); } -void tst_qquickchangeset::insertConsecutive_data() +void tst_qqmlchangeset::insertConsecutive_data() { QTest::addColumn("input"); QTest::addColumn("output"); @@ -1399,22 +1399,22 @@ void tst_qquickchangeset::insertConsecutive_data() << (SignalList() << Insert(0,2) << Insert(2,1,0,0) << Insert(3,5)); } -void tst_qquickchangeset::insertConsecutive() +void tst_qqmlchangeset::insertConsecutive() { QFETCH(SignalList, input); QFETCH(SignalList, output); - QVector inserts; + QVector inserts; foreach (const Signal &signal, input) { QVERIFY(signal.isInsert()); - inserts.append(QQuickChangeSet::Insert(signal.index, signal.count, signal.moveId, signal.offset)); + inserts.append(QQmlChangeSet::Insert(signal.index, signal.count, signal.moveId, signal.offset)); } - QQuickChangeSet set; + QQmlChangeSet set; set.insert(inserts); SignalList changes; - foreach (const QQuickChangeSet::Insert &insert, set.inserts()) + foreach (const QQmlChangeSet::Insert &insert, set.inserts()) changes << Insert(insert.index, insert.count, insert.moveId, insert.offset); QVERIFY(set.removes().isEmpty()); QVERIFY(set.changes().isEmpty()); @@ -1423,9 +1423,9 @@ void tst_qquickchangeset::insertConsecutive() QCOMPARE(changes, output); } -void tst_qquickchangeset::copy() +void tst_qqmlchangeset::copy() { - QQuickChangeSet changeSet; + QQmlChangeSet changeSet; changeSet.remove(0, 12); changeSet.remove(5, 4); changeSet.insert(3, 9); @@ -1433,9 +1433,9 @@ void tst_qquickchangeset::copy() changeSet.change(24, 8); changeSet.move(3, 5, 9, 0); - QQuickChangeSet copy(changeSet); + QQmlChangeSet copy(changeSet); - QQuickChangeSet assign; + QQmlChangeSet assign; assign = changeSet; copy.move(4, 2, 5, 1); @@ -1453,27 +1453,27 @@ void tst_qquickchangeset::copy() QCOMPARE(assign.difference(), changeSet.difference()); } -void tst_qquickchangeset::debug() +void tst_qqmlchangeset::debug() { - QQuickChangeSet changeSet; + QQmlChangeSet changeSet; changeSet.remove(0, 12); changeSet.remove(5, 4); changeSet.insert(3, 9); changeSet.insert(15, 2); changeSet.change(24, 8); - QTest::ignoreMessage(QtDebugMsg, "QQuickChangeSet(Remove(0,12) Remove(5,4) Insert(3,9) Insert(15,2) Change(24,8) )"); + QTest::ignoreMessage(QtDebugMsg, "QQmlChangeSet(Remove(0,12) Remove(5,4) Insert(3,9) Insert(15,2) Change(24,8) )"); qDebug() << changeSet; changeSet.clear(); - QTest::ignoreMessage(QtDebugMsg, "QQuickChangeSet(Remove(12,4,0,0) Insert(5,4,0,0) )"); + QTest::ignoreMessage(QtDebugMsg, "QQmlChangeSet(Remove(12,4,0,0) Insert(5,4,0,0) )"); changeSet.move(12, 5, 4, 0); qDebug() << changeSet; } -void tst_qquickchangeset::random_data() +void tst_qqmlchangeset::random_data() { QTest::addColumn("seed"); QTest::addColumn("combinations"); @@ -1484,7 +1484,7 @@ void tst_qquickchangeset::random_data() QTest::newRow("3*5") << 32 << 3 << 5; } -void tst_qquickchangeset::random() +void tst_qqmlchangeset::random() { QFETCH(int, seed); QFETCH(int, combinations); @@ -1494,14 +1494,14 @@ void tst_qquickchangeset::random() int failures = 0; for (int i = 0; i < 20000; ++i) { - QQuickChangeSet accumulatedSet; + QQmlChangeSet accumulatedSet; SignalList input; int modelCount = 40; int moveCount = 0; for (int j = 0; j < combinations; ++j) { - QQuickChangeSet set; + QQmlChangeSet set; for (int k = 0; k < depth; ++k) { switch (-(qrand() % 3)) { case InsertOp: { @@ -1537,9 +1537,9 @@ void tst_qquickchangeset::random() } SignalList output; - foreach (const QQuickChangeSet::Remove &remove, accumulatedSet.removes()) + foreach (const QQmlChangeSet::Remove &remove, accumulatedSet.removes()) output << Remove(remove.index, remove.count, remove.moveId, remove.offset); - foreach (const QQuickChangeSet::Insert &insert, accumulatedSet.inserts()) + foreach (const QQmlChangeSet::Insert &insert, accumulatedSet.inserts()) output << Insert(insert.index, insert.count, insert.moveId, insert.offset); QVector inputList; @@ -1569,6 +1569,6 @@ void tst_qquickchangeset::random() QCOMPARE(failures, 0); } -QTEST_MAIN(tst_qquickchangeset) +QTEST_MAIN(tst_qqmlchangeset) -#include "tst_qquickchangeset.moc" +#include "tst_qqmlchangeset.moc" diff --git a/tests/auto/qml/qquickchangeset/qquickchangeset.pro b/tests/auto/qml/qqmllistcompositor/qqmllistcompositor.pro similarity index 71% rename from tests/auto/qml/qquickchangeset/qquickchangeset.pro rename to tests/auto/qml/qqmllistcompositor/qqmllistcompositor.pro index fd8c87b..e6c9dc3 100644 --- a/tests/auto/qml/qquickchangeset/qquickchangeset.pro +++ b/tests/auto/qml/qqmllistcompositor/qqmllistcompositor.pro @@ -1,8 +1,8 @@ CONFIG += testcase -TARGET = tst_qquickchangeset +TARGET = tst_qqmllistcompositor macx:CONFIG -= app_bundle -SOURCES += tst_qquickchangeset.cpp +SOURCES += tst_qqmllistcompositor.cpp CONFIG += parallel_test diff --git a/tests/auto/qml/qquicklistcompositor/tst_qquicklistcompositor.cpp b/tests/auto/qml/qqmllistcompositor/tst_qqmllistcompositor.cpp similarity index 96% rename from tests/auto/qml/qquicklistcompositor/tst_qquicklistcompositor.cpp rename to tests/auto/qml/qqmllistcompositor/tst_qqmllistcompositor.cpp index 5be501c..d5e85f4 100644 --- a/tests/auto/qml/qquicklistcompositor/tst_qquicklistcompositor.cpp +++ b/tests/auto/qml/qqmllistcompositor/tst_qqmllistcompositor.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ #include -#include +#include template int lengthOf(const T (&)[N]) { return N; } -typedef QQuickListCompositor C; +typedef QQmlListCompositor C; struct Range { @@ -70,9 +70,9 @@ template struct Array typedef Array IndexArray; typedef Array ListArray; -typedef QVector RemoveList; -typedef QVector InsertList; -typedef QVector ChangeList; +typedef QVector RemoveList; +typedef QVector InsertList; +typedef QVector ChangeList; typedef QVector RangeList; @@ -102,7 +102,7 @@ QT_END_NAMESPACE static const C::Group Visible = C::Group(2); static const C::Group Selection = C::Group(3); -class tst_qquicklistcompositor : public QObject +class tst_qqmllistcompositor : public QObject { Q_OBJECT @@ -174,7 +174,7 @@ private slots: void groupDebug(); }; -void tst_qquicklistcompositor::find_data() +void tst_qqmllistcompositor::find_data() { QTest::addColumn("ranges"); QTest::addColumn("startGroup"); @@ -201,7 +201,7 @@ void tst_qquicklistcompositor::find_data() << uint(C::PrependFlag | SelectionFlag | C::DefaultFlag | C::CacheFlag) << 0; } -void tst_qquicklistcompositor::find() +void tst_qqmllistcompositor::find() { QFETCH(RangeList, ranges); QFETCH(C::Group, startGroup); @@ -215,7 +215,7 @@ void tst_qquicklistcompositor::find() QFETCH(uint, rangeFlags); QFETCH(int, rangeIndex); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -224,7 +224,7 @@ void tst_qquicklistcompositor::find() compositor.find(startGroup, startIndex); - QQuickListCompositor::iterator it = compositor.find(group, index); + QQmlListCompositor::iterator it = compositor.find(group, index); QCOMPARE(it.index[C::Cache], cacheIndex); QCOMPARE(it.index[C::Default], defaultIndex); QCOMPARE(it.index[Visible], visibleIndex); @@ -233,7 +233,7 @@ void tst_qquicklistcompositor::find() QCOMPARE(it->index, rangeIndex); } -void tst_qquicklistcompositor::findInsertPosition_data() +void tst_qqmllistcompositor::findInsertPosition_data() { QTest::addColumn("ranges"); QTest::addColumn("group"); @@ -265,7 +265,7 @@ void tst_qquicklistcompositor::findInsertPosition_data() << uint(0) << 0; } -void tst_qquicklistcompositor::findInsertPosition() +void tst_qqmllistcompositor::findInsertPosition() { QFETCH(RangeList, ranges); QFETCH(C::Group, group); @@ -277,14 +277,14 @@ void tst_qquicklistcompositor::findInsertPosition() QFETCH(uint, rangeFlags); QFETCH(int, rangeIndex); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); foreach (const Range &range, ranges) compositor.append(range.list, range.index, range.count, range.flags); - QQuickListCompositor::insert_iterator it = compositor.findInsertPosition(group, index); + QQmlListCompositor::insert_iterator it = compositor.findInsertPosition(group, index); QCOMPARE(it.index[C::Cache], cacheIndex); QCOMPARE(it.index[C::Default], defaultIndex); @@ -294,9 +294,9 @@ void tst_qquicklistcompositor::findInsertPosition() QCOMPARE(it->index, rangeIndex); } -void tst_qquicklistcompositor::insert() +void tst_qqmllistcompositor::insert() { - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -383,7 +383,7 @@ void tst_qquicklistcompositor::insert() } } -void tst_qquicklistcompositor::clearFlags_data() +void tst_qqmllistcompositor::clearFlags_data() { QTest::addColumn("ranges"); QTest::addColumn("group"); @@ -518,7 +518,7 @@ void tst_qquicklistcompositor::clearFlags_data() } } -void tst_qquicklistcompositor::clearFlags() +void tst_qqmllistcompositor::clearFlags() { QFETCH(RangeList, ranges); QFETCH(C::Group, group); @@ -535,7 +535,7 @@ void tst_qquicklistcompositor::clearFlags() QFETCH(IndexArray, selectionIndexes); QFETCH(ListArray, selectionLists); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -577,7 +577,7 @@ void tst_qquicklistcompositor::clearFlags() } } -void tst_qquicklistcompositor::setFlags_data() +void tst_qqmllistcompositor::setFlags_data() { QTest::addColumn("ranges"); QTest::addColumn("group"); @@ -700,7 +700,7 @@ void tst_qquicklistcompositor::setFlags_data() } } -void tst_qquicklistcompositor::setFlags() +void tst_qqmllistcompositor::setFlags() { QFETCH(RangeList, ranges); QFETCH(C::Group, group); @@ -717,7 +717,7 @@ void tst_qquicklistcompositor::setFlags() QFETCH(IndexArray, selectionIndexes); QFETCH(ListArray, selectionLists); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -759,7 +759,7 @@ void tst_qquicklistcompositor::setFlags() } } -void tst_qquicklistcompositor::move_data() +void tst_qqmllistcompositor::move_data() { QTest::addColumn("ranges"); QTest::addColumn("fromGroup"); @@ -985,7 +985,7 @@ void tst_qquicklistcompositor::move_data() } } -void tst_qquicklistcompositor::move() +void tst_qqmllistcompositor::move() { QFETCH(RangeList, ranges); QFETCH(C::Group, fromGroup); @@ -1004,7 +1004,7 @@ void tst_qquicklistcompositor::move() QFETCH(IndexArray, selectionIndexes); QFETCH(ListArray, selectionLists); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -1048,11 +1048,11 @@ void tst_qquicklistcompositor::move() } } -void tst_qquicklistcompositor::moveFromEnd() +void tst_qqmllistcompositor::moveFromEnd() { int listA; void *a = &listA; - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.append(a, 0, 1, C::AppendFlag | C::PrependFlag | C::DefaultFlag); // Moving an item anchors it to that position. @@ -1074,9 +1074,9 @@ void tst_qquicklistcompositor::moveFromEnd() QCOMPARE(it.modelIndex(), 0); } -void tst_qquicklistcompositor::clear() +void tst_qqmllistcompositor::clear() { - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -1097,7 +1097,7 @@ void tst_qquicklistcompositor::clear() QCOMPARE(compositor.count(C::Cache), 0); } -void tst_qquicklistcompositor::listItemsInserted_data() +void tst_qqmllistcompositor::listItemsInserted_data() { QTest::addColumn("ranges"); QTest::addColumn("list"); @@ -1226,7 +1226,7 @@ void tst_qquicklistcompositor::listItemsInserted_data() } } -void tst_qquicklistcompositor::listItemsInserted() +void tst_qqmllistcompositor::listItemsInserted() { QFETCH(RangeList, ranges); QFETCH(void *, list); @@ -1238,7 +1238,7 @@ void tst_qquicklistcompositor::listItemsInserted() QFETCH(IndexArray, visibleIndexes); QFETCH(IndexArray, selectionIndexes); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -1276,7 +1276,7 @@ void tst_qquicklistcompositor::listItemsInserted() } } -void tst_qquicklistcompositor::listItemsRemoved_data() +void tst_qqmllistcompositor::listItemsRemoved_data() { QTest::addColumn("ranges"); QTest::addColumn("list"); @@ -1362,7 +1362,7 @@ void tst_qquicklistcompositor::listItemsRemoved_data() } } -void tst_qquicklistcompositor::listItemsRemoved() +void tst_qqmllistcompositor::listItemsRemoved() { QFETCH(RangeList, ranges); QFETCH(void *, list); @@ -1374,7 +1374,7 @@ void tst_qquicklistcompositor::listItemsRemoved() QFETCH(IndexArray, visibleIndexes); QFETCH(IndexArray, selectionIndexes); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -1412,7 +1412,7 @@ void tst_qquicklistcompositor::listItemsRemoved() } } -void tst_qquicklistcompositor::listItemsMoved_data() +void tst_qqmllistcompositor::listItemsMoved_data() { QTest::addColumn("ranges"); QTest::addColumn("list"); @@ -1554,7 +1554,7 @@ void tst_qquicklistcompositor::listItemsMoved_data() } } -void tst_qquicklistcompositor::listItemsMoved() +void tst_qqmllistcompositor::listItemsMoved() { QFETCH(RangeList, ranges); QFETCH(void *, list); @@ -1568,7 +1568,7 @@ void tst_qquicklistcompositor::listItemsMoved() QFETCH(IndexArray, visibleIndexes); QFETCH(IndexArray, selectionIndexes); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -1608,7 +1608,7 @@ void tst_qquicklistcompositor::listItemsMoved() } } -void tst_qquicklistcompositor::listItemsChanged_data() +void tst_qqmllistcompositor::listItemsChanged_data() { QTest::addColumn("ranges"); QTest::addColumn("list"); @@ -1640,7 +1640,7 @@ void tst_qquicklistcompositor::listItemsChanged_data() << Change(0, 0, 3, 6, 2, C::DefaultFlag | C::CacheFlag)); } -void tst_qquicklistcompositor::listItemsChanged() +void tst_qqmllistcompositor::listItemsChanged() { QFETCH(RangeList, ranges); QFETCH(void *, list); @@ -1648,7 +1648,7 @@ void tst_qquicklistcompositor::listItemsChanged() QFETCH(int, count); QFETCH(ChangeList, expectedChanges); - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); @@ -1661,12 +1661,12 @@ void tst_qquicklistcompositor::listItemsChanged() QCOMPARE(changes, expectedChanges); } -void tst_qquicklistcompositor::compositorDebug() +void tst_qqmllistcompositor::compositorDebug() { void *a = (void *)0xa0; void *b = (void *)0xb0; - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); compositor.append(a, 0, 2, C::PrependFlag | C::DefaultFlag); @@ -1676,7 +1676,7 @@ void tst_qquicklistcompositor::compositorDebug() compositor.append(a, 2, 3, C::DefaultFlag); QTest::ignoreMessage(QtDebugMsg, - "QQuickListCompositor(00110\n" + "QQmlListCompositor(00110\n" " 0 0 0 0 Range(0xa0 0 2 00P000000000D0\n" " 0 0 2 0 Range(0xa0 2 3 00P00000000000\n" " 0 0 2 0 Range(0xa0 5 2 0AP000000000D0\n" @@ -1687,7 +1687,7 @@ void tst_qquicklistcompositor::compositorDebug() compositor.setFlags(C::Default, 5, 2, SelectionFlag); QTest::ignoreMessage(QtDebugMsg, - "QQuickListCompositor(20110\n" + "QQmlListCompositor(20110\n" " 0 0 0 0 Range(0xa0 0 2 00P000000000D0\n" " 0 0 2 0 Range(0xa0 2 3 00P00000000000\n" " 0 0 2 0 Range(0xa0 5 2 0AP000000000D0\n" @@ -1698,12 +1698,12 @@ void tst_qquicklistcompositor::compositorDebug() qDebug() << compositor; } -void tst_qquicklistcompositor::changeDebug() +void tst_qqmllistcompositor::changeDebug() { void *a = (void *)0xa0; void *b = (void *)0xb0; - QQuickListCompositor compositor; + QQmlListCompositor compositor; compositor.setGroupCount(4); compositor.setDefaultGroups(VisibleFlag | C::DefaultFlag); compositor.append(a, 0, 2, C::PrependFlag | C::DefaultFlag); @@ -1716,14 +1716,14 @@ void tst_qquicklistcompositor::changeDebug() QTest::ignoreMessage(QtDebugMsg, "Change(-1 2 000000010D0 2 0 7 0)"); - qDebug() << QQuickListCompositor::Change(compositor.find(C::Default, 7), 2, SelectionFlag | C::DefaultFlag); + qDebug() << QQmlListCompositor::Change(compositor.find(C::Default, 7), 2, SelectionFlag | C::DefaultFlag); QTest::ignoreMessage(QtDebugMsg, "Remove(9 4 000000000D0 10 0)"); - qDebug() << QQuickListCompositor::Remove(compositor.find(C::Default, 10), 4, C::DefaultFlag, 9); + qDebug() << QQmlListCompositor::Remove(compositor.find(C::Default, 10), 4, C::DefaultFlag, 9); QTest::ignoreMessage(QtDebugMsg, "Insert(9 4 000000000D0 3 0)"); - qDebug() << QQuickListCompositor::Insert(compositor.find(C::Default, 3), 4, C::DefaultFlag, 9); + qDebug() << QQmlListCompositor::Insert(compositor.find(C::Default, 3), 4, C::DefaultFlag, 9); } -void tst_qquicklistcompositor::groupDebug() +void tst_qqmllistcompositor::groupDebug() { QTest::ignoreMessage(QtDebugMsg, "Default "); qDebug() << C::Default; @@ -1733,8 +1733,8 @@ void tst_qquicklistcompositor::groupDebug() qDebug() << Selection; } -QTEST_MAIN(tst_qquicklistcompositor) +QTEST_MAIN(tst_qqmllistcompositor) -#include "tst_qquicklistcompositor.moc" +#include "tst_qqmllistcompositor.moc" diff --git a/tests/auto/qml/qquicklistcompositor/qquicklistcompositor.pro b/tests/auto/qml/qquicklistcompositor/qquicklistcompositor.pro deleted file mode 100644 index 9d1d2bd..0000000 --- a/tests/auto/qml/qquicklistcompositor/qquicklistcompositor.pro +++ /dev/null @@ -1,10 +0,0 @@ -CONFIG += testcase -TARGET = tst_qquicklistcompositor -macx:CONFIG -= app_bundle - -SOURCES += tst_qquicklistcompositor.cpp - -CONFIG += parallel_test - -QT += core-private gui-private qml-private quick-private testlib -DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 diff --git a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp index aee4e0d..5c0bbb1 100644 --- a/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp +++ b/tests/auto/quick/qquickgridview/tst_qquickgridview.cpp @@ -51,7 +51,6 @@ #include #include #include -#include #include #include "../../shared/util.h" #include "../shared/viewtestutil.h" diff --git a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp index a1b2536..9bcf9d6 100644 --- a/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp +++ b/tests/auto/quick/qquicklistview/tst_qquicklistview.cpp @@ -48,7 +48,7 @@ #include #include #include -#include +#include #include #include "../../shared/util.h" #include "../shared/viewtestutil.h" @@ -2767,7 +2767,7 @@ void tst_QQuickListView::itemList() QQuickItem *contentItem = listview->contentItem(); QTRY_VERIFY(contentItem != 0); - QQuickVisualItemModel *model = window->rootObject()->findChild("itemModel"); + QQmlObjectModel *model = window->rootObject()->findChild("itemModel"); QTRY_VERIFY(model != 0); QTRY_VERIFY(model->count() == 3); @@ -2808,7 +2808,7 @@ void tst_QQuickListView::itemListFlicker() QQuickItem *contentItem = listview->contentItem(); QTRY_VERIFY(contentItem != 0); - QQuickVisualItemModel *model = window->rootObject()->findChild("itemModel"); + QQmlObjectModel *model = window->rootObject()->findChild("itemModel"); QTRY_VERIFY(model != 0); QTRY_VERIFY(model->count() == 3); @@ -4605,7 +4605,7 @@ void tst_QQuickListView::rightToLeft() QTRY_COMPARE(QQuickItemPrivate::get(listview)->polishScheduled, false); - QQuickVisualItemModel *model = window->rootObject()->findChild("itemModel"); + QQmlObjectModel *model = window->rootObject()->findChild("itemModel"); QTRY_VERIFY(model != 0); QTRY_VERIFY(model->count() == 3); diff --git a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp index 74c5578..f97b0f3 100644 --- a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp +++ b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp @@ -52,9 +52,9 @@ #include #include #include -#include +#include #include -#include +#include #include #include #include @@ -360,21 +360,21 @@ public: int indexCreated; public Q_SLOTS: - void initItem(int index, QQuickItem *item) + void initItem(int index, QObject *item) { - itemInitialized = item; + itemInitialized = qobject_cast(item); indexInitialized = index; } - void createdItem(int index, QQuickItem *item) + void createdItem(int index, QObject *item) { - itemCreated = item; + itemCreated = qobject_cast(item); indexCreated = index; } - void destroyingItem(QQuickItem *item) + void destroyingItem(QObject *item) { - itemDestroyed = item; + itemDestroyed = qobject_cast(item); } }; @@ -452,9 +452,9 @@ private: template void get_verify( const SingleRoleModel &model, - QQuickVisualDataModel *visualModel, - QQuickVisualDataGroup *visibleItems, - QQuickVisualDataGroup *selectedItems, + QQmlDelegateModel *visualModel, + QQmlDataGroup *visibleItems, + QQmlDataGroup *selectedItems, const int (&mIndex)[N], const int (&iIndex)[N], const int (&vIndex)[N], @@ -467,7 +467,7 @@ private: QQmlEngine engine; }; -Q_DECLARE_METATYPE(QQuickChangeSet) +Q_DECLARE_METATYPE(QQmlChangeSet) template static T evaluate(QObject *scope, const QString &expression) { @@ -489,7 +489,7 @@ template <> void evaluate(QObject *scope, const QString &expression) void tst_qquickvisualdatamodel::initTestCase() { QQmlDataTest::initTestCase(); - qRegisterMetaType(); + qRegisterMetaType(); qmlRegisterType("tst_qquickvisualdatamodel", 1, 0, "SingleRoleModel"); qmlRegisterType("tst_qquickvisualdatamodel", 1, 0, "DataObject"); @@ -517,7 +517,7 @@ void tst_qquickvisualdatamodel::rootIndex() engine.rootContext()->setContextProperty("myModel", &model); - QQuickVisualDataModel *obj = qobject_cast(c.create()); + QQmlDelegateModel *obj = qobject_cast(c.create()); QVERIFY(obj != 0); QMetaObject::invokeMethod(obj, "setRoot"); @@ -611,7 +611,7 @@ void tst_qquickvisualdatamodel::childChanged() QQuickItem *contentItem = listview->contentItem(); QVERIFY(contentItem != 0); - QQuickVisualDataModel *vdm = listview->findChild("visualModel"); + QQmlDelegateModel *vdm = listview->findChild("visualModel"); vdm->setRootIndex(QVariant::fromValue(model.indexFromItem(model.item(1,0)))); QCOMPARE(listview->count(), 1); @@ -922,7 +922,7 @@ void tst_qquickvisualdatamodel::noDelegate() QQuickListView *listview = qobject_cast(view.rootObject()); QVERIFY(listview != 0); - QQuickVisualDataModel *vdm = listview->findChild("visualModel"); + QQmlDelegateModel *vdm = listview->findChild("visualModel"); QVERIFY(vdm != 0); QCOMPARE(vdm->count(), 3); @@ -1052,15 +1052,15 @@ void tst_qquickvisualdatamodel::qaimRowsMoved() SingleRoleModel model(list); engine.rootContext()->setContextProperty("myModel", &model); - QQuickVisualDataModel *obj = qobject_cast(c.create()); + QQmlDelegateModel *obj = qobject_cast(c.create()); QVERIFY(obj != 0); - QSignalSpy spy(obj, SIGNAL(modelUpdated(QQuickChangeSet,bool))); + QSignalSpy spy(obj, SIGNAL(modelUpdated(QQmlChangeSet,bool))); model.emitMove(sourceFirst, sourceLast, destinationChild); QCOMPARE(spy.count(), 1); QCOMPARE(spy[0].count(), 2); - QQuickChangeSet changeSet = spy[0][0].value(); + QQmlChangeSet changeSet = spy[0][0].value(); QCOMPARE(changeSet.removes().count(), 1); QCOMPARE(changeSet.removes().at(0).index, expectFrom); QCOMPARE(changeSet.removes().at(0).count, expectCount); @@ -1115,11 +1115,11 @@ void tst_qquickvisualdatamodel::subtreeRowsMoved() QQmlComponent component(&engine, testFileUrl("visualdatamodel.qml")); QScopedPointer object(component.create()); - QQuickVisualDataModel *vdm = qobject_cast(object.data()); + QQmlDelegateModel *vdm = qobject_cast(object.data()); QVERIFY(vdm); - QSignalSpy spy(vdm, SIGNAL(modelUpdated(QQuickChangeSet,bool))); - QQuickChangeSet changeSet; + QSignalSpy spy(vdm, SIGNAL(modelUpdated(QQmlChangeSet,bool))); + QQmlChangeSet changeSet; QCOMPARE(vdm->count(), 4); @@ -1127,7 +1127,7 @@ void tst_qquickvisualdatamodel::subtreeRowsMoved() model.move(QModelIndex(), 1, model.index(0, 0), 3, 2); QCOMPARE(vdm->count(), 2); QCOMPARE(spy.count(), 1); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.removes().count(), 1); QCOMPARE(changeSet.removes().at(0).index, 1); QCOMPARE(changeSet.removes().at(0).count, 2); @@ -1137,7 +1137,7 @@ void tst_qquickvisualdatamodel::subtreeRowsMoved() model.move(model.index(0, 0), 4, QModelIndex(), 2, 1); QCOMPARE(vdm->count(), 3); QCOMPARE(spy.count(), 2); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.removes().count(), 0); QCOMPARE(changeSet.inserts().count(), 1); QCOMPARE(changeSet.inserts().at(0).index, 2); @@ -1147,11 +1147,11 @@ void tst_qquickvisualdatamodel::subtreeRowsMoved() QCOMPARE(vdm->rootIndex().value(), model.index(2, 0)); QCOMPARE(vdm->count(), 3); QCOMPARE(spy.count(), 4); - changeSet = spy.at(2).at(0).value(); + changeSet = spy.at(2).at(0).value(); QCOMPARE(changeSet.removes().count(), 1); QCOMPARE(changeSet.removes().at(0).index, 0); QCOMPARE(changeSet.removes().at(0).count, 3); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.inserts().count(), 1); QCOMPARE(changeSet.inserts().at(0).index, 0); QCOMPARE(changeSet.inserts().at(0).count, 3); @@ -1182,7 +1182,7 @@ void tst_qquickvisualdatamodel::subtreeRowsMoved() QCOMPARE(vdm->rootIndex().value(), QModelIndex()); QCOMPARE(vdm->count(), 0); QCOMPARE(spy.count(), 5); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.removes().count(), 1); QCOMPARE(changeSet.removes().at(0).index, 0); QCOMPARE(changeSet.removes().at(0).count, 3); @@ -1192,7 +1192,7 @@ void tst_qquickvisualdatamodel::subtreeRowsMoved() QCOMPARE(vdm->rootIndex().value(), QModelIndex()); QCOMPARE(vdm->count(), 2); QCOMPARE(spy.count(), 6); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.removes().count(), 0); QCOMPARE(changeSet.inserts().count(), 1); QCOMPARE(changeSet.inserts().at(0).index, 0); @@ -1211,17 +1211,17 @@ void tst_qquickvisualdatamodel::watchedRoles() QQmlComponent component(&engine, testFileUrl("visualdatamodel.qml")); QScopedPointer object(component.create()); - QQuickVisualDataModel *vdm = qobject_cast(object.data()); + QQmlDelegateModel *vdm = qobject_cast(object.data()); QVERIFY(vdm); // VisualDataModel doesn't initialize model data until the first item is requested. - QQuickItem *item = vdm->item(0); + QQuickItem *item = qobject_cast(vdm->object(0)); QVERIFY(item); vdm->release(item); QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); // Ensure released items are deleted before test exits. - QSignalSpy spy(vdm, SIGNAL(modelUpdated(QQuickChangeSet,bool))); - QQuickChangeSet changeSet; + QSignalSpy spy(vdm, SIGNAL(modelUpdated(QQmlChangeSet,bool))); + QQmlChangeSet changeSet; QCOMPARE(vdm->count(), 30); @@ -1238,13 +1238,13 @@ void tst_qquickvisualdatamodel::watchedRoles() emit model.dataChanged(model.index(0), model.index(4)); QCOMPARE(spy.count(), 1); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.changes().at(0).index, 0); QCOMPARE(changeSet.changes().at(0).count, 5); emit model.dataChanged(model.index(1), model.index(6), QVector() << QaimModel::Name); QCOMPARE(spy.count(), 2); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.changes().at(0).index, 1); QCOMPARE(changeSet.changes().at(0).count, 6); @@ -1255,7 +1255,7 @@ void tst_qquickvisualdatamodel::watchedRoles() emit model.dataChanged(model.index(0), model.index(4)); QCOMPARE(spy.count(), 3); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.changes().at(0).index, 0); QCOMPARE(changeSet.changes().at(0).count, 5); @@ -1264,7 +1264,7 @@ void tst_qquickvisualdatamodel::watchedRoles() emit model.dataChanged(model.index(8), model.index(8), QVector() << QaimModel::Number); QCOMPARE(spy.count(), 4); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.changes().at(0).index, 8); QCOMPARE(changeSet.changes().at(0).count, 1); @@ -1272,19 +1272,19 @@ void tst_qquickvisualdatamodel::watchedRoles() emit model.dataChanged(model.index(0), model.index(4)); QCOMPARE(spy.count(), 5); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.changes().at(0).index, 0); QCOMPARE(changeSet.changes().at(0).count, 5); emit model.dataChanged(model.index(1), model.index(6), QVector() << QaimModel::Name); QCOMPARE(spy.count(), 6); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.changes().at(0).index, 1); QCOMPARE(changeSet.changes().at(0).count, 6); emit model.dataChanged(model.index(8), model.index(8), QVector() << QaimModel::Number); QCOMPARE(spy.count(), 7); - changeSet = spy.last().at(0).value(); + changeSet = spy.last().at(0).value(); QCOMPARE(changeSet.changes().at(0).index, 8); QCOMPARE(changeSet.changes().at(0).count, 1); } @@ -1301,29 +1301,29 @@ void tst_qquickvisualdatamodel::hasModelChildren() QQmlComponent component(&engine, testFileUrl("visualdatamodel.qml")); QScopedPointer object(component.create()); - QQuickVisualDataModel *vdm = qobject_cast(object.data()); + QQmlDelegateModel *vdm = qobject_cast(object.data()); QVERIFY(vdm); QCOMPARE(vdm->count(), 4); QQuickItem *item = 0; - item = vdm->item(0); + item = qobject_cast(vdm->object(0)); QVERIFY(item); QCOMPARE(item->property("modelChildren").toBool(), true); vdm->release(item); - item = vdm->item(1); + item = qobject_cast(vdm->object(1)); QVERIFY(item); QCOMPARE(item->property("modelChildren").toBool(), false); vdm->release(item); - item = vdm->item(2); + item = qobject_cast(vdm->object(2)); QVERIFY(item); QCOMPARE(item->property("modelChildren").toBool(), true); vdm->release(item); - item = vdm->item(3); + item = qobject_cast(vdm->object(3)); QVERIFY(item); QCOMPARE(item->property("modelChildren").toBool(), false); vdm->release(item); @@ -1351,14 +1351,14 @@ void tst_qquickvisualdatamodel::setValue() QQmlComponent component(&engine, testFileUrl("visualdatamodel.qml")); QScopedPointer object(component.create()); - QQuickVisualDataModel *vdm = qobject_cast(object.data()); + QQmlDelegateModel *vdm = qobject_cast(object.data()); QVERIFY(vdm); QCOMPARE(vdm->count(), 3); QQuickItem *item = 0; - item = vdm->item(0); + item = qobject_cast(vdm->object(0)); QVERIFY(item); QCOMPARE(evaluate(item, "display"), QString("Row 1 Item")); evaluate(item, "display = 'Changed Item 1'"); @@ -1412,7 +1412,7 @@ void tst_qquickvisualdatamodel::remove() QQuickItem *contentItem = listview->contentItem(); QVERIFY(contentItem != 0); - QQuickVisualDataModel *visualModel = qobject_cast(qvariant_cast(listview->model())); + QQmlDelegateModel *visualModel = qobject_cast(qvariant_cast(listview->model())); QVERIFY(visualModel); { @@ -1521,7 +1521,7 @@ void tst_qquickvisualdatamodel::move() QQuickItem *contentItem = listview->contentItem(); QVERIFY(contentItem != 0); - QQuickVisualDataModel *visualModel = qobject_cast(qvariant_cast(listview->model())); + QQmlDelegateModel *visualModel = qobject_cast(qvariant_cast(listview->model())); QVERIFY(visualModel); { @@ -1710,13 +1710,13 @@ void tst_qquickvisualdatamodel::groups() QQuickItem *contentItem = listview->contentItem(); QVERIFY(contentItem != 0); - QQuickVisualDataModel *visualModel = listview->findChild("visualModel"); + QQmlDelegateModel *visualModel = listview->findChild("visualModel"); QVERIFY(visualModel); - QQuickVisualDataGroup *visibleItems = listview->findChild("visibleItems"); + QQmlDataGroup *visibleItems = listview->findChild("visibleItems"); QVERIFY(visibleItems); - QQuickVisualDataGroup *selectedItems = listview->findChild("selectedItems"); + QQmlDataGroup *selectedItems = listview->findChild("selectedItems"); QVERIFY(selectedItems); const bool f = false; @@ -1939,9 +1939,9 @@ void tst_qquickvisualdatamodel::groups() template void tst_qquickvisualdatamodel::get_verify( const SingleRoleModel &model, - QQuickVisualDataModel *visualModel, - QQuickVisualDataGroup *visibleItems, - QQuickVisualDataGroup *selectedItems, + QQmlDelegateModel *visualModel, + QQmlDataGroup *visibleItems, + QQmlDataGroup *selectedItems, const int (&mIndex)[N], const int (&iIndex)[N], const int (&vIndex)[N], @@ -2030,13 +2030,13 @@ void tst_qquickvisualdatamodel::get() QQuickItem *contentItem = listview->contentItem(); QVERIFY(contentItem != 0); - QQuickVisualDataModel *visualModel = qobject_cast(qvariant_cast(listview->model())); + QQmlDelegateModel *visualModel = qobject_cast(qvariant_cast(listview->model())); QVERIFY(visualModel); - QQuickVisualDataGroup *visibleItems = visualModel->findChild("visibleItems"); + QQmlDataGroup *visibleItems = visualModel->findChild("visibleItems"); QVERIFY(visibleItems); - QQuickVisualDataGroup *selectedItems = visualModel->findChild("selectedItems"); + QQmlDataGroup *selectedItems = visualModel->findChild("selectedItems"); QVERIFY(selectedItems); QV8Engine *v8Engine = QQmlEnginePrivate::getV8Engine(ctxt->engine()); @@ -2154,7 +2154,7 @@ void tst_qquickvisualdatamodel::get() void tst_qquickvisualdatamodel::invalidGroups() { QUrl source = testFileUrl("groups-invalid.qml"); - QTest::ignoreMessage(QtWarningMsg, (source.toString() + ":12:9: QML VisualDataGroup: " + QQuickVisualDataGroup::tr("Group names must start with a lower case letter")).toUtf8()); + QTest::ignoreMessage(QtWarningMsg, (source.toString() + ":12:9: QML VisualDataGroup: " + QQmlDataGroup::tr("Group names must start with a lower case letter")).toUtf8()); QQmlComponent component(&engine, source); QScopedPointer object(component.create()); @@ -2326,7 +2326,7 @@ void tst_qquickvisualdatamodel::create() QQuickItem *contentItem = listview->contentItem(); QVERIFY(contentItem != 0); - QQuickVisualDataModel *visualModel = qobject_cast(qvariant_cast(listview->model())); + QQmlDelegateModel *visualModel = qobject_cast(qvariant_cast(listview->model())); QVERIFY(visualModel); QCOMPARE(listview->count(), 20); @@ -2440,7 +2440,7 @@ void tst_qquickvisualdatamodel::incompleteModel() QScopedPointer object(component.beginCreate(engine.rootContext())); - QQuickVisualDataModel *model = qobject_cast(object.data()); + QQmlDelegateModel *model = qobject_cast(object.data()); QVERIFY(model); QSignalSpy itemsSpy(model->items(), SIGNAL(countChanged())); @@ -3665,67 +3665,67 @@ void tst_qquickvisualdatamodel::warnings_data() QTest::newRow("insert < 0") << testFileUrl("listmodelproperties.qml") << QString("items.insert(-2, {\"number\": \"eight\"})") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("insert: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("insert: index out of range")) << 4; QTest::newRow("insert > length") << testFileUrl("listmodelproperties.qml") << QString("items.insert(8, {\"number\": \"eight\"})") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("insert: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("insert: index out of range")) << 4; QTest::newRow("create < 0") << testFileUrl("listmodelproperties.qml") << QString("items.create(-2, {\"number\": \"eight\"})") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("create: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("create: index out of range")) << 4; QTest::newRow("create > length") << testFileUrl("listmodelproperties.qml") << QString("items.create(8, {\"number\": \"eight\"})") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("create: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("create: index out of range")) << 4; QTest::newRow("resolve from < 0") << testFileUrl("listmodelproperties.qml") << QString("items.resolve(-2, 3)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: from index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: from index out of range")) << 4; QTest::newRow("resolve from > length") << testFileUrl("listmodelproperties.qml") << QString("items.resolve(8, 3)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: from index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: from index out of range")) << 4; QTest::newRow("resolve to < 0") << testFileUrl("listmodelproperties.qml") << QString("items.resolve(3, -2)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: to index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: to index out of range")) << 4; QTest::newRow("resolve to > length") << testFileUrl("listmodelproperties.qml") << QString("items.resolve(3, 8)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: to index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: to index out of range")) << 4; QTest::newRow("resolve from invalid index") << testFileUrl("listmodelproperties.qml") << QString("items.resolve(\"two\", 3)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: from index invalid")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: from index invalid")) << 4; QTest::newRow("resolve to invalid index") << testFileUrl("listmodelproperties.qml") << QString("items.resolve(3, \"two\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: to index invalid")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: to index invalid")) << 4; QTest::newRow("resolve already resolved item") << testFileUrl("listmodelproperties.qml") << QString("items.resolve(3, 2)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: from is not an unresolved item")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: from is not an unresolved item")) << 4; QTest::newRow("resolve already resolved item") @@ -3733,193 +3733,193 @@ void tst_qquickvisualdatamodel::warnings_data() << QString("{ items.insert(0, {\"number\": \"eight\"});" "items.insert(1, {\"number\": \"seven\"});" "items.resolve(0, 1)}") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("resolve: to is not a model item")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("resolve: to is not a model item")) << 6; QTest::newRow("remove index < 0") << testFileUrl("listmodelproperties.qml") << QString("items.remove(-2, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("remove: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("remove: index out of range")) << 4; QTest::newRow("remove index == length") << testFileUrl("listmodelproperties.qml") << QString("items.remove(4, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("remove: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("remove: index out of range")) << 4; QTest::newRow("remove index > length") << testFileUrl("listmodelproperties.qml") << QString("items.remove(9, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("remove: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("remove: index out of range")) << 4; QTest::newRow("remove invalid index") << testFileUrl("listmodelproperties.qml") << QString("items.remove(\"nine\", 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("remove: invalid index")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("remove: invalid index")) << 4; QTest::newRow("remove count < 0") << testFileUrl("listmodelproperties.qml") << QString("items.remove(1, -2)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("remove: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("remove: invalid count")) << 4; QTest::newRow("remove index + count > length") << testFileUrl("listmodelproperties.qml") << QString("items.remove(2, 4, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("remove: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("remove: invalid count")) << 4; QTest::newRow("addGroups index < 0") << testFileUrl("listmodelproperties.qml") << QString("items.addGroups(-2, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("addGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("addGroups: index out of range")) << 4; QTest::newRow("addGroups index == length") << testFileUrl("listmodelproperties.qml") << QString("items.addGroups(4, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("addGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("addGroups: index out of range")) << 4; QTest::newRow("addGroups index > length") << testFileUrl("listmodelproperties.qml") << QString("items.addGroups(9, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("addGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("addGroups: index out of range")) << 4; QTest::newRow("addGroups count < 0") << testFileUrl("listmodelproperties.qml") << QString("items.addGroups(1, -2, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("addGroups: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("addGroups: invalid count")) << 4; QTest::newRow("addGroups index + count > length") << testFileUrl("listmodelproperties.qml") << QString("items.addGroups(2, 4, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("addGroups: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("addGroups: invalid count")) << 4; QTest::newRow("removeGroups index < 0") << testFileUrl("listmodelproperties.qml") << QString("items.removeGroups(-2, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("removeGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("removeGroups: index out of range")) << 4; QTest::newRow("removeGroups index == length") << testFileUrl("listmodelproperties.qml") << QString("items.removeGroups(4, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("removeGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("removeGroups: index out of range")) << 4; QTest::newRow("removeGroups index > length") << testFileUrl("listmodelproperties.qml") << QString("items.removeGroups(9, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("removeGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("removeGroups: index out of range")) << 4; QTest::newRow("removeGroups count < 0") << testFileUrl("listmodelproperties.qml") << QString("items.removeGroups(1, -2, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("removeGroups: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("removeGroups: invalid count")) << 4; QTest::newRow("removeGroups index + count > length") << testFileUrl("listmodelproperties.qml") << QString("items.removeGroups(2, 4, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("removeGroups: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("removeGroups: invalid count")) << 4; QTest::newRow("setGroups index < 0") << testFileUrl("listmodelproperties.qml") << QString("items.setGroups(-2, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("setGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("setGroups: index out of range")) << 4; QTest::newRow("setGroups index == length") << testFileUrl("listmodelproperties.qml") << QString("items.setGroups(4, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("setGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("setGroups: index out of range")) << 4; QTest::newRow("setGroups index > length") << testFileUrl("listmodelproperties.qml") << QString("items.setGroups(9, 1, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("setGroups: index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("setGroups: index out of range")) << 4; QTest::newRow("setGroups count < 0") << testFileUrl("listmodelproperties.qml") << QString("items.setGroups(1, -2, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("setGroups: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("setGroups: invalid count")) << 4; QTest::newRow("setGroups index + count > length") << testFileUrl("listmodelproperties.qml") << QString("items.setGroups(2, 4, \"selected\")") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("setGroups: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("setGroups: invalid count")) << 4; QTest::newRow("move from < 0") << testFileUrl("listmodelproperties.qml") << QString("items.move(-2, 1, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: from index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: from index out of range")) << 4; QTest::newRow("move from == length") << testFileUrl("listmodelproperties.qml") << QString("items.move(4, 1, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: from index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: from index out of range")) << 4; QTest::newRow("move from > length") << testFileUrl("listmodelproperties.qml") << QString("items.move(9, 1, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: from index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: from index out of range")) << 4; QTest::newRow("move invalid from") << testFileUrl("listmodelproperties.qml") << QString("items.move(\"nine\", 1, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: invalid from index")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: invalid from index")) << 4; QTest::newRow("move to < 0") << testFileUrl("listmodelproperties.qml") << QString("items.move(1, -2, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: to index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: to index out of range")) << 4; QTest::newRow("move to == length") << testFileUrl("listmodelproperties.qml") << QString("items.move(1, 4, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: to index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: to index out of range")) << 4; QTest::newRow("move to > length") << testFileUrl("listmodelproperties.qml") << QString("items.move(1, 9, 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: to index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: to index out of range")) << 4; QTest::newRow("move invalid to") << testFileUrl("listmodelproperties.qml") << QString("items.move(1, \"nine\", 1)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: invalid to index")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: invalid to index")) << 4; QTest::newRow("move count < 0") << testFileUrl("listmodelproperties.qml") << QString("items.move(1, 1, -2)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: invalid count")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: invalid count")) << 4; QTest::newRow("move from + count > length") << testFileUrl("listmodelproperties.qml") << QString("items.move(2, 1, 4)") - << (": QML VisualDataGroup: " + QQuickVisualDataGroup::tr("move: from index out of range")) + << (": QML VisualDataGroup: " + QQmlDataGroup::tr("move: from index out of range")) << 4; } @@ -3961,19 +3961,19 @@ void tst_qquickvisualdatamodel::invalidAttachment() QCOMPARE(component.errors().count(), 0); QVariant property = object->property("invalidVdm"); - QCOMPARE(property.userType(), qMetaTypeId()); - QVERIFY(!property.value()); + QCOMPARE(property.userType(), qMetaTypeId()); + QVERIFY(!property.value()); QQuickItem *item = findItem(static_cast(object.data()), "delegate"); QVERIFY(item); property = item->property("validVdm"); - QCOMPARE(property.userType(), qMetaTypeId()); - QVERIFY(property.value()); + QCOMPARE(property.userType(), qMetaTypeId()); + QVERIFY(property.value()); property = item->property("invalidVdm"); - QCOMPARE(property.userType(), qMetaTypeId()); - QVERIFY(!property.value()); + QCOMPARE(property.userType(), qMetaTypeId()); + QVERIFY(!property.value()); } void tst_qquickvisualdatamodel::asynchronousInsert_data() @@ -4005,15 +4005,15 @@ void tst_qquickvisualdatamodel::asynchronousInsert() engine.rootContext()->setContextProperty("myModel", &model); - QQuickVisualDataModel *visualModel = qobject_cast(c.create()); + QQmlDelegateModel *visualModel = qobject_cast(c.create()); QVERIFY(visualModel); ItemRequester requester; - connect(visualModel, SIGNAL(initItem(int,QQuickItem*)), &requester, SLOT(initItem(int,QQuickItem*))); - connect(visualModel, SIGNAL(createdItem(int,QQuickItem*)), &requester, SLOT(createdItem(int,QQuickItem*))); - connect(visualModel, SIGNAL(destroyingItem(QQuickItem*)), &requester, SLOT(destroyingItem(QQuickItem*))); + connect(visualModel, SIGNAL(initItem(int,QObject*)), &requester, SLOT(initItem(int,QObject*))); + connect(visualModel, SIGNAL(createdItem(int,QObject*)), &requester, SLOT(createdItem(int,QObject*))); + connect(visualModel, SIGNAL(destroyingItem(QObject*)), &requester, SLOT(destroyingItem(QObject*))); - QQuickItem *item = visualModel->item(requestIndex, true); + QQuickItem *item = qobject_cast(visualModel->object(requestIndex, true)); QVERIFY(!item); QVERIFY(!requester.itemInitialized); @@ -4025,7 +4025,7 @@ void tst_qquickvisualdatamodel::asynchronousInsert() newItems.append(qMakePair(QLatin1String("New item") + QString::number(i), QString(QLatin1String("")))); model.insertItems(insertIndex, newItems); - item = visualModel->item(completeIndex, false); + item = qobject_cast(visualModel->object(completeIndex, false)); QVERIFY(item); QCOMPARE(requester.itemInitialized, item); @@ -4070,15 +4070,15 @@ void tst_qquickvisualdatamodel::asynchronousRemove() engine.rootContext()->setContextProperty("myModel", &model); - QQuickVisualDataModel *visualModel = qobject_cast(c.create()); + QQmlDelegateModel *visualModel = qobject_cast(c.create()); QVERIFY(visualModel); ItemRequester requester; - connect(visualModel, SIGNAL(initItem(int,QQuickItem*)), &requester, SLOT(initItem(int,QQuickItem*))); - connect(visualModel, SIGNAL(createdItem(int,QQuickItem*)), &requester, SLOT(createdItem(int,QQuickItem*))); - connect(visualModel, SIGNAL(destroyingItem(QQuickItem*)), &requester, SLOT(destroyingItem(QQuickItem*))); + connect(visualModel, SIGNAL(initItem(int,QObject*)), &requester, SLOT(initItem(int,QObject*))); + connect(visualModel, SIGNAL(createdItem(int,QObject*)), &requester, SLOT(createdItem(int,QObject*))); + connect(visualModel, SIGNAL(destroyingItem(QObject*)), &requester, SLOT(destroyingItem(QObject*))); - QQuickItem *item = visualModel->item(requestIndex, true); + QQuickItem *item = qobject_cast(visualModel->object(requestIndex, true)); QVERIFY(!item); QVERIFY(!requester.itemInitialized); @@ -4098,7 +4098,7 @@ void tst_qquickvisualdatamodel::asynchronousRemove() QCOMPARE(requester.itemCreated, requester.itemInitialized); QCOMPARE(requester.itemDestroyed, requester.itemInitialized); } else { - item = visualModel->item(completeIndex, false); + item = qobject_cast(visualModel->object(completeIndex, false)); QVERIFY(item); QCOMPARE(requester.itemInitialized, item); @@ -4148,15 +4148,15 @@ void tst_qquickvisualdatamodel::asynchronousMove() engine.rootContext()->setContextProperty("myModel", &model); - QQuickVisualDataModel *visualModel = qobject_cast(c.create()); + QQmlDelegateModel *visualModel = qobject_cast(c.create()); QVERIFY(visualModel); ItemRequester requester; - connect(visualModel, SIGNAL(initItem(int,QQuickItem*)), &requester, SLOT(initItem(int,QQuickItem*))); - connect(visualModel, SIGNAL(createdItem(int,QQuickItem*)), &requester, SLOT(createdItem(int,QQuickItem*))); - connect(visualModel, SIGNAL(destroyingItem(QQuickItem*)), &requester, SLOT(destroyingItem(QQuickItem*))); + connect(visualModel, SIGNAL(initItem(int,QObject*)), &requester, SLOT(initItem(int,QObject*))); + connect(visualModel, SIGNAL(createdItem(int,QObject*)), &requester, SLOT(createdItem(int,QObject*))); + connect(visualModel, SIGNAL(destroyingItem(QObject*)), &requester, SLOT(destroyingItem(QObject*))); - QQuickItem *item = visualModel->item(requestIndex, true); + QQuickItem *item = qobject_cast(visualModel->object(requestIndex, true)); QVERIFY(!item); QVERIFY(!requester.itemInitialized); @@ -4165,7 +4165,7 @@ void tst_qquickvisualdatamodel::asynchronousMove() model.moveItems(from, to, count); - item = visualModel->item(completeIndex, false); + item = qobject_cast(visualModel->object(completeIndex, false)); QVERIFY(item); @@ -4196,10 +4196,10 @@ void tst_qquickvisualdatamodel::asynchronousCancel() engine.rootContext()->setContextProperty("myModel", &model); - QQuickVisualDataModel *visualModel = qobject_cast(c.create()); + QQmlDelegateModel *visualModel = qobject_cast(c.create()); QVERIFY(visualModel); - QQuickItem *item = visualModel->item(requestIndex, true); + QQuickItem *item = qobject_cast(visualModel->object(requestIndex, true)); QVERIFY(!item); QCOMPARE(controller.incubatingObjectCount(), 1); @@ -4221,10 +4221,10 @@ void tst_qquickvisualdatamodel::invalidContext() QQmlComponent c(&engine, testFileUrl("visualdatamodel.qml")); - QQuickVisualDataModel *visualModel = qobject_cast(c.create(context.data())); + QQmlDelegateModel *visualModel = qobject_cast(c.create(context.data())); QVERIFY(visualModel); - QQuickItem *item = visualModel->item(4, false); + QQuickItem *item = qobject_cast(visualModel->object(4, false)); QVERIFY(item); visualModel->release(item); @@ -4232,7 +4232,7 @@ void tst_qquickvisualdatamodel::invalidContext() model.insertItem(4, "new item", ""); - item = visualModel->item(4, false); + item = qobject_cast(visualModel->object(4, false)); QVERIFY(!item); } -- 2.7.4