17void QObjectRegistrySingleton::add(
const QString &key, QObject *obj)
19 if (key.isEmpty() || !obj)
22 auto &objSet = m_objects[key];
23 if (!objSet.contains(obj)) {
25 const auto refs = m_refs.value(key);
26 for (
const auto &ref : refs)
27 ref->handleObjectAdded(obj);
31void QObjectRegistrySingleton::remove(
const QString &key, QObject *obj)
33 if (key.isEmpty() || !obj)
36 auto &objSet = m_objects[key];
37 bool notifyListeners = objSet.remove(obj);
39 m_objects.remove(key);
40 if (notifyListeners) {
41 const auto refs = m_refs.value(key);
42 for (
const auto &ref : refs)
43 ref->handleObjectRemoved(obj);
60void QObjectRegistrySingleton::deregisterRef(QAbstractObjectRegistryRefPrivate *ref)
65 if (m_refs.contains(ref->key())) {
66 m_refs[ref->key()].remove(ref);
67 if (m_refs[ref->key()].isEmpty())
68 m_refs.remove(ref->key());