95QMultiObjectRegistryRef::QMultiObjectRegistryRef(QQmlEngine *engine,
const QString &key, QObject *parent)
96 : QAbstractObjectRegistryRef(*
new QMultiObjectRegistryRefPrivate(engine), parent)
156void QMultiObjectRegistryRefPrivate::handleInitialObjects()
158 Q_Q(QMultiObjectRegistryRef);
163 QList<QObject *> oldObjects = m_objects;
164 QList<QObject *> newObjects = registry()->objects(key()).values();
166 if (oldObjects == newObjects)
169 m_objects = newObjects;
171 for (
const auto obj : std::as_const(oldObjects))
172 newObjects.removeOne(obj);
173 for (
const auto obj : std::as_const(m_objects))
174 oldObjects.removeOne(obj);
176 for (
const auto obj : std::as_const(oldObjects))
177 emit q->objectRemoved(obj);
179 for (
const auto obj : std::as_const(newObjects))
180 emit q->objectAdded(obj);
182 emit q->objectsChanged();
199void QMultiObjectRegistryRefPrivate::handleObjectRemoved(QObject *obj)
201 Q_Q(QMultiObjectRegistryRef);
203 m_objects.removeOne(obj);
205 emit q->objectRemoved(obj);
206 emit q->objectsChanged();