77QObject *QExtensionFactory::extension(QObject *object,
const QString &iid)
const
81 const auto key = std::make_pair(iid, object);
83 auto it = m_extensions.find(key);
84 if (it == m_extensions.end()) {
85 if (QObject *ext = createExtension(object, iid,
const_cast<QExtensionFactory*>(
this))) {
86 connect(ext, &QObject::destroyed,
this, &QExtensionFactory::objectDestroyed);
87 it = m_extensions.insert(key, ext);
91 if (!m_extended.contains(object)) {
92 connect(object, &QObject::destroyed,
this, &QExtensionFactory::objectDestroyed);
93 m_extended.insert(object,
true);
96 if (it == m_extensions.end())