95QMultiObjectRegistryRef::QMultiObjectRegistryRef(QQmlEngine *engine,
const QString &key, QObject *parent)
96 : QAbstractObjectRegistryRef(*
new QMultiObjectRegistryRefPrivate(engine), parent)
166void QMultiObjectRegistryRefPrivate::handleInitialObjects()
168 Q_Q(QMultiObjectRegistryRef);
173 QList<QObject *> oldObjects = m_objects;
174 QList<QObject *> newObjects = registry()->objects(key()).values();
176 if (oldObjects == newObjects)
179 m_objects = newObjects;
181 for (
const auto obj : std::as_const(oldObjects))
182 newObjects.removeOne(obj);
183 for (
const auto obj : std::as_const(m_objects))
184 oldObjects.removeOne(obj);
186 for (
const auto obj : std::as_const(oldObjects))
187 emit q->objectRemoved(obj);
189 for (
const auto obj : std::as_const(newObjects))
190 emit q->objectAdded(obj);
192 emit q->objectsChanged();
209void QMultiObjectRegistryRefPrivate::handleObjectRemoved(QObject *obj)
211 Q_Q(QMultiObjectRegistryRef);
213 m_objects.removeOne(obj);
215 emit q->objectRemoved(obj);
216 emit q->objectsChanged();