QAbstractItemModel* ObjectBroker::model(const QString& name) { ModelEvent event(true); const QHash<QString, QAbstractItemModel*>::const_iterator it = s_objectBroker()->models.constFind(name); if (it != s_objectBroker()->models.constEnd()) { QCoreApplication::sendEvent(it.value(), &event); return it.value(); } if (s_objectBroker()->modelCallback) { QAbstractItemModel* model = s_objectBroker()->modelCallback(name); if (model) { model->setObjectName(name); s_objectBroker()->models.insert(name, model); s_objectBroker()->ownedObjects.push_back(model); QCoreApplication::sendEvent(model, &event); return model; } } return 0; }