diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-03-05 11:30:18 +0100 |
---|---|---|
committer | Fabian Kosmale <fabian.kosmale@qt.io> | 2021-03-05 15:54:53 +0100 |
commit | 483d09779c2719415c5ac421074a1af3bd66ca29 (patch) | |
tree | fcf1597fcd7401931100a925652c1e311c0d8396 /src/qmlmodels | |
parent | a7deb047d14170cf16160c748150471456e04af4 (diff) |
Remove QQmlEnginePrivate::isQObject
The only caller has a QMetaType available and can query that one. This
leads to subsequent cleanups in QQmlListAccessor::setList and
QQmlAdaptorModel::setModel which now no longer have a need to pass the
QQmlEngine along.
Task-number: QTBUG-82931
Change-Id: I6f38892a3a5098f07bc21f4eebcca82cf52a6838
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Diffstat (limited to 'src/qmlmodels')
-rw-r--r-- | src/qmlmodels/qqmladaptormodel.cpp | 6 | ||||
-rw-r--r-- | src/qmlmodels/qqmladaptormodel_p.h | 2 | ||||
-rw-r--r-- | src/qmlmodels/qqmldelegatemodel.cpp | 4 | ||||
-rw-r--r-- | src/qmlmodels/qqmllistaccessor.cpp | 8 | ||||
-rw-r--r-- | src/qmlmodels/qqmllistaccessor_p.h | 2 | ||||
-rw-r--r-- | src/qmlmodels/qqmltableinstancemodel.cpp | 2 |
6 files changed, 10 insertions, 14 deletions
diff --git a/src/qmlmodels/qqmladaptormodel.cpp b/src/qmlmodels/qqmladaptormodel.cpp index 83861d8526..4736101252 100644 --- a/src/qmlmodels/qqmladaptormodel.cpp +++ b/src/qmlmodels/qqmladaptormodel.cpp @@ -962,11 +962,11 @@ QQmlAdaptorModel::~QQmlAdaptorModel() accessors->cleanup(*this); } -void QQmlAdaptorModel::setModel(const QVariant &variant, QObject *parent, QQmlEngine *engine) +void QQmlAdaptorModel::setModel(const QVariant &variant, QObject *parent) { accessors->cleanup(*this); - list.setList(variant, engine); + list.setList(variant); if (QObject *object = qvariant_cast<QObject *>(list.list())) { setObject(object, parent); @@ -1042,7 +1042,7 @@ void QQmlAdaptorModel::useImportVersion(QTypeRevision revision) void QQmlAdaptorModel::objectDestroyed(QObject *) { - setModel(QVariant(), nullptr, nullptr); + setModel(QVariant(), nullptr); } QQmlAdaptorModelEngineData::QQmlAdaptorModelEngineData(QV4::ExecutionEngine *v4) diff --git a/src/qmlmodels/qqmladaptormodel_p.h b/src/qmlmodels/qqmladaptormodel_p.h index 2c90ffc1d1..531e8d9105 100644 --- a/src/qmlmodels/qqmladaptormodel_p.h +++ b/src/qmlmodels/qqmladaptormodel_p.h @@ -121,7 +121,7 @@ public: ~QQmlAdaptorModel(); inline QVariant model() const { return list.list(); } - void setModel(const QVariant &variant, QObject *parent, QQmlEngine *engine); + void setModel(const QVariant &variant, QObject *parent); void invalidateModel(); bool isValid() const; diff --git a/src/qmlmodels/qqmldelegatemodel.cpp b/src/qmlmodels/qqmldelegatemodel.cpp index 838a0e18e2..78a80ef739 100644 --- a/src/qmlmodels/qqmldelegatemodel.cpp +++ b/src/qmlmodels/qqmldelegatemodel.cpp @@ -431,7 +431,7 @@ void QQmlDelegateModel::setModel(const QVariant &model) _q_itemsRemoved(0, d->m_count); d->disconnectFromAbstractItemModel(); - d->m_adaptorModel.setModel(model, this, d->m_context->engine()); + d->m_adaptorModel.setModel(model, this); d->connectToAbstractItemModel(); d->m_adaptorModel.replaceWatchedRoles(QList<QByteArray>(), d->m_watchedRoles); @@ -538,7 +538,7 @@ void QQmlDelegateModel::setRootIndex(const QVariant &root) if (!d->m_adaptorModel.isValid() && d->m_adaptorModel.aim()) { // The previous root index was invalidated, so we need to reconnect the model. d->disconnectFromAbstractItemModel(); - d->m_adaptorModel.setModel(d->m_adaptorModel.list.list(), this, d->m_context->engine()); + d->m_adaptorModel.setModel(d->m_adaptorModel.list.list(), this); d->connectToAbstractItemModel(); } if (d->m_adaptorModel.canFetchMore()) diff --git a/src/qmlmodels/qqmllistaccessor.cpp b/src/qmlmodels/qqmllistaccessor.cpp index 1e67d03f74..60b91a23c9 100644 --- a/src/qmlmodels/qqmllistaccessor.cpp +++ b/src/qmlmodels/qqmllistaccessor.cpp @@ -63,7 +63,7 @@ QVariant QQmlListAccessor::list() const return d; } -void QQmlListAccessor::setList(const QVariant &v, QQmlEngine *engine) +void QQmlListAccessor::setList(const QVariant &v) { d = v; @@ -71,9 +71,6 @@ void QQmlListAccessor::setList(const QVariant &v, QQmlEngine *engine) // convert it first with toVariant(). if (d.userType() == qMetaTypeId<QJSValue>()) d = d.value<QJSValue>().toVariant(); - - QQmlEnginePrivate *enginePrivate = engine?QQmlEnginePrivate::get(engine):nullptr; - if (!d.isValid()) { m_type = Invalid; } else if (d.userType() == QMetaType::QStringList) { @@ -103,8 +100,7 @@ void QQmlListAccessor::setList(const QVariant &v, QQmlEngine *engine) } else { m_type = Integer; } - } else if ((!enginePrivate && QQmlMetaType::isQObject(d.userType())) || - (enginePrivate && enginePrivate->isQObject(d.userType()))) { + } else if (d.metaType().flags().testFlag(QMetaType::PointerToQObject)) { QObject *data = QQmlMetaType::toQObject(d); d = QVariant::fromValue(data); m_type = Instance; diff --git a/src/qmlmodels/qqmllistaccessor_p.h b/src/qmlmodels/qqmllistaccessor_p.h index 3306396b00..0cd13aa3b2 100644 --- a/src/qmlmodels/qqmllistaccessor_p.h +++ b/src/qmlmodels/qqmllistaccessor_p.h @@ -63,7 +63,7 @@ public: ~QQmlListAccessor(); QVariant list() const; - void setList(const QVariant &, QQmlEngine * = nullptr); + void setList(const QVariant &); bool isValid() const; diff --git a/src/qmlmodels/qqmltableinstancemodel.cpp b/src/qmlmodels/qqmltableinstancemodel.cpp index 0b9b951633..5c30a8eb24 100644 --- a/src/qmlmodels/qqmltableinstancemodel.cpp +++ b/src/qmlmodels/qqmltableinstancemodel.cpp @@ -433,7 +433,7 @@ void QQmlTableInstanceModel::setModel(const QVariant &model) drainReusableItemsPool(0); if (auto const aim = abstractItemModel()) disconnect(aim, &QAbstractItemModel::dataChanged, this, &QQmlTableInstanceModel::dataChangedCallback); - m_adaptorModel.setModel(model, this, m_qmlContext->engine()); + m_adaptorModel.setModel(model, this); if (auto const aim = abstractItemModel()) connect(aim, &QAbstractItemModel::dataChanged, this, &QQmlTableInstanceModel::dataChangedCallback); } |