95QMultiObjectRegistryRef::QMultiObjectRegistryRef(QQmlEngine *engine,
const QString &key, QObject *parent)
96 : QAbstractObjectRegistryRef(*
new QMultiObjectRegistryRefPrivate(engine), parent)
158void QMultiObjectRegistryRefPrivate::handleInitialObjects()
160 Q_Q(QMultiObjectRegistryRef);
165 QList<QObject *> oldObjects = m_objects;
166 QList<QObject *> newObjects = registry()->objects(key()).values();
168 if (oldObjects == newObjects)
171 m_objects = newObjects;
173 for (
const auto obj : std::as_const(oldObjects))
174 newObjects.removeOne(obj);
175 for (
const auto obj : std::as_const(m_objects))
176 oldObjects.removeOne(obj);
178 for (
const auto obj : std::as_const(oldObjects))
179 emit q->objectRemoved(obj);
181 for (
const auto obj : std::as_const(newObjects))
182 emit q->objectAdded(obj);
184 emit q->objectsChanged();
201void QMultiObjectRegistryRefPrivate::handleObjectRemoved(QObject *obj)
203 Q_Q(QMultiObjectRegistryRef);
205 m_objects.removeOne(obj);
207 emit q->objectRemoved(obj);
208 emit q->objectsChanged();